[关闭]
@wangzhuanyun 2020-07-08T01:54:34.000000Z 字数 1439 阅读 2403

SQL DML数据操作语言与DQL数据查询语言

mysql


1.DML(数据操作语言)

  • INSERT ( 添加数据语句 )
  • UPDATE ( 修改数据语句 )
  • DELETE ( 删除数据语句 )

1.1添加语句(insert)

语法:
INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( '值1', '值2', '值3', …)

注意
字段或值之间用英文逗号隔开
“字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致
可同时插入多条数据,values 后用英文逗号隔开

  1. 单个插入: insert into student(id,name,money) values(1,'张三',3.9);
  2. 多条插入: insert into student(id,name,money) values(3,'张三',3.9),(2,'张三',3.9);

1.2修改语句(update)

语法:
UPDATE 表名 SET 列名 = 新值 [ , 列名1 = 新值2, …. ] [ WHERE 条件 ];

注意
修改多列时,使用逗号(,)隔开
value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果
WHERE条件如果不指定,则修改表中所有数据

  1. 修改ID1的数据: update student set name = '李四' , money = 3.6 where id = 1;
  2. 修改表中所有数据: update student set name = '李四' , money = 3.6;

1.3WHERE条件子句(条件筛选)

运算符
=,<> 或 !=,>,<,>=,<=,BETWEEN...AND, AND,OR

1.4 删除语句(delete)

语法:
DELETE FROM 表名 [ WHERE 条件 ];

注意
如不指定则删除该表的所有列数据

2.DQL(数据查询语言)

2.1 基础查询语句(select)

语法:
SELECT 列名1,列名2 FROM 表名 [ WHERE 条件 ];

注意
当出现多列时要以逗号(,)隔开
当不写WHERE条件时,查询当前表所有数据
如想查所有列时,可用*号代替所有列(不建议使用)
查询出的列中可以加入表达式,如:select 成绩/10
where条件有比较操作符与逻辑操作符构成

2.2 别名(as)

别名分为列别名 与 表别名

语法:
SELECT 列名1 as 列别名,列名2 FROM 表名 as 表别名 [ WHERE 条件 ];

注意
as 可以不用写

2.3 操作符

逻辑操作符

名称 语法
AND或&& a AND b 或 a && b
OR或|| a OR b 或 a||b
NOT或! NOT a 或 !a

比较操作符

名称 语法
IS NULL a IS NULL
IS NOT NULL a IS NOT NULL
BETWEEN a BETWEEN b AND c
LIKE a LIKE b
IN a IN (a1,a2,a3,….)

注意
1、数值数据类型的记录之间才能进行算术运算
2、相同数据类型的数据之间才能进行比较

2.4 多表连接查询

多表连接查询分为:

  • 内连接(inner join)
  • 外连接: 1.左连接(LEFT JOIN) 2.右连接(RIGHT JOIN)

内连接(inner join )

说明
两张表连接,两张表字段完全匹配才返回数据

语法:
SELECT 列名 from a表 inner join b表 on a表.连接字段=b表.连接字段 [WHERE tiaoj]

  1. 学生表与年级表
  2. 学生表数据:
  3. 学生1 年级1
  4. 学生2 年级2
  5. 年级表数据:
  6. 年级1
  7. select * from student a INNER JOIN grade b on a.GradeId=b.GradeID;
  8. 结果:
  9. 显示

左连接(LEFT JOIN)
右连接(RIGHT JOIN)
DISTINCT

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注