insert操作insert into table_name (field1, field2,...fieldN) values (value1, value2,...valueN);如果ID值设置为自增长,列名及其对应的值可以省略不写,但是下面这种写法除外,且值要与列名严格对应insert into table_name values (value1, value2,...valueN);对于数据,字符串需要添加“ ”,数字不用。列名则都不需要

update操作update table_name set

field1=new-value1,

field2=new-value2,

field3=new-value3

[where Clause]where条件如果不加,影响所有行

delete操作delete from table_name [where Clause]where条件如果不加,影响所有行

select操作select column_name,column_name from table_name [where Clause]

select column_name,column_name from table_name [where Clause in (value1,value2,value3)]

//列举查询

select column_name,column_name from table_name [where Clause between value1 and value2]

//区间查询

select column_name,column_name from table_name [where Clause like "%X%"]

//模糊查询

查询模型在查询时可以将列看做变量进行运算select 列1, 列2, 列1+列2 from table_name [where Clause] [offset M] [limit N]从表中选出指定的属性值组成一个新表,即为投影;上面的查询语句属于广义投影;

where和后面的语句构成一个布尔表达式,解析查询语句时,数据库从头到尾根据where条件遍历整张表的每条记录,如果结果为1,则输出相应的记录结果,如果结果为0,则查看下一条记录,直至查询出结果。例如,查询条件[where 1]将输出整张表,[where 0]将什么也查不到。

奇怪的NUllselect 列1, 列2 from table_name where 列名 is null

select 列1, 列2 from table_name where 列名 is not nullnull表示空值,但null=null为假

在设计表时,应尽量不允许使用null

group分组统计max()    //求最大值

count()  //求行数

avg()    //求平均数

min()    //求最小值

sum()    //求总和

查询格式select 列1, 列2, sum(列1+列2) from table_name group by 列3group查询时会先根据where条件对数据进行排序,所以,分组查询是是比较耗费数据库系统资源的,应尽量避免

having筛选结果集select 列1, 列2, sum(列1+列2) as X from table_name having [X > 100]在上式中 sum(列1+列2) 就是结果集,然后重命名为 X ,两者可以看做近似相等,但也有不同之处。

where 是对数据表中的原始数据进行筛选,因为X并不是数据表中的原始项,所以会报错。

having 是对已经筛选出来的结果集进行再次筛选,如果将其替换为 where 数据库无法执行。

习题练习

查询出2门及2门以上不及格者的平均成绩select name,sum(score<60) as gk,avg(score) as pj form resule group by name having gk>=2先查所有人所有科的平均分,再利用having筛选谁挂科量在2门及其以上

order排序select 列1, 列2 from table_name order by 列3 [asc/desc],列4 [asc/desc]默认为升序排列【asc】

上式表示先根据列3进行排序,然后结果集再根据列4进行排序,例如,先按照国籍排序,同一国人再按照年龄排序

limit用法select 列1, 列2 from table_name order by 列3 [asc/desc],列4 [asc/desc] limit [偏移量,取出条数]偏移量表示跳过前几条数据,如果为0则可以不写

子句查询陷阱where -> group by -> having -> order by -> limit5种子句查询有严格的顺序,不允许随意变换

where型子查询select 列1, 列2 from table_name where 列1 = (select max(列1) from table_name)内层查询结果作为外层查询条件

from型子查询select 列1 from (select 列1, 列2 from table_name order by 列3)

exists型子查询select * from 表1 where exists (select * from 表2 where 表1.列1 = 表2.列2)

内连接查询boy表girl表

hidbnamehidgname

A屌丝B小龙女

B杨过C祝英台

C梁山伯D腐女

编号一样表示夫妻关系。要求联表查询出具有夫妻关系的人物名称。select boy.hid,boy.name,girl.his,girl.name

from

boy inner join girl

on b.hid = girl.hid

执行结果如下boy.hidboy.namegirl.hidgirl.name

B杨过B小龙女

C梁山伯C祝英台

左右连接查询 【继续沿用上面两张表】左连接:以左表为基准,到右表找匹配的数据,找不到匹配的用NULL补齐。查询格式如下select boy.hid,boy.name,girl.his,girl.name

from

boy left join girl

on b.hid = girl.hidboy.hidboy.namegirl.hidgirl.name

A屌丝nullnull

B杨过B小龙女

C梁山伯C祝英台右连接:以右表为基准,到左表找匹配的数据,找不到匹配的用NULL补齐。查询格式如下select boy.hid,boy.name,girl.his,girl.name

from

boy right join girl

on b.hid = girl.hidboy.hidboy.namegirl.hidgirl.name

B杨过B小龙女

C梁山伯C祝英台

nullnullD腐女可以连续进行连表查询,但是在写查询语句时,需要将对连续连接的表起别名,加以区分,避免冲突。

union查询union查询就是把2条或多条的sql查询结果。合并成一个结果集sql1   -->   N 行

sql2   -->   M 行

