DDL:用来创建或者删除数据库,表,数据库操作语句
DML:用来对表中的内容,进行增删改的,数据库中数据的操作语句
DQL:用来对表中的数据进行查询操作
DCL:权限管理语句
table:表格(数据库的表)
create database mydb1;-- 创建数据库mydb1
drop database mydb1; -- 删除数据库mydb1
use 数据库名称;
create table 表名(字段1 字段类型 约束,字段2 字段类型 约.......)
drop table 表名;
rename table 旧表名 to 新表名; --注意:如果有外键,需要更新外键
添加列:
alter table 表名 add 列名 类型
删除列:
alter table 表名 drop column 列名
修改列:
alter table 表名 modify 列名 类型; -- 修改类型
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型(可以改名字)
添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key; alter table 表名 modify 列名 int(原本类型), drop primary key;
添加外键:
alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
注意:创建外键时,主表链接附表的(主键字段)且字段类型必须相同;
-- 附表创建 create table clazz(id int primary key ,clazz_name varchar(20)); -- 创建主表(带外键) create table student (id int primary key auto_increment,name varchar(20), clazz_id int ,foreign key (clazz_id) references clazz(id)); -- 删除外键 alter table -- 因为没有使用 constraint 关键字给外键起名 -- 所以student_ibfk_1(这是默认外键名) student drop foreign key student_ibfk_1; -- 增加外键 alter table student add -- 给外键起名clazz_id constraint clazz_id foreign key (clazz_id) references clazz(id);
删除外键:
alter table 表名 drop foreign key 外键名称
修改默认值:
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
insert into 表 (列名,列名...) values (值,值,...) insert into 表 (列名,列名...) values (值,值,...),(值,值,值...) insert into 表 (列名,列名...) select (列名,列名...) from 表
例: insert into tab1(name,email) values('zhangyanlin','zhangyanlin8851@163.com')
-- `truncate table tab_name;`全表删除(可以删除约束字段,不支持数据回滚)
delete from 表 # 删除表里全部数据 delete from 表 where id=1 and name='zhangyanlin' # 删除ID =1 和name='zhangyanlin' 那一行数据
update 表 set name = 'zhangyanlin' where id>1 (一定要记得加条件,不让你就猴子他妈狒狒了!!)
select * from 表 select * from 表 where id > 1 select nid,name,gender as gg from 表 where id > 1
a、条件判断where
select * from 表 where id > 1 and name != 'aylin' and num = 12; select * from 表 where id between 5 and 16; select * from 表 where id in (11,22,33) select * from 表 where id not in (11,22,33) select * from 表 where id in (select nid from 表)
b、通配符like
select * from 表 where name like 'zhang%' # zhang开头的所有(多个字符串) select * from 表 where name like 'zhang_' # zhang开头的所有(一个字符)
c、限制limit
select * from 表 limit 5; - 前5行 select * from 表 limit 4,5; - 从第4行开始的5行 select * from 表 limit 5 offset 4 - 从第4行开始的5行
d、排序asc,desc
select * from 表 order by 列 asc - 根据 “列” 从小到大排列 select * from 表 order by 列 desc - 根据 “列” 从大到小排列 select * from 表 order by 列1 desc,列2 asc - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序
e、分组group by
select num from 表 group by num select num,nid from 表 group by num,nid select num,nid from 表 where nid > 10 group by num,nid order nid desc select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid select num from 表 group by num having max(id) > 10
特注意:group by 必须在where之后,order by之前