文章目录
DML(Data Manipulation Language)
-
基础语法
-
增(insert)
--给每个字段分别插入一条数据
insert into `表名`(`字段1`,`字段2`,`字段3`...)values('字段1值','字段2值','字段3值'...);
--给一个字段插入多条数据
insert into `表名`(`字段1`)values('字段值1'),('字段值2'),('字段值3')...;
delete from `表` where 条件;
条件一般是 =,!=,>,<,>=,<=
还有between … and …
还可以用and和or来表达多个条件
--清空数据表
truncate `表`;
truncate清空表,自动增量也会清零,如果用delete来清空表,自动增量是不会清零的。
update `表` set `字段1`='新的值',`字段2`='新的值'... where 条件;
DQL(Data Query Language) 非常重要!!!
大致语法(顺序很重要!):
select [distinct] `字段` [as 别名] from `表1` [as 别名]
inner/left/right join `表2` on 等值判断
where 具体的值/子查询语句
group by `某字段`
having --条件和where一样,过滤分组后的记录
order by `某字段` asc/desc
limit (n-1)*页面大小, 页面大小;
--查询所有字段 *表示所有
select * from `表`;
--查询指定字段
select `字段1`,`字段2`... from `表`;
--可以为字段起一个别名,查看结果时便于理解,这个时候的别名不需要加 `
select `字段1` as 别名1,`字段2` as 别名2... from `表` as 表别名;
distinct:去除重复字段
select distinct `字段` from `表`;
like:%表示0到任意个字符;_表示一个字符
匹配内容举例:
csdn%:表示查找的数据后面几个字都行,前面的csdn一样就可以
csdn_:表示查找的数据前面的csdn一样,但后面只有一个字,同理,后面几个字就加几个下划线
select `字段` from `表` where 字段 like '匹配内容';
in:数据内容必须具体,不能只是其中的几个字
select `字段` from `表` where ``in(数据内容, , , ...);
作为检索条件,返回结果为布尔值,条件不能用聚合函数
- 逻辑运算符
运算符 | 语法 | 含义 |
---|---|---|
and | a and b | 逻辑与 |
or | a or b | 逻辑或 |
not | not a | 逻辑非 |
- 比较运算符
运算符 | 语法 | 含义 |
---|---|---|
is null | a is null | 操作符是null,结果为真 |
is not null | a is not null | 操作符不是null,结果为真 |
between…and… | a between b and c | 数据在两个数值之间则结果为真 |
like | a like b | b能匹配到a,结果为真 |
in | a in(a1,a2,a3,…) | a在a1或a2或a3…中,则结果为真 |
- group by:按照什么字段来分组
- having:过滤分组记录的次要条件
select `字段` from `表`
group by `字段`
having {条件};
- 升序 ASC(ascending)
- 降序 DESC(descending)
语法:order by 字段 asc[desc]
select `` from ``
[inner join `` where [条件]]
order by `字段` asc; --通过哪个字段升序或降序
目的:缓解数据库压力
语法:limit (n-1)*页面大小, 页面大小
(n-1)*页面大小是当前页面的起始值
数据总数/页面大小=总页数
select `` from ``
[inner join `` where [条件] order by `字段` asc]
limit (n-1)*页面大小, 页面大小;
执行顺序是由里到外
select `字段` from `表`
where 字段 运算符 (select `字段` from `表`);
--查询sql版本
select version();
--加减乘除计算
select 1+2-3*5/6;
--需要整体数据做相同变化
select `字段`+1 from `表`;