sql1 union sql2  --> N+M 行使用前提:各语句取出的列数相同,列名称未必要求一致,列名称会使用是一条sql的列名称为准

使用union时,完全相等的行将会被合并【合并时比较耗时的操作】,一般不让union进行合并,使用“union all”可以避免。

union子句中,不用写order by ,因为合并后得到的最后结果可以order by,子句order by失去意义

mysql中的dml操作_MySQL操作语言[DML]相关推荐

  1. mysql的char在java中表示为_Java学习篇之-Mysql中varchar门类总结_mysql

    java学习篇之---mysql中varchar类型总结 Mysql中varchar类型总结 今天新做一个项目,需要自己进行数据库设计,发现自己对varchar的用法还不是很熟悉,所以查阅资料总结若下 ...

  2. mysql中关系怎么弄_mysql数据库关系操作

    ### mysql数据库 #### 知识要点: 1. 数据操作增.删.改 2. 外键约束要求 3. 一对多表关系 4. 一对一表关系 5. 多对多表关系 6. 外键约束的参照操作 ### 数据操作 # ...

  3. mysql中日期的加减操作_mysql 日期加减操作

    1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day);        -- add ...

  4. mysql中jdbc的metadata_JDBC元数据操作——DatabaseMetaData接口详解

    在JDBC技术规范中,提供了Connection,Statement,ResultSet这三个开发过程中经常用到的接口.针对与每个接口,JDBC规范提供了相应的接口描述对象,也就是xxxMetaDat ...

  5. 在Mysql中显示所有用户的操作教程(Linux环境下)

    1.登录数据库 首先,你需要使用如下命令登录到数据库,注意,必须是root用户哦~ mysql -u root -p 2.查询用户表 在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中 ...

  6. mysql中日期相减_MySQL环境配置和10分钟快速入门

    MySQLFrom:Datawhale作者:皮钱超,厦门大学,Datawhale原创作者本文约3000字,建议阅读9分钟审稿人:杨煜,Datawhale成员,就职于毕马威,从事数据分析工作.本文中介绍 ...

  7. MySQL中向下查询_mysql

    @ MySQL讲解 一.启动服务 用管理员身份运行命令提示符 停止服务 net stop + 服务名 启动服务 net start + 服务名 查询服务器连接所用端口信息 select @@port; ...

  8. mysql中my.cnf文件_MySQL中my.cnf文件选项

    MySQL中my.cnf文件选项 mysqld服务器维护两种变量.全局变量影响服务器的全局操作.会话变量影响具体客户端连接相关操作. 可以在选项文件或命令行中设置全局变量. 用Set命令设置会话变量, ...

  9. mysql中写锁定实例_MySQL中的锁

    我学习MySQL是半路出家,刚开始接触的时候,只知道数据库的增删改查和事务,直到有一天数据库突然爆出(1205, 'Lock wait timeout exceeded; try restarting ...

  10. mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数

    MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...

最新文章

  1. Laravel和Thinkphp有什么区别,哪个框架好用
  2. Java十大bug之——包冲突
  3. java6集合编程题
  4. 显示不出中文_优惠拿不出手,销量却吊打对手,宝马3系到底强在哪?
  5. Android之TrafficStats实现流量实时监测
  6. Elixir 初尝试 5 -- 遇见Actor
  7. 面试中,答不出产品方法论?4个方法教给你...
  8. 瑞典卡罗林斯卡医学院博士后招聘,图像流行病学和深度学习领域
  9. 快速生成Plugman中的lib-file、source-file的xml内容
  10. 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
  11. [poj2449]Remmarguts' Date(spfa+A*)
  12. echarts没有数据时显示暂无数据
  13. 详解C语言中的指针类型
  14. 几行代码,把你的小电影全部藏好了!
  15. linux环境下解压压缩包失败
  16. 解决Pycharm挂代理后依旧插件下载慢
  17. c语言折半查找递归程序,用递归法编写一个函数fac,求n!的值
  18. vmvare虚拟机无法读取ntfs的U盘解决方法,以及更换镜像下载源
  19. mysql 某个日期加七天_Mysql时间操作(当天,昨天,7天,30天,半年,全年,季度)...
  20. 微信平台 签名生成工具

热门文章

  1. 新风系统风速推荐表_家用新风常用管道规格和对应风量推荐值
  2. virtuoso根据原理图绘制版图并联接_版图绘制及Virtuoso软件工具使用.ppt
  3. 吸引子矩阵和鞍点矩阵可以用神经网络二分类吗?
  4. python中的join函数连接dataframe_python pandas DataFrame.join用法及代码示例
  5. 一起学nRF51xx 16 -  adc
  6. IQmath中文手册
  7. STM32 基础系列教程 3 – 外部中断
  8. 【预告】新房装修网络规划网络布局学习笔记,家庭网络需求文章内容及结构...
  9. 我能考虑到的数组(老)方法就这些了(es5)
  10. 慕课网_《RabbitMQ消息中间件极速入门与实战》学习总结