文章目录
- CRUD简介
- 一、Creat 新增
- 1.单行数据全列插入
- 2.单行数据全指定列插入
- 3.多行数据指定列插入
- 二、Retrieve 检索
- 1.全列查询 --练习阶段最简单的查询:(在生产环境最好不要用!!)
- 2.指定列查询
- 3.结果去重查询
- 4.where条件查询
- 5.分页查询
- 6.order by排序
- 三、Update 修改
- 四、Delete 删除
- 截断表
- 【拓展】
CRUD简介
CRUD是对数据库中的记录进行的增删改查操作:
- Creat(创建)
- Retrieve(读取)
- Update(更新)
- Delete(删除)
一、Creat 新增
语法:
INSERT [INTO] table_name[(column [,column] ...)]
VALUES(value_list) [, (value_list)] ...value_list: value, [, value] ...
示例:
create table users (id bigint,name varchar(50)
)
1.单行数据全列插入
- value_list中的值的数量必须和定义表的列的数量一致
#第一种方法(推荐)
insert into users (id , name) values (1 , '张三');
#第二种方法
insert into users values (1 , '张三');
2.单行数据全指定列插入
- value_list中值的数量和顺序必须和指定列数量及顺序一致
insert into users (name) values ('张三');
3.多行数据指定列插入
- 在一条INSERT语句中也可以指定多个value_list,实现一次插入多行数据
insert into users (id , name) values (2 , '李四'),(3 , '王五');
二、Retrieve 检索
语法:
SELECT[DISTINCT]select_expr [, select_ expr]...[FROM table_references]WHERE where_condition][GROUP BY {col_name | expr},...][HAVING where_condition][ORDER BY {col_name | expr}[ ASC | DESC],...][LIMIT {[offset ,] row_count | ro_count OFFSET offset}]
1.全列查询 --练习阶段最简单的查询:(在生产环境最好不要用!!)
语法:
select * from tbl_name;
- select:查询关键字
- *:要查询字段的列表,*表示的是所有列表
2.指定列查询
语法:
select col_name[,col_name]... from tbl_name;
- col_name可以为常量表达式,也可以是列与列之间运算的表达式。
拓展:给列名起别名
语法:
select col_name as other_name [,col_name as other_name]... from tbl_name;
- other_name:别名
3.结果去重查询
语法:
select distinct col_name from tbl_name;
4.where条件查询
语法:
select col_name[,col_name]... from tbl_name where where_condition;
where_condition:查询条件,可以通过一些运算符
比较运算符
运算符 | 说明 |
---|---|
>,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于,对于NULL的比较是不安全的,比如NULL=NULL的结果还是NULL |
<==> | 等于,对于NULL的比较是安全的,比如NULL<==>NULL的结果是TRUE |
!=,<> | 不等于 |
value IN(option,…) | 如果value在option列表中,则返回TRUE,NOT IN则取反 |
value between a0 and a1 | 如果value在a0到a1这个闭区间,则返回TRUE,NOT between则取反 |
is null | 是null |
is not null | 不是null |
like | 模糊匹配,%表示任意多个字符(包括0个),_表示任意一个字符,NOT like则取反 |
- %表示任意多个字符:
- _表示任意一个字符:
逻辑运算符(优先级not>and>or)
运算符 | 说明 |
---|---|
ADN | 多个条件必须都为TRUE(1),结果才是TRUE(1) |
OR | 任意一个条件为TRUE(1),结果为TRUE(1) |
NOT | 条件为TRUE(1),结果为FALSE(0) |
5.分页查询
语法:
select ... from table_name [where...] [order by...] limit num;
#推荐第二条
select ... from table_name [where...] [order by...] limit start, num;
select ... from table_name [where...] [order by...] limit num offset start;
- start:表示从第几条开始,起始位置为第0条,起始位置若超过表中记录的范围,执行没有问题,
- num:表示读取多少条记录
- offset:偏移
6.order by排序
语法:
-- ASC为升序
-- DESC为降序
-- 默认为ASC
select ... from table_name [where...] order by {col_name | exper} [asc | desc], ...;
三、Update 修改
语法:
UPDATE table_name SET assignment [,assignment]...[WHERE where_condition][ORDER BY...][LIMIT row_count]
四、Delete 删除
语法:
DELETE FROM tbl_name [WHERE where_condition] [ORDER BY...] [LIMIT row_count];
截断表
语法:
truncate tabl_name;
- 会重置AUTO_INCREMENT
- 只能对整表操作,不能像delete对部分操作
【拓展】
插入查询结果
语法:
INSERT [INTO] table_name [(column [,column] ...)] select ...;