1、主键PRIMARY KEY
特点:
一张表里面主键是唯一的;
主键可以用来唯一的标识一行数据,主键不能为空。
联合主键:表中字段不能作为唯一标识每一行数据时,选取表中两个或者多个字段作为联合主键
特点:如果去掉联合主键某个字段,剩下的字段任然可以构成联合主键,那么说明之前的联合主键是错误的
在修改表时添加主键
alter table 表名 add primary key(字段名);
删除主键:
alter table表名 drop primary key;
创建表的时候设置主键:
方式一:
create table 表名(
-> id int(11) primary key,
-> name varchar(12)
-> );
方式二:
create table 表名(
-> id int(11),
-> name varchar(12),
-> primary key(id))
创建联合主键:
create table表名(
-> name char(16),
-> gender char(10),
-> birthday date,
-> city varchar(16),
-> primary key(name,city)
-> );
2、主键自增 AUTO_INCREMENT
特点:
和主键结合使用,
自增字段的数据类型是整数类型
自增的数据开始值是1,没增加一行数据,自增1
添加自增
create table 表名(
id INT(11) PRIMARY key AUTO_INCREMENT,
name VARCHAR(25),
location VARCHAR(50)
);
设置自增默认值
CREATE TABLE表名(
id INT(11) PRIMARY key auto_increment,
name VARCHAR(25),
location VARCHAR(50)
)auto_increment=100;
删除自增
ALTER TABLE 表名 MODIFY id int(11);
在修改表时设置自增
ALTER TABLE表名 CHANGE COLUMN id id INT(11) auto_increment;
修改表时指定初始值
ALTER TABLE 表名 auto_increment=100;
3、外键
CONSTRAINT 别名 FOREIGN KEY (本表要外键的字段名) REFERENCES 要外键到的表名(字段名)
表间关系:
一对一
一对多
多对多
MySQL5.6中文支持问题
DEFAULT CHARSET=GB2312;
查看创建表是sql
show create table 表名;
外键特点:
外键关联时主表要先去从表创建
外键字段的值必然在主表中是可以一一对应的
外键可以为空,但是不为空的外键必然可以在主表中跟它对于
外键关联的必然是主表的主键
创建外键约束
CREATE TABLE 表名 (
id int(10) PRIMARY KEY auto_increment,
sid INT(10),
name varchar(50),
subject varchar(50),
score varchar(50) ,
CONSTRAINT 别名
FOREIGN KEY (本表要外键的字段名) REFERENCES studentinfo 要外键到的表名(字段名)
);
修改表时添加外键约束
alter table 表名 add CONSTRAINT 别名 FOREIGN KEY (本表要外键的字段名) REFERENCES要外键到的表名(字段名);
删除外键约束
ALTER TABLE 表名 drop FOREIGN KEY 外键名
4、唯一约束UNIQUE
特点:
主键在一个表里面只能有一个
但是唯一性约束可以有多个
设置了唯一性约束的字段表中有且只能有一个空值
创建表的时候设置唯一性约束
CREATE TABLE表名(
id INT(11) PRIMARY KEY,
name VARCHAR(25) UNIQUE,
location VARCHAR(50)
);
修改表的时候添加唯一性约束
ALTER TABLE 表名 ADD UNIQUE(name);
起别名:
ALTER TABLE 表名 ADD CONSTRAINT 别名 UNIQUE(字段);
删除唯一性约束
ALTER TABLE表名 DROP INDEX字段名;
5、默认值DEFAULT 'Beijing'
特点:
在插入数据时,如果不写入就使用默认值,如果写入就使用新值
新建表时创建默认值
CREATE TABLE 表名(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
location VARCHAR(50) DEFAULT 'shanghai'
);
修改表时创建默认值
ALTER TABLE 表名 change location location VARCHAR(25) DEFAULT 'beijing';
删除默认值
alter table lx change location location varchar(50) default null;
6、非空约束(NOT NULL)
特点:
一张表中可以设置多个字段非空,主键默认非空
新建表时设置非空约束
CREATE TABLE表名(
id INT(11) NOT NULL,
name VARCHAR(35),
location VARCHAR(50)
);
修改表时设置非空约束
ALTER TABLE表名CHANGE name name VARCHAR(34) not NULL;
删除非空约束:
ALTER TABLE 表名CHANGE COLUMN name name VARCHAR(34) NULL;