新建库:
create database 库名;
修改库字符编码:
alter database 库名 character set="编码名字"
查看库或者表格:
show database/table;
进入库:
use 库名;
新建表格:
create tabale 表名(列名 数据类型,列名 数据类型);
修改表名:
alter table 表名 rename 新表名;
删除表:
drop table 表名;
修改列数据类型:
alter table 表名 modify 列名 新数据类型;
修改列名(必须同时写上数据类型):
alter table 表名 change 旧列名 新列名 数据类型;
设置主键:
alter table 表名 add constraint 主键名 primary key (列名);
删除主键:
alter table 表名 drop primary key;
设置外键:
alter table 表名 add constreint foreign key 关联表名(主键列名)
references 表名 (列名(必须是另一个表的唯一或主键));
删除外键:
alter table 表名 drop foreign key 外键名称;
约束:
① 主键:primary key (直接跟在数据类型后面需要写在最后)
② 外键:foreign key (不能写在数据类型后面,必须写在最后且格式完整)
③ 非空:not null (必须写在最后面)
④ 唯一:unique
⑤ 自增长:auto_increment (不是关键字)
⑥ 默认值:default'默认内容'
可选默认值:set('','') 多选 ; enum('','')单选 (都不用写数据类型)
⑦ 限制数据类型
其他约束:主外键关联;规则;触发器;存储过程.
插入数据:
insert into 表名 (列名,列名) values (对应的值1,对应的值2);
(不添加列名就是添加所有 需要填写对应列的值)
删除数据:
delete from 表名 where 条件(不写条件全部删除 自增长不会重置);
删除所有数据:
truncate table 表名; (会删除所有数据 且重置自增长);
修改数据:
update 表名 set 列名='修改内容' where 列名='条件值' (不设立条件会修改所有);
查询所有内容:
select * from 表名;
查询指定列:
select 列名,列名 from 表名;
按条件筛选查询:
select 列名,... from 表名 where 条件;
排序:
select */列名 from order by 列名 desc/asc (desc从大到小降序,asc从小到大升序,asc可以省略);
别名:
select 列名 AS 别名,.... from 表名; (AS可以省略)
select 列名+列名 AS别名 from 表名; (可以合并列并用新别名)
限制条数:
select * from 表名 limit0,5 (0是第一个,5是显示五个)
去重:
SELECT DISTINCT 列名 FROM scores表名; (不能去重多个)
排序 降序:
SELECT 列名 年龄 FROM 表名 WHERE 列名>30 ORDER BY 列名 DESC; (order by和DESC中间加列名 从小到大升序ASC默认不用写 )
查找 范围:
不在范围内
SELECT * FROM 表名 WHERE ssex=1 AND sage NOT BETWEEN 50 AND 60;
取范围内
SELECT * FROM 表名 WHERE ssex=1 AND sage BETWEEN 50 AND 60;
只取某几个值
SELECT * FROM student WHERE ssex=0 AND sage IN (78,23);
取某几个值以外的
SELECT * FROM student WHERE ssex=0 AND sage NOT IN (78,23);
查询顺序 fore where groupby having orderby limite;
selec 列名 from 表名 where 条件 group by 分组 having 条件 order by 列名 desc limite 0,5;
存储过程:赋值,格式,传参返回参数;
create procedure par_a(in x nit ,out y)
begin
declare sex varchar(5)(局部变量 必须放在用户变量前面 defaultke可以省略)
set @sage=0(用户变量 必须前面加@ 必须赋值)
select sage into @sage from stu where sname='张三'; (赋值用into)
select ssex into sex from stu where sname='张三';
select @sage;
select sex;
end
call par_a(传入的参数 x, @y (返回的参数) );(调用存储过程)
select @y (调用返回的值)
数据库 if 分支结构语法:
IF 条件 THEN
语句块;
ELSEIF 条件 THEN
语句块;
ELSE 语句块;
END IF;
触发器:
create trigger tri_name before update/insert on 表名 for each row
begin
end
游标:
declare 游标名 cursor for 查询语句;
open 游标名;
fetch 游标名 into a,b,c,d;
close 游标名;
create trigger name before update on name for each row