SQL_菜鸟教程_unique、primary key、foreign key
SQL_unique、primary key、FOREIGN KEY
- insert into select
- create
- 约束Constraints ***
- not null_添加、修改
- 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 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
SQL_菜鸟教程_unique、primary key、foreign key相关推荐
- CHIL-ORACLE-主外键约束(primary key / foreign key)
主键约束 要求主键列数据唯一,并且不允许为空 外键约束 用于量表建立关系,需要指定引用朱彪的那列(主表必须是主键)1.主键约束 ( primary key )--例如1:create table te ...
- SQL_菜鸟教程_select
SQL 基础关键字使用 select where and & or order by insert into update delete 高级教程_select TOP 搜索 like 模式搜 ...
- MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表
阅读目录 一.引言: 二.一对多(foreign key) 三.多对多: 四.一对一: 五.修改表: 六.复制表: 摘要: 外键 一对多 外键 多对多 外键 一对一 一.引言: 我们在同一数据库创建的 ...
- 数据库开发——MySQL——foreign key
五,foreign key foreign key是跟外部表关联的字段. foreign key理解 学生信息表有三个字段:学号.姓名.年级,学校有四个年级,但是有3万多学生,那就意味着年级这个字段的 ...
- mysql一对一外键约束_MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表...
我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id会有一个或者同n个相同字段,这样就导致数据表结构数据重复冗余, 冗余还无所谓,关键是如果我要改其中一个相同的字段信息,其 ...
- python设置mysql外键_python基础教程之MySQL数据库之-foreign key 外键(一
今日重点:外键 一对多 多对多 一对一 -------------------------------------------------------------------------------- ...
- mysql外键名_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
- mysql 说明外码_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
- Oracle primary,unique,foreign 区别,Hibernate 关联映射
Oracle primary,unique,foreign 区别 转:http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html NOT N ...
最新文章
- windows server 更改默认服务端口
- 谈谈你对摩尔定律的理解,摩尔定律当前还是继续有效的吗?
- 3、MySQL二进制日志(Binary Log)详解
- MySQL基础总结(三)
- intellij运行flink的wordcount实验-Java版本
- tar.xz压缩、解压方式
- DEVEXPRESS---TREELIST的使用
- (3)vue.js安装
- oracle中游标详细用法
- Fail to queue the whole FAL gap in dataguard一例
- linux下编译libyuv,Android ndk cmake编译libyuv
- excel数据分组存到一个excel的多个sheet中
- 基于某点评字体库的字体反爬
- LeetCode93—Restore IP Addresses
- Vue2.x - Vue Router
- kotlin一点摸索
- java需要打开开机启动项吗_开机启动项
- 通过okHttpUtils实现文件的上传下载
- 提升技术团队战斗力的几件事
- pyqt5 tablewidget 隐藏表头,设置表头
热门文章
- Remind-You Part1. 多进程控制
- PostgreSql 日期类型处理
- matlab 修改语言环境,VS Code配置Matlab环境
- RESTful Web Service 架构剖析
- linux hz是多长时间,linux的HZ, Tick, Jiffies
- 1.学生版阿里云简单配置和win7、win10专业版及win10家庭版的远程桌面的配置详解
- 基于live555的rtsp播放器之十八:G711a/G711u/G726转AAC
- 一篇文章彻底学懂SQL注入(包含基础数据库句法、SQL注入原理以及所有常见SQL注入类型以及绕过手法)
- linux怎么退出tail命令,Linux系统tail命令怎么使用
- matlab可以拟合分段函数吗,如何用matlab拟合出分段函数