目录
1.创建表 2.主键约束 3.外键 4.使用非空约束 5.唯一约束 6.默认约束 7.主键自增
8.修改表名 9.修改某个字段的数据类型 10.修改字段名字 11.添加新字段 12.删除字段 13.删除表的外键约束
表名不区分大小写,不能使用SQL关键字
-- 语法 --例子
CREATE TABLE 表名 ( CREATE TABLE tb_emp (
字段名1 数据类型 , id INT(10) ,
字段名2 数据类型 , name VARCHAR(20) ,
); );
1. 单字段主键
一个表中只能有一个主键
第一种直接在字段后面加primary key , 第二种在定义完列后加主键
-- 语法
字段名 数据类型 PRIMARY KEY
-- 1 --2
CREATE TABLE tb_emp2( CREATE TABLE tb_emp2(
id INT(11) PRIMARY KEY , id INT(11) ,
name VARCHAR(20), name VARCHAR(20),
salary INT(10) salary INT(10),
); PRIMARY KEY(id)
);
2.多字段联合主键
-- 语法
PRIMARY KEY (字段1,字段2,字段n)
--例子
CREATE TABLE tb_emp2(
id INT(11) ,
name VARCHAR(20),
salary INT(10),
PRIMARY KEY(id,name)
);
外键首先他是一个表的字段,他可以不是主键,但必须对应另一个表的主键,
-- 语法
CONSTRAINT 外键名 FOREIGN KEY(字段1) REFERENCES 表名(主键字段)
CREATE TABLE tb_emp4(
id INT(11) PRIMARY KEY ,
name VARCHAR(20),
salary INT(10),
CONSTRAINT fk_name FOREIGN KEY(name) REFERENCES dept(id)
);
-- 语法
字段名 数据类型 NOT NULL
-- 例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY ,
name VARCHAR(20) NOT NULL,
salary INT(10) NOT NULL,
);
一个表中可以有多个唯一约束,且值可以为null
-- 语法
字段名 数据类型 UNIQUE CONSTRAINT 约束名 UNIQUE (字段名)
-- 1 --2
CREATE TABLE tb_emp6( CREATE TABLE tb_emp7(
id INT(11) PRIMARY KEY , id INT(11) PRIMARY KEY ,
name VARCHAR(20) UNIQUE, name VARCHAR(20) ,
salary INT(10), alary INT(10),
); CONSTRAINT uq_name UNIQUE (name)
);
如果新增一条数据时,没有指定该字段的值就会使用默认值
-- 语法
字段名 数据类型 DEFAULT 默认值
-- 例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY ,
name VARCHAR(20) DEFAULT '匿名用户',
);
一个表中只能有一个字段使用auto_increment 约束
-- 语法
字段名 数据类型 AUTO_INCREMENT
--例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR(20),
);
其中TO 为选参数,可省略
-- 语法
ALTER TABLE 旧表名 RENAME TO 新表名
--例子
ALTER TABLE tb_emp1 RENAME tb_emp111;
以下是把name字段的类型改为int类型
-- 语法
ALTER TABLE 表名 MODIFY 字段名 数据类型
-- 例子
ALTER TABLE tb_emp1 MODIFY name INT(20);
如果不需要修改数据类型可以写成和原来一样的,但就是不能为空
-- 语法
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型
-- 例子
ALTER TABLE tb_emp2 CHANGE name emp_name VARCHAR(10);
-- 语法
ALTER TABLE 表名 ADD 新字段名 数据类型
-- 例子
ALTER TABLE dept ADD managerId INT(10);
-- 语法
ALTER TABLR 表名 DROP 字段名
--例子
ALTER TABLE dept DROP managerId;
-- 语法
ALTER TABLE 表名 DROP FOREIGN KEY (外键约束名)
--例子
ALTER TABLE tb_emp4 DROP FOREIGN KEY (fk_name)