MySQL表的增删改查(1)
- MySql执行顺序:
- 1.数据添加(Create)
- 1.1单列数据+全列插入
- 1.2多行数据+指定列插入
- 2.查询
- 2.1全列查询
- 2.2指定列查询
- 2.3查询字段为表达式
- 2.4别名(as)
- 2.5去重(distinct)
- 2.6 排序 (order by)
- 多列排序
- 2.7条件查询(超重要!!!!)
CRUD
注释:在SQL中可以使用“–空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词首字母缩写。
MySql执行顺序:
1.from阶段
2.where阶段
3.group by阶段
4.having阶段
5.select阶段
6.order by阶段
7.limit阶段
1.数据添加(Create)
语法:
insert into 表名(指定那些列) values (内容);
1.1单列数据+全列插入
必须要和表创建时候的列顺序保持一致,不一样的时候会报错。
多行全列插入:
1.2多行数据+指定列插入
例:姬如雪没有设置密码
添加的时候指定列的顺序决定添加数据的顺序。
2.查询
2.1全列查询
select * from 表名;
– 通常情况下不建议使用 * 进行全列查询
– 1. 查询的列越多,意味着需要传输的数据量越大;
– 2. 可能会影响到索引的使用。(索引待后面课程讲解)
2.2指定列查询
select 列名[列名] from 表名;
这里面的10是一个虚拟出来的列。
2.3查询字段为表达式
不会对表的原始数据造成影响。
表达式查询:
select 列名+表达式 from 表名;
表达式包含一个字段:
表达式包含多个字段:
2.4别名(as)
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
select 列名 [as] 别名 from 表名;
2.5去重(distinct)
select distinct 列名 from score;
使用distinct关键字对某列数据进行去重:
select distinct 列名1,列名2 from score;
这种情况下需要列名1和列名2都重复才会去重;
distinct可以使用多个字段联合去重,但去重规则为:所有的联合字段全部相同才会去重,否则不会去重。
2.6 排序 (order by)
NULL在排序的时候是最小级别。
select * from 表名 order by 列名[,列名] asc/desc
– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC
- 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
- NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
- 使用表达式及别名排序
order可以使用别名进行排序:
多列排序
order by 列1,列2 asc/desc;
说明;只有列1相同的时候,才会使用列2排序。
2.7条件查询(超重要!!!!)
不能使用别名
select * from 表名 where 查询条件;
比较运算符:
逻辑运算符:
注:
- WHERE条件可以使用表达式,但不能使用别名。
- AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的