DDL
数据库定义database
create增加
CREATE DATABASE 名字
CREATE DATABASE 名字 CHARACTER SET 字符集
CREATE DATABASE IF NOT EXISTS 名字;
update更新、修改
ALTER DATABASE 名字 CHARACTER SET 字符集;
SHOW CREATE DATABASE 名字;
retrieve检索、查询
SHOW DATABASES;
USE 名字;
delete删除
DROP DATABASE IF EXISTS 名字;
数据库表table
增
创建表和字段
create table 表名字(
第一个字段,
第二个字段,
第三个字段,
);
*必须指定字符类型
create table
wlyx2001(id int,name char(20),age int);
增加字段及数据类型
ALTER TABLE 表名 ADD 增加的字段 数据类型;
查询表及新建
SHOW TABLES
SHOW CREATE TABLE 表名
删
删除表及字段
ALTER TABLE wlyx2001 DROP sex;
DROP TABLE #表名;
改
修改字段:change关键字
alter table 表名 change 原字段名 新字段名 数据类型;
修改表字符集
ALTER TABLE 表名 CHARACTER SET 字符
修改表名
ALTER TABLE 表名 RENAME TO 修改后表名
RENAME TABLE 表名 TO 改后表名
修改字段数据类型
ALTER TABLE 表名 MODIFY 字段 CHAR;
查
查看表名
DESC 表名
展示表结构
SHOW CREATE TABLE 表名
常见的约束
DEFAULT:默认,该字段的值不用手动插入有默认值
CREATE TABLE student(id INT DEFAULT 0);
#增加字段并设置默认值
ALTER TABLE student ADD class INT DEFAULT 2000;
#修改字段的默认值
ALTER TABLE student MODIFY class INT DEFAULT 2001;
not null:非空,字段必填
#设置非空约束,增加一个字段
ALTER TABLE student ADD user_name VARCHAR(20) NOT NULL;
#插入一个值
INSERT INTO student VALUES (DEFAULT,DEFAULT,'toms');
primary key:主键
PRIMARY KEY(id,job_name)
复合主键通过两个字段确定主键 primary key(字段1,字段2)
删除主键:ALTER TABLE job DROP PRIMARY KEY;
增加主键:ALTER TABLE job ADD job_id INT PRIMARY KEY;
唯一约束:UNIQUE
添加唯一约束:
ALTER TABLE student MODIFY stuphone VARCHAR(15) UNIQUE; 或
ALTER TABLE student ADD UNIQUE KEY phone(stuphone);
删除唯一约束:ALTER TABLE student DROP INDEX stuid;
外键约束:foreign key
添加外键:[constraint 约束名] foreign key (外键字段名) references 外部表(主键);
alter table 表名 add【 constraint 约束名】 foreign key(字段名) references 主表(被引用列);
删除外键:alter table 表名 drop foreign key 约束名;
自增:auto_increment
表和字段
数据类型
整数
tinyint , int , integer
小数
double(m,n)8 , float(m,n)4 , decimal(m,n)
字符串
varchar(len)
日期
date , timestanp
三范式
①1NF:满足字段的原子性,表的设计必须满足1NF
①2NF:消除部分依赖(某些字段只依赖于联合主键中一个)。
②快速满足2NF:把部分依赖的字段和依赖的键放在一张表,其余不依赖部分放在另一张表,需要联合主键决定的字段和联合主键放在一张表。
①3NF:不存在⾮关键字段之间的传递依赖(字段A是主键,字段B依赖于子弹A,字段C依赖于字段B,字段C不依赖字段A,则A和C是由字段B做的传递依赖快速解决的办法:字段A和B在一张表,字段B和C在一张表)