SQL DML数据操作语言与DQL数据查询语言
SQL DML数据操作语言与DQL数据查询语言
1.DML(数据操作语言)
- INSERT ( 添加数据语句 )
- UPDATE ( 修改数据语句 )
- DELETE ( 删除数据语句 )
1.1添加语句(insert)
> 语法: > INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( '值1', '值2', '值3', …)注意 :
字段或值之间用英文逗号隔开
“字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致
可同时插入多条数据,values 后用英文逗号隔开
单个插入: insert into student(id,name,money) values(1,'张三',3.9);
多条插入: insert into student(id,name,money) values(3,'张三',3.9),(2,'张三',3.9);
1.2修改语句(update)
> 语法: > UPDATE 表名 SET 列名 = 新值 [ , 列名1 = 新值2, …. ] [ WHERE 条件 ]; >注意 :
修改多列时,使用逗号(,)隔开
value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果
WHERE条件如果不指定,则修改表中所有数据
修改ID为1的数据: update student set name = '李四' , money = 3.6 where id = 1;
修改表中所有数据: update student set name = '李四' , money = 3.6;
1.3WHERE条件子句(条件筛选)
**运算符** =,<> 或 !=,>,<,>=,<=,BETWEEN...AND, AND,OR1.4 删除语句(delete)
> 语法: > DELETE FROM 表名 [ WHERE 条件 ]; > > **注意** : > 如不指定则删除该表的所有列数据2.DQL(数据查询语言)
2.1 基础查询语句(select)
> 语法: > SELECT 列名1,列名2 FROM 表名 [ WHERE 条件 ]; > > **注意** : > 当出现多列时要以逗号(,)隔开 > 当不写WHERE条件时,查询当前表所有数据 > 如想查所有列时,可用*号代替所有列(不建议使用) > 查询出的列中可以加入表达式,如:select 成绩/10 > where条件有比较操作符与逻辑操作符构成2.2 别名(as)
别名分为列别名 与 表别名语法:
SELECT 列名1as 列别名
,列名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 年级1
学生2 年级2
年级表数据:
年级1
select * from student a INNER JOIN grade b on a.GradeId=b.GradeID;
结果:
显示
左连接(LEFT JOIN)
右连接(RIGHT JOIN)
DISTINCT