mysql 建表约束
   
    
    
    主键约束
   
    
    
    通过给某个字段添加约束,就可以使该字段不重复且不为空
   
1、`id` int primary key; 
2、插入语句末尾primary key(id,name);(联合主键只要其相加不等就可以进行插入 )
3、添加主键约束alter table user* add peimary key(id);
4、删除主键约束alter table user* drop peimary key(id); 
5、修改主键约束alter table user* modify id int primary key; 
    
    
    添加外键约束
   
ALTER TABLE 需添加外键表名 ADD 键名 FOREIGN KEY (需添加的外键)PEFERMENCES 父表(父表需添加的键)
    
    
    自增约束
   
 `id` int primary key auto_increment,序号自增
    
    
    唯一约束
   
1、字段值不可以重复
2、alter table user add unique(name);
3、unique(name);
4、nane varchar(32) unique;
5、unique(id,name)两个组合不重复就可以;
6、alter table user modify name varchar(32) unique;
7、删除唯一约束alter table user drop index name;
    
    
    非空约束
   
修饰的字段不能为空
    
    
    设计范式
   
    
    
    部分Url错误
   
jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf8
    
    
    修改列名
   
ALTER TABLE 表名 CHANGE 字段名 新字段名 字段属性
    
    
    查询
   
1、select * from user;
2、select id,name from user;
3、排除重复select distinct depart from user;
    
    
    查询区间
   
1、 select * from 数据表 where 列名 between 60 and 80;查询 列名 值60到80之间的
2、between...and
3、 select * from 数据表 where 列名 >60 and 列名 <80;
    
    
    查询指定数的记录(in就是或的关系)
   
select * from 数据表where 列名 in(?,?);
    
    
    或者查询or
   
select * from 数据表where 列名='?' or 列名 = '?';
    
    
    升序、降序
   
desc降序 --select * from 数据表 order by 列名 desc,
默认是升序asc
    
    
    以表中一列升序,相同的再取其他列降序
   
select * from 数据表 order by 列名1 asc, 列名2 desc;
    
    
    统计数量查询
   
select count(*) from 数据表 where 列名='?';
    
    
    查询指定几列的平均数
   
1、依据列名2 分组 group by 列名2;
2、 select avg(列名1) from 数据表 group by 列名2;
3、select 列名1,avg(列名2),count(*) from 数据表 group by 列名1 having count(列名1)>=? and 列名1 like '?%';
avg(列名) 输出平均
    
    
    多表查询
   
 1、select 列名1,列名2,列名3 from 数据表1,数据表2 where 数据表1.列名 = 数据表2.列名;
列名1为两数据表共有列名。
2、select 列名1,列名2,列名3 from 数据表1,数据表2,数据表3 where 数据表1.列名=数据表2.列名 and 数据表3.列名 = 数据表2.列名;
    
    
    子查询(sql语句内部嵌套sql语句)
   
    
    
    union 求并集
   
sql语句 union sql语句
    
    
    联合查询
   
    
    
    内连接
   
1、select * from 数据表 inner jion 列名 on 数据表1.列名=数据表2.列名;on后面接条件
2、select * from 数据表 jion 列名 on 数据表1.列名=数据表2.列名
    
    
    左外连接
   
1、select * from 数据表 left jion 列名 on 数据表1.列名=数据表2.列名
2、select * from 数据表 outer  left jion 列名 on 数据表1.列名=数据表2.列名
、会把左边查询的数据全部拿出来,右边有则显示出来,没有就为NULL
    
    
    右外连接
   
1、select * from 数据表 right jion 列名 on 数据表1.列名=数据表2.列名
2、select * from 数据表 outer  right jion 列名 on 数据表1.列名=数据表2.列名
3、会把右边查询的数据全部拿出来,左边有则显示出来,没有就为NULL
    
    
    全外连接(full jion)MySQL不支持
   
由于MySQL不支持全外连接查询,所以之能通过union求并集来查询
    
    
    事务
   
原子性:一个最小的不可分割的工作单位,不可再分割;
一致性:其能保证一个业务的完整性,即同时完成或者同时失败;
隔离性:不同事物之间具有隔离性;
持久性:事务一旦结束(commit),就不可以反回(rollback)。
    
     默认自动提交
    
    set autocommit =1; 取消自动提交set autocommit =0,此时可以进行roolback撤回操作,手动提交的输入commit;
   
    
    
    动开始事务
   
    1、begin;+sql语句,begin手动开启事务,也是可以执行roolback撤回操作的。
    
    2、start transaction;+sql语句,begin手动开启事务,也是可以执行roolback撤回操作的。
    
    3、手动开启事务同样是输入commit使事务生效。
   
    
    
    事务隔离性:
   
1、read uncommitted;//读未提交的	
2、read conmmited;//读已提交的	
3、repeatable read;//可以重复读	
4、serializable;//串行化
 
版权声明:本文为weixin_44002772原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
