目录
mysql 约束
primary key 主键的基本使用
语法: 字段名 字段类型 primary key
使用细节:
--主键使用
--表示id列是主键
CREATE TABLE t17
(id INT PRIMARY KEY,
`name` VARCHAR(32),
email VARCHAR(32));
复合主键 (id 和 name 做成复合主键)
CREATETABLE t18(
id INT ,
`name` VARCHAR(32),
email VARCHAR(32),
PRIMARY KEY(id, `name`) -- 这里就是复合主键
);
notnull(非空)
unique(唯一)
-unqiue使用细节
1.如果没有指定notnull,则unique字段可以有多个null--如果一个列(字段),是unique not null使用效果类似primarykey
INSERT INTO t21 VALUES(NULL, 'tom', 'tom@sohu.com');
--2.一张表可以有多个unique字段
CREATE TABLE t22
(id INT UNIQUE,--表示id列是不可以重复的.
`name` VARCHAR(32) UNIQUE,--表示name不可以重复
email VARCHAR(32)
);
foreign key(外键)
check
自增长
自增长使用细节
create table t24 (id int primary key auto_increment,email varchar(32) not null default '',`name` varchar(32) not null default '');
mysql索引
索引的原理
索引的类型
索引的使用
创建表结构
查询表是否有索引
SHOW INDEXES FROM t25;
--添加索引
--添加唯一索引
CREATE UNIQUE INDEX id_index ONt 25(id);
--添加普通索引方式1
CREATE INDEX id_index ON t25(id); 小写:create index id_index on t25(1d);
1. 如果某列的值,是不会重复的,则优先考虑使用unique索引, 否则使用普通索引
-- 添加普通索引方式2
ALTER TABLE t25 ADD INDEX id_index (id) 小写:alter table t25 add index id_index (id)
添加主键索引
删除索引:
-- 修改索引 , 先删除,在添加新的索引
-- 查询索引
方式3
小结: 哪些列上适合使用索引
![](https://i-blog.csdnimg.cn/blog_migrate/06e1bdc40070c94ac69fcb759d14bfe6.png)
mysql 事务
什么是事务
事务和锁
回退事务
提交事务
事务细节讨论
mysql事务隔离级别
事务隔离级别介绍
查看事务隔离级别
事务隔离级别
mysql 事务 ACID
事务的acid 特性
mysql 表类型和存储引擎
主要的存储引擎/表类型特点
细节说明
我这里重点给大家介绍三种:MyISAM、InnoDB、MEMORY
如何选择表的存储引擎
修改存储引擎
alter table 表名 engine = 存储引擎
视图(view)
场景引入:
看一个需求
基本概念
视图的基本使用
视图细节讨论
视图最佳实践
Mysql 管理
Mysql 用户
创建用户
grant usage on *.* to 'root'@'%' identified by 'password' with grant option;
删除用户
drop user 'hjl'@'localhost'
用户修改密码
5.7之前
5.7之后修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'hjl123456789';
mysql 中的权限
回收用户授权
权限生效指令 (flush privileges)
细节说明
练习题(巩固知识):