自学内容网 自学内容网

SQL - 进阶语法(二)约束

1. SQL约束

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

• NOT NULL

确保列不能有NULL值

如果添加一行新的数据,不能有null值,否则无法添加

新建表格

CREATE TABLE new_table(
ID int NOT NULL,
NAME varchar(255) NOT NULL
);

修改

ALERT TABLE new_table
MODEIFY ID int NULL/NOT NULL;

• UNIQUE

确保列中所有值都是唯一

在所设定UNIQUE约束的列中不能含有重复值,但可以是NULL值

新建表格

CREATE TABLE new_table(
ID int NOT NULL UNIQUE,
LastName VARCHAR(255) NOT NULL
);

修改

ALERT TABLE new_table
ADD UNIQUE (ID); //添加
DROP INDEX ID; //删除

• PRIMARY KEY

唯一标识记录,相当于UNIQUE与NULL的结合

每一个表只能有一个PRIMARY KEY,可以由单个列或者多个列组成

表格创建

CREATE TABLE new_tabel
(
ID INT NOT NULL PRIMARY KEY | ID INT, PRIMARY KEY(ID)
LastName varchar(255)
);

多列约束

CREATE TABLE new_table
(
CONSTRAINT PERSONID PRIMARY KEY (ID,LastName)
);

修改&删除

ALERT TABLE new_table
DROP PRIMARY KEY column1;
ALERT TABLE new_table
DROP CONSTRAINT PERSONID;

• FOREIGN KEY

建立两表之间的关系

一个表中的FOREIGN KEY连接着另一个表中的UNIQUE KEY

- 预防破坏表之间的连接行为

- 防止非法数据插入外键列

新建表格

CREATE TABLE new_table(
FOREIGN KEY id REFREENCES old_table(ID) //连接old_table表中ID主键
)
CREATE TABLE new_table(
Id INT FOREIGN KEY REFERENCES old_table(name)
);

修改

ALERT TABLE
ADD FOREIGN KEY (ID)
REFERENCES old_table(name);
ALERT TABLE new_table
DROP FOREIGN KEY ID;

• CHECK

确保列中的值满足特定的条件,限制值的范围

新建表格

CREATE TABLE new_table
(
ID INT NOT NULL,
CHECK (ID > 0)
);
CREATE TABLE new_table
(
ID INT CHECK (ID>0)
);

修改&删除

ALERT TABLE new_table
ADD CHECK (ID>0);
ALERT TABLE new_table
DROP CHECK ID;

• DEFAULT

设置默认值,新创建的数据没有规定值,则会填充默认值

新建表格

CREATE TABLE new_table
(
ID INT NOT NULL,
NAME VARCHAR(255) DEFAULT ‘LOUIS’
);

修改

ALERT TABLE new_table
ALTER NAME DROP DEFAULT;

• INDEX

用于快速访问数据库表中的数据

CREATE INDEX index_name
ON table_name (column_name);

2. SQL删除数据

•删除索引

DROP INDEX index_name ON table_name;

•删除表格

DROP TABLE table_name;

•删除数据库

DROP DATABASE database_name;

删除表中数据,但表仍然存在

TRUNCATE TABLE table_name;

3. 操作表中数据

ALERT对表中列进行操作

3.1 增加列

ALERT TABLE table_name
ADD column_name datatype;

3.2 删除列

ALTER TABLE table_name
DROP COLUMN column_name;

3.3 修改数据约束

ALTER TABLE table_name
ALERT/MODIFY COLUMN column_name datatype; 

4. 自动索引 AUTO INCREMENT

新纪录插入表中时,自动创建主键的值

在这里只讲述MySql中的用法

CREATE TABLE new_table
(
ID INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(255)
);

默认值为1

自行设置默认值

ALERT TABLE new_table
AUTO_INCREMENT = 100;
INSERT INTO new_table (Name)
VALUES (‘LOUIS’); //插入新值,索引+1


原文地址:https://blog.csdn.net/qq_51222843/article/details/142431924

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!