表:test1
表:wechat_user_information
表:hanclothing_user_information
其中:wechat_user_information. id = hanclothing_user_information.openid
删除表
drop table test1
创建表
create table test1(
id int(5) null auto_increment,
stu_num int(9) not null,
name varchar(4) not null,
sex tinyint not null,
class int(2) null,
rel_chinese int(3) null,
rel_math int(3) null,
rel_english int(3) null,
primary key(id,std_num)
)engine innodb default charest=gb2312;
展示表的属性
desc test1
显示数据库版本
show variables like 'version'
alter table
modify子句
修改表,更改对某些字段的定义。
如果原设置项中有 not null 和 auto_increment。更改后,有not null ,没有auto_increment
alter table test1 modify id int(5)
drop子句
修改表,删除主键
alter table test1 drop primary key
修改表,删除某个字段
alter table test1 drop stu_mun
修改表,更改对某个字段的定义。
注意,自增列必须设置为键。
alter table test1 modify id int(5) not null auto_increment primary key
add子句
修改表,插入字段
alter table test1 add column stu_num int(9) not null
修改表,添加组合键。先删除旧的键,再添加新的键。
alter table test1 add primary key(id,stu_num)
insert into
value子句
插入,新的数据。插入一行用value,插入多行用values。
insert into test1(
stu_num, name, sex, class, rel_chinese, rel_math, rel_english
)
values
(201801001,'苏轼',1,01,99,70,85),
(201801002,'李清照',0,01,95,68,90),
(201801003,'范仲淹',1,01,90,92,80),
(201801004,'李师师',0,01,90,70,80),
(201902001,'李世民',1,02,90,90,90),
(201902002,'武媚娘',0,02,92,85,88),
(201802003,'李治',1,02,95,80,90),
(201802004,'林婉儿',0,02,90,75,80),
(201803001,'曹操',0,03,95,90,90),
(201803002,'曹丕',0,03,90,80,85),
(201803003,'甄姬',0,03,85,60,85),
(201803004,'蔡文姬',0,03,95,60,88);
select from
from子句 order by子句 limit子句
查询,按照id字段的列递增排序
select * from order by id desc
查询,按照id字段升序排列,分页查找从第3行开始,查找5行数据(起始行为第0行,如果从第0行开始查5行数据,可以写成 limit 5 )
select * from order by id asc limit 3,5
where子句 where···in
查找,class 字段是2的行,以sex字段升序排列
select * from test1 where class=2 order by sex asc
查询,部分数据。class字段是1和2的行,以rel_chinese字段降序排列
select name,sex,class,rel_chinese from test1
where class in(1,2) order by rel_chinese desc
查询,两张表的数据。
其中,wechat_user_information表的id字段,和hanclothing_user_information表的openid字段,相等的行。
select * from wechat_user_information,hanclothing_user_information
where wechat_user_information.id = hanclothing_user_information.openid;
group by子句 group_concat()函数
查询,按照class 字段进行分组
SELECT * from test1 group by class
查询,按照class 字段进行分组,并查看name字段,sex字段,class字段的详细信息
SELECT group_concat(name),group_concat(sex),group_concat(class) from test1 group by class
inner join子句
查询,两张表的数据。内连接。
返回两张表hanclothing_user_information.openid=wechat_user_information.id,的那几行数据。
select hanclothing_user_information.name,
hanclothing_user_information.birth,
wechat_user_information.nickname from hanclothing_user_information
inner join wechat_user_information
on hanclothing_user_information.openid=wechat_user_information.id
left join子句
查询,两张表的数据。左连接。
hanclothing_user_information返回全部数据。
wechat_user_information返回 hanclothing_user_information.openid =wechat_user_information.id,的那几行数据。
select hanclothing_user_information.name,
hanclothing_user_information.birth,
wechat_user_information.nickname from hanclothing_user_information
left join wechat_user_information
on hanclothing_user_information.openid=wechat_user_information.id
sum子句 count子句 if子句
语法:
sum函数返回一个值类型的数值,如果category=1,则返回size,如果category不等于1就返回0。
count函数返回一个布尔值类型的数值,如果category=1,返回true,如果category不等于1返回null。
SELECT SUM(if(category=1,size,0)) ,COUNT(if(category=1,true,null)) FORM t_file;
查询,统计每class的人数和总人数
SELECT
count(*) as total,
sum(if(class = 1,1,0)) as class1,
sum(if(class = 2,1,0)) as class2,
sum(if(class = 3,1,0)) as class3
from test1