1.回顾MySQL入门
2.MySQL数据类型介绍
MySQL中定义数据字段的类型对数据库的优化非常重要
MySQL支持多种类型,大致分为三类:数值,日期/时间和字符串(字符)
①字符类型:char,varchar,text,blob
②数值类型:int,bigint,float,decimal
③日期类型:data,time,datetime,timestamp
date: yyyy:MM:dd HH:mm:ss
time: HH:mm:ss
datetime: yyyy:MM:dd
timestemp(时间戳): 长整数
3.建表
建表
create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期
)
表的修改
alter table 表名 add/drop/modify/change column 列名【列类型,列约束】
修改列名
alter table book change column publishdate pubDate datetime;
alter table book_chinese change column author writer varchar(20);
修改列名的类型或约束
alter table book change column pubdate timestamp;
添加新列
alter table book add column annual double;
删除列
alter table book drop column annual;
修改表名
alter table book rename to book_chinese;
表的删除
drop table if exists book_chinese;
#通用的写法
drop datebase if exists library;
查询数据库里所有的表
show tables;
表的复制
where 1=1:复制表结构及内容
where 1=2:复制表结构
如果只需要复制部分列,将 * 替换为需要的列名
create table book_chinese as select * from book_math where 1=1;
4.六大约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
NOT NULL :非空,用于保证该字段的值不能为空比如姓名、学号等
DEFAULT :默认,用于保证该字段有默认值比如性别
PRIMARY KEY :主键,用于保证该字段的值具有唯一性,并且非空比如学号、员工编号等
UNIQUE :唯一,用于保证该字段的值具有唯一性,可以为空比如座位号
CHECK :检查约束【mysql中不支持】比如年龄、性别
FOREIGN KEY :外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的
值在从表添加外键约束,用于引用主表中某列的值比如学生表的专业编号,员工表的部门编号,员
工表的工种编号
列级约束
第一种写法
create table book(
id int primary key,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期
)
第二种写法
create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期primary key(id);
)
表级约束
create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期constraint pk primary key(id),
constraint uq unique (bname),
)
修改表时添加约束
添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束;
添加表级约束
alter table 表名 add 【constraint 约束名】 约束类型(字段名)【外键的引用】;
1.添加非空约束
ALTER TABLE MODIFY COLUMN bname VARCHAR(20) NOT NULL;
2.添加默认约束
ALTER TABLE book_chinese MODIFY COLUMN price INT DEFAULT 18;
3.添加主键
①列级约束
ALTER TABLE book_chinese MODIFY COLUMN id INT PRIMARY KEY;
②表级约束
ALTER TABLE book_chinese ADD PRIMARY KEY(id);
4.添加唯一
①列级约束
ALTER TABLE book_chinese MODIFY COLUMN bname INT UNIQUE;
②表级约束
ALTER TABLE book_chinese ADD UNIQUE(bname);
5.添加外键
ALTER TABLE book_chinese ADD CONSTRAINT library_book_chinese_major FOREIGN KEY(majorid) REFERENCES major(id);
修改表时删除约束
1.删除非空约束
ALTER TABLE book_chinese MODIFY COLUMN bname VARCHAR(20) NULL;
2.删除默认约束
ALTER TABLE book_chinese MODIFY COLUMN price INT ;
3.删除主键
ALTER TABLE book_chinese DROP PRIMARY KEY;
4.删除唯一
ALTER TABLE book_chinese DROP INDEX bname;
5.删除外键
ALTER TABLE book_chinese DROP FOREIGN KEY library_book_library_major;
SHOW INDEX FROM book_chinese ;