Mysql约束
1、约束是限制条件
2、mysql常用约束
1. 主键约束
创建表,设计主键,要把一些字段(可以是一个字段,可以是多个字段)作为主键,表示这个字段值非空的,唯一的
- 创建主键语句
- 创建主键
CREATE TABLE users (
id INT PRIMARY KEY,
NAME VARCHAR(100)
)
CREATE TABLE person (
id INT,
NAME VARCHAR(100),
PRIMARY KEY(id)
)
CREATE TABLE book (
id INT,
bname VARCHAR(100),
bno INT
PRIMARY KEY(id,bno)
)
2. 唯一约束
添加字段值不能重复
- 使用关键字 unique
创建唯一约束
CREATE TABLE book (
id INT PRIMARY KEY ,
bname VARCHAR(100) UNIQUE
)
INSERT INTO book VALUES(1,'java开发')
INSERT INTO book VALUES(2,'php开发')
3. 非空约束
字段必须添加值
创建非空约束
CREATE TABLE orders (
id INT PRIMARY KEY,
ordersname VARCHAR(100) NOT NULL
)
4. 缺省约束
添加记录时候,指定默认值,不向字段添加具体数据时候,使用设置默认值
创建缺省约束
CREATE TABLE person (
id INT PRIMARY KEY,
pname VARCHAR(100) DEFAULT 'lucy'
)
INSERT INTO person VALUES(1,'jack')
INSERT INTO person(id) VALUES(2)
5. 外键约束
自动增长和索引
1、自动增长
(1)关键字 auto_increment,一般和主键一起使用,要求字段类型是int
CREATE TABLE dept (
id INT PRIMARY KEY AUTO_INCREMENT,
dname VARCHAR(100)
)
INSERT INTO dept VALUES(NULL,'安保部')
INSERT INTO dept VALUES(NULL,'财务部')
2、索引
(1)什么是索引
- 索引是一个单独的、物理的数据库结构,
(2)索引的使用原则:
(1)不过度索引
(2)索引条件列(where后面最频繁的条件比较适宜索引)
(3)索引散列值,过于集中的值不要索引,例如:给性别"男","女"加索引,意义不大
CREATE INDEX 索引名 ON 表名称 (column_name,[column_name...]);
3. 添加记录sql语句
1、添加sql语句语法
- insert into 表名称(字段名称1,字段名称2…) values(值1,值2…)
2、添加一条记录,可以直接写成value
INSERT INTO dept VALUE(NULL,'研发部')
3、添加多条记录
INSERT INTO dept VALUES(NULL,'外交部'),(NULL,'社区互动部'),(NULL,'运维保障')