12-2 mysql 查询
老师提纲
1. create database test
2. drop database test
3. create table info
(
code int primary key,
name varchar(20) not null
)
auto_increment 自增长列
foreign key(列名) references 主表名(列名) 外键关系
4. drop table info
CRUD:
1.insert into 表名(列名) values(值)
2.delete from 表名 where 条件
3.update 表名 set 列名=值 where 条件
简单查询
1.最简单查询(查所有数据)
select * from 表名; 注:* 代表所有列
select * from info
2.查询指定列
select code,name from info
3.修改结果集的列名
select code as '代号',name as '姓名' from info
4.条件查询
select * from info where code='p003'
5.多条件查询
查询info表中code为p003或者nation为n001的所有数据
select * from info where code='p003' or nation='n001'
查询info表中code为p004并且nation为n001的数据
select * from info where code='p004' and nation='n001'
6.范围查询
select * from car where price>=40 and price<=60
select * from car where price between 40 and 60
7.离散查询
查询汽车价格在(10,20,30,40,50,60)中出现的汽车信息
select * from car where price=10 or price=20 or price=30 or price=40 or price=50 or price=60
select * from car where price in(10,20,30,40,50,60)
select * from car where price not in(10,20,30,40,50,60)
8.模糊查询(关键字查询)
查询car表里面名称包含奥迪的
select * from car where name like '%奥迪%' %任意n个字符
查询car中名称第二个字符为‘马’的汽车
select * from car where name like '_马%' _任意一个字符
9.排序查询
select * from car order by price asc asc升序(省略)
select * from car order by oil desc desc降序
先按照brand升序排,再按照price降序排
select * from car order by brand,price desc
10.去重查询
select distinct brand from car
11.分页查询
一页显示10条 当前是第3页
select * from chinastates limit 20,10
一页显示m条 当前是第n页
limit (n-1)*m,m
12.聚合函数(统计函数)
select count(areacode) from chinastates #查询数据总条数
select sum(price) from car #求和
select avg(price) from car #求平均
select max(price) from car #求最大值
select min(price) from car #求最小值
13.分组查询
查询汽车表中每个系列下有多少个汽车
select brand,count(*) from car group by brand
查询汽车表中卖的汽车数量大于3的系列
select brand from car group by brand having count(*)>3
自己笔记
简单查询
select * from 表名; 注意:*代表所有
);
查询指定列
select 列名,列名 from 表名
修改结果集的列名
select 列名 as'',列名 as'' from 表名
条件查询
select * from 表名 where 条件
多条件查询
select * from 表名 where 条件 or 条件
select * from 表名 where 条件 and 条件
范围查询
select * from 表名 where price>=40 and price<=60;
select * from 表名 where price betwen 40 and 60
离散查询
select * from 表名 where price in(20,30,40,50);
select * from 表名 where price not in(20,30,40,50)
模糊查询(关键字查询)
select * from 表名 where name like '%奥迪%' %代表任意多个字符
select * from 表名 where name like '_马%' _代表任意一个字符
9.排序查询
select * from car order by price asc asc升序(省略)
select * from car order by oil desc desc降序
先按照brand升序排,再按照price降序排
select * from car order by brand,price desc
去重查询
select distinct 列 from 表名
分页查询
一页显示10条,当前是第二页
select *from 表名 limit 10(跳过多少条),10(取第三条)
聚合函数(统计函数)
select count (主键) from 表名 查询数据总条数
select sum (列名) from 表名 求和
select avg(列名) from 表名 求平均
select max(列名) from 表名 求最大值
select min (列名) from 表名 求最小值
分组查询
查询汽车表中每个系列下有多少个汽车
select brand,count (*) from car group by brand
查询汽车表中所买的数量大于3的系列
select brand from car group by brand having count*