目录
一、查询准备
二、条件查询
三、排序
四、聚合函数
五、分组
六、分页
七、连接查询
八、自关联
九、子查询
一、查询准备
1、创建数据库、数据表
- 创建数据库
create database python_niubiqigai charset=utf8;
- 使用数据库
use python_niubiqigai
- 创建students表
create table students( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tinyint unsigned default 0, height decimal(5,2), gender enum('男','女','中性','保密') default '保密', cls_id int unsigned default 0, is_delete bit default 0 );
- 创建classes表
create table classes ( id int unsigned auto_increment primary key not null, name varchar(30) not null );
2、准备数据
-
向students表中插入数据
insert into students values (0,'小张',18,180.00,2,1,0), (0,'小王',18,180.00,2,2,1), (0,'小白',29,185.00,1,1,0), (0,'小黑',59,175.00,1,2,1), (0,'小丁',38,160.00,2,1,0), (0,'小李',28,150.00,4,2,1), (0,'小周',18,172.00,2,1,1), (0,'小城',36,NULL,1,1,0), (0,'小花',27,181.00,1,2,0), (0,'小芳',25,166.00,2,2,0), (0,'小薇',33,162.00,3,3,1), (0,'小赵',12,180.00,2,4,0), (0,'小郭',12,170.00,1,4,0), (0,'小谢',34,176.00,2,5,0);
-
向classes表中插入数据
insert into classes values (0, "物理1班"), (0, "物理2班");
-
查询所有字段
select * from 表名;
例:
select * from students;
-
查询指定字段
select 列1,列2,... from 表名;
例:
select name from students;
-
使用 as 给字段起别名
select id as 序号, name as 名字, gender as 性别 from students;
-
可以通过 as 给表起别名
– 如果是单表查询 可以省略表明
select id, name, gender from students;
– 表名.字段名
select students.id,students.name,students.gender from students;
– 可以通过 as 给表起别名
select s.id,s.name,s.gender from students as s;
3、消除重复行
- 在select后面列前使用distinct可以消除重复的行
select distinct 列1,... from 表名;
例:
select distinct gender from students;
二、条件查询
使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
- 语法如下:
select * from 表名 where 条件;
例:
select * from student