SQL 高级语法(三)

SQL 约束

定义:

用于规定表中的数据规则,若违反约束的数据行为,行为会被约束终止。

语法:

CREATE TABLE table_name

(

column_name1 data_type(size) constraint_name,

column_name2 data_type(size) constraint_name,

...

)

约束类型:

NOT NULL: 指示某列不能存储 NULL 值。

UNIQUE: 保证某列的每行必须有唯一的值。

PRIMARY KEY(主键): NOT NULL 和 UNIQUE 的结合。确保某列有唯一标识。

FOREIGN KEY(外键): 保证一个表中的的数据匹配另一个表中的值的参照完整性。

CHECK: 保证列中的值符合特定的条件。

DEFAULT: 规定没有给列赋值时的默认值。

SQL CREATE INDEX 语句

定义:

用于在表中创建索引,使用索引可以更快地查找数据。

语法:

SQL CREATE INDEX 语法:

CREATE INDEX index_name

ON table_name (column_name)

SQL CREATE UNIQUE INDEX

CREATE UNIQUE INDEX index_name

ON table_name (column_name)

DROP 关键字

DROP INDEX 语句:

删除表中的索引:

ALTER TABLE table_name

DROP INDEX index_name

DROP TABLE 语句:

删除表:

DROP TABLE table_name

DROP DATABASE 语句:

删除数据库:

DROP DATABASE database_name

TRUNCATE TABLE 语句:

删除表内数据,而不删除表:

TRUNCATE TABLE table_name

SQL ALTER TABLE 语句

定义:

用于在已有的表中添加、删除或修改列。

语法:

在表中添加列:

ALTER TABLE table_name

ADD column_name datatype;

删除表中列

ALTER TABLE table_name

DROP COLUMN column_name;

改变表中列的数据类型

ALTER TABLE table_name

MODIFY COLUMN column_name datatype;

SQL AUTO INCREMENT 语句

定义:

会在新纪录插入表中时生成一个唯一的数字。

语法:

CREATE TABLE Persons

(

ID int NOT NULL AUTO_INCREMENT, 

LastName varchar(255) NOT NULL, 

FirstName varchar(255),

Address varchar(255),

City varchar(255),

PRIMARY KEY (ID)

)

MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。

默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。

要让 AUTO_INCREMENT 序列以其他的值起始,请使用下面的 SQL 语法:

ALTER TABLE Persons AUTO_INCREMENT=100;

SQL 视图

SQL CREATE VIEW 语句

定义:

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

语法:

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition;

注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

SQL CREATE OR REPLACE VIEW 语法:

CREATE OR REPLACE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

SQL DROP VIEW 语法

DROP VIEW view_name

参考链接:https://www.runoob.com/sql

原文地址:https://www.cnblogs.com/john1015/p/13652248.html