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