SQL_菜鸟教程_unique、primary key、foreign key


insert into select

从一个表复制数据,然后把数据插入到一个已存在的表中。

INSERT INTO table2
SELECT * FROM table1;

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
### create

```sql
#创建数据库
CREATE DATABASE dbname;
#创建表
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
size 参数规定表中列的最大长度。

create

创建列时为字段添加约束条件
创建时规定使用create table语句,创建后规定使用 alter table语句。

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

约束Constraints ***

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
    表中可以有多个字段标记unique
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。
    每个表中只能有一个主键,且不为空
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。
    使用示例

以下关键字的使用 由于数据库不同会略有不同
单个列的unique、primary key 使用方法中 MySQL需要将关键字加在所有字段之后,而SQL可以直接在字段编辑的后面
联合的unique 和primary key 使用都是用constraint 关键字

not null_添加、修改

#not null,直接在字段类型后添加

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

#修改 时使用 alter table 关键字和modify  将整个字段重新编辑
ALTER TABLE Persons
MODIFY Age int NOT NULL;

ALTER TABLE Persons
MODIFY Age int NULL;
#

unique_添加、修改、删除***

个人理解:
unique 约束分为单个的约束和多个列的约束
定义单个列的unique约束可以直接在字段编辑时添加(除MySQL)
定义多个列的unique约束需要在表的所有字段添加完之后使用constraint 关键字添加,并为这个约束命名
在这里插入图片描述

#unique 使用方法

#Mysql
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
#SQL Server / Oracle / MS Access:
#和null 的用法一致
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

#sql 通用语法
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
#当表已被创建时,如需在 "P_Id" 列创建 UNIQUE 约束,请使用下面的 SQL
ALTER TABLE Persons
ADD UNIQUE (P_Id)
#如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
#MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
#SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

PRIMARY KEY 约束_添加、修改、撤销

#MySQL用法:primary key 标记添加在最后面
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
#SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
#如需命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束,请使用下面的 SQL 语法:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

修改表时使用Alter 关键字 和add 关键字

#MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
#MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

撤销

#MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
#SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

FOREIGN KEY 约束(外键)

关键字:FOREIGN KEY,REFERENCES

一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。

FOREIGN KEY 约束用于预防破坏表之间连接的行为。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
添加
添加
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/persuetAmbition/article/details/115405973
今日推荐