mysql
1、单表
create table userinfo(
id int not null auto_increment primary key,
name char(20),
age int default 18,
gender char(1)
)engine=innodb default charset=utf8;
1.列名
2.数据类型
3.是否可以为空
4.默认值
5.自增(一个表只能有一个自增序列)
6.主键
约束:不能为空,不能重复
索引:加速查找:
7.外键
约束:只能是某个表中某列已经存在的数据
constraint xxxxx foreign key (department_id) references deparment(id)
多表:
一对多
create table userinfo(
id int not null auto_increment primary key,
name char(20),
age int default 18,
gender char(1),
department_id int,
constraint xxxx foreign key (department_id) references deparment(id)
)engine=innodb default charset=utf8;
create talbe deparment(
id nit not null auto_increment primary key,
title char(32)
)engine=innodb default charset=utf8;
多对多:
create talbe boy(
id nit not null auto_increment primary key,
name char(32)
)engine=innodb default charset=utf8;
create talbe girl(
id nit not null auto_increment primary key,
name char(32)
)engine=innodb default charset=utf8;
create talbe b2g(
id nit not null auto_increment primary key,
bid int,
gid int,
constraint fk1 foreign key (bid) refereces boy(id),
constraint fk1 foreign key (gid) refereces girl(id)
)engine=innodb default charset=utf8;
应用场景,根据具体业务比较
--增加
insert into class(caption) values('三年二班'),('三年三班'),('三年四班');
insert into student(sname,gender,class_id) values('刘涛','男',1),('李飞','男',1);
insert into class(caption) select tname from teacher;
--删除
delete from 表名; 不能清除主键系列号不能归零
truncate talbe 表名; 清空所有
delete from deparment where id = 2;
delete from deparment where id = 2 and title='xxx';
delete from deparment where id = 2 or title = 'xxx';
delete from deparment where id > 2;
delete from deparment where id between 5 and 10;
--改
update deparment set title='ddddd';
update deparment set title='333333',id=9 where id = 2;
--查询
delete from class where cid >2;
select cid as c1,caption as xxx from class;
select * from class where cid in (1,2);
select * from class where cid in (select tid from teacher);
--排序
select * from score order by number asc; 从小到大
select * from score order by number desc; 从大到小
--限制
select * from score order by number desc limit 2;
select * from score order by number asc limit 2;
select * from score;
select * from score limit 5; 取前5个数据
select * from score limit 0,10; 取前十个数据
select * from score limit 10,10; 从第十个开始去十个数据
--通配符
select * from teacher where tname like "%瞎%"
select * from teacher where tname like "瞎%"
select * from teacher where tname like "%瞎"
select * from teacher where tname like "%驴"
select * from teacher where tname like "_驴";

浙公网安备 33010602011771号