一、索引
索引的作用:索引包含普通索引(加快查询速度),主键索引(主键索引可以确保表中每一行的数据都具有唯一的标识),唯一索引(唯一索引用于确保列中的值是唯一的)等等
注意:mysql不支持改变索引,可以删了后新加
1.创建索引
-- 为test1表的p_name创建一个普通索引名字为p_name
CREATE INDEX p_name ON test1(p_name);
-- 为test1表的p_data创建一个唯一索引名字为p_data
CREATE UNIQUE INDEX p_data ON test1(p_data);
2. 删除索引
-- 下面两句都可以
DROP INDEX p_name ON test1;
ALTER TABLE test1 DROP INDEX P_data;
二、约束
1. 主键约束
解释:主键即属于索引又属于约束
2.外键约束
解释:外键只属于约束
2.1 外键的创建
-- 创建时加入外键(前提:test1的p_name必需是一个索引)
CREATE TABLE test2(
id INT PRIMARY KEY,
s_name CHAR(64),
s_data CHAR(128),
p_name CHAR(64),
FOREIGN KEY (p_name) references test1(p_name)
);
-- 添加
ALTER TABLE test2 ADD constraint p_name foreign KEY (p_name) references test1(p_name);
2.2 外键的删除
-- 这个索引名称不一定是一开始创建的p_name
ALTER TABLE test2 DROP FOREIGN KEY 索引名称;
3.CHECK约束
注意:该约束需要在mysql8较高版本才能使用
3.1 CHECK的创建
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
CHECK (条件表达式)
);
ALTER TABLE test2 ADD CONSTRAINT p_name_check CHECK(p_name!='5');
三、表结构
1. 创建
CREATE TABLE test1(
id INT PRIMARY KEY,
p_name CHAR(64),
p_data CHAR(128)
);
2. 修改
-- 新增一列p_like int类型
ALTER TABLE test1 ADD p_like INT;
-- 修改p_like列为char(64)类型
ALTER TABLE test1 MODIFY p_like CHAR(64);
3. 删除
DROP TABLE test1;
四、视图
解释:视图是数据库中的虚拟表,它是从一个或多个实际表中的数据导出的表。视图不包含实际存储的数据,而是根据特定的查询条件从基础表中动态地获取数据;通过创建视图,您可以将复杂的查询逻辑封装到视图中,简化对数据的查询操作;视图可以被重复利用,避免在不同查询中重复编写相同的复杂逻辑
1.创建
CREATE VIEW this1 AS SELECT * FROM test1;
2.使用
解释:将视图当作一张表使用即可
SELECT * FROM this1;
3.删除
-- 删除一个套路都是drop
DROP VIEW this1;