(二)SQL高级进阶
来源:互联网 发布:手机注销淘宝账号 后果 编辑:程序博客网 时间:2024/05/19 21:00
一、约束
1、定义
约束就是限制加入表的数据类型
2、创建类型
1、在创建表时候添加约束(通过create table)创建。
2、在创建表之后添加约束(通过alter table)添加约束。
3、约束类型(分为六种)下面做详情的讲解
- NOT NULL
强制限制该字段不能插入空值,也就是说该字段如果值为空时,不能插入和修改数据。
案例:
CREATE TABLE Persons(Id_P intNOT NULL
,LastName varchar(255)NOT NULL
,FirstName varchar(255),Address varchar(255),City varchar(255))
- UNIQUE
约束数据库中每条记录的唯一标识,和primary key 约束均为列或集合列中的唯一性保证。
注意:与primary key区别,unique在列中可以有多个,但是primary key 只能有一个。
创建表之前:
MYSQL
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),UNIQUE (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL UNIQUE
,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
在创建表之后
当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD UNIQUE (Id_P)
如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastNam
撤销 UNIQUE 约束
如需撤销 UNIQUE 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE PersonsDROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsDROP CONSTRAINT uc_PersonID
- PRIMARY KEY
1、改约约束唯一标识数据库中的每条记录。
2、主键必须包含唯一的值。
3、主键不能为NULL。
4、每个表都应该有的主键,并且每个表只能有唯一的主键。
SQL PRIMARY KEY Constraint on CREATE TABLE
下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:
MySQL:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL PRIMARY KEY
,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)
SQL PRIMARY KEY Constraint on ALTER TABLE
如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD PRIMARY KEY (Id_P)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
撤销 PRIMARY KEY 约束
如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE PersonsDROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsDROP CONSTRAINT pk_PersonID
- FOREIGN KEY
简单简介:一个表中的foreing key(外键)对应另一个表中的primary key(主键)。
foreing key:用于预防破换表之间的连接状态。
foreing key:也能防止非法数据插入外键列,因为它的值是另外一张表的值之一。
- CHECK
- DEFAULT
阅读全文
0 0
- (二)SQL高级进阶
- 《Java7编程高级进阶》(二)
- SQL高级进阶
- SQL高级教程(二)
- 进阶级-高级SQL查询
- 五、ValueAnimator属性动画高级进阶(二)
- Git教程——高级进阶(二)
- SQL 习题进阶 二
- mysql-sql高级应用 sql语言进阶
- 第二十二课(二)、高级SQL特性
- 高级SQL优化(二)
- Android SQLite SQL语句高级进阶
- Mycat高级进阶---Mycat SQL拦截机制
- SQL 进阶学习之二
- Linq To Sql进阶系列(二)M:M关系
- T-SQL高级篇(二)
- Android自定义控件:动画类(七)----属性动画ValueAnimator高级进阶(二)
- Android开发高级进阶(二)—多线程(实现简单下载器)
- linux中系统状态管理
- C++基础知识
- getField用法总结
- The application requires a java runtime environment 1.7.0
- NMS——非极大值抑制
- (二)SQL高级进阶
- 【编译原理】词法分析(一)
- jq中的prop()与attr()的用法区别
- ajax与json
- 判断用户是否已关注微信公众号
- Spring中Logback日志配置详解
- linux命令备份
- Linux怎么为用户添加sudoers权限
- bat脚本