一、Mysql数据定义[索引、约束、表结构、视图]

一、索引

索引的作用:索引包含普通索引(加快查询速度),主键索引(主键索引可以确保表中每一行的数据都具有唯一的标识),唯一索引(唯一索引用于确保列中的值是唯一的)等等

注意: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;

你可能感兴趣的:(数据库,mysql,数据库)