1.定义基本表语句

语法:

USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',

列名 类型(大小) DEFAULT'默认值',

列名 类型(大小) DEFAULT'默认值',

... ...);

注:绿色部份是可以省略的。

例:CREATE TABLE S (SNO char(2), SNAME char(8), AGE decimal(2), SEX char(2) DEFAULT'男', DEPT char(2));

创建了一个五列的表,其中第四列的默认值为‘男’。

--------------------------------------------------------------------------------

2.定义完整性约束

语法:

USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

... ...);

注:(1) 绿色部份是可以省略的。

(2) 一个列是可以有多个约束的。

约束定义:

(1)NULL | NOT NULL  用于定义列的空值约束。(定义列)  (下面的蓝色部份是单选其中之一)

语法:CONSTRAINT 约束名 NULL | NOT NULL

注意:

a. NOT NULL 约束强制列不接受 NULL 值。

b. NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。

例:

下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

CREATE TABLE Persons
                     (
                     Id_P int NOT NULL,
                     LastName varchar(255) NOT NULL,
                     FirstName varchar(255),
                     Address varchar(255),
                     City varchar(255)
                     )

(2)UNIQUE  约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);

说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一。定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统将为这些列建立唯一索引,从而保证在表中的任意两行记录在指定的列或列组合上不能取同样的值。

注意:

a. UNIQUE 约束唯一标识数据库表中的每条记录。

b. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

c. PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

d.请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

例:

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:

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)
                 )

(3)PRIMARY KEY 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 PRIMARY KEY (列名, 列名, ... ...);

说明:用于定义基本表的主键。与UNIQUE约束类似,PRIMARY KEY 约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性。然而它们之间也存在着很大差别:在一个基本表中只能定义一个 PRIMARY KEY 约束,却能定义多个UNIQUE约束。如果为基本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中在任何一个列都不能出现空值;而 UNIQUE 约束允许出现空值。

注意:

a. 主键必须包含唯一的值。

b. 主键列不能包含 NULL 值。

c. 每个表应该都一个主键,并且每个表只能有一个主键。

例:

下面的 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 uc_PersonID PRIMARY KEY (Id_P,LastName)
                 )

(4)FOREIGN KEY 外键 (即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;

说明:指定某一个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了 FOREIGN KEY 约束,系统将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。

注意:

a.在REFERENCES 中引用的列必须和 FOREIGN KEY 的外部键列一一对应,即列数目相等并且相应列的数据类型相同。

例:

下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:

MySQL:
                 CREATE TABLE Orders
                 (
                 O_Id int NOT NULL,
                 OrderNo int NOT NULL,
                 Id_P int,
                 PRIMARY KEY (O_Id),
                 FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
                 )
                 SQL Server / Oracle / MS Access:
                 CREATE TABLE Orders
                 (
                 O_Id int NOT NULL PRIMARY KEY,
                 OrderNo int NOT NULL,
                 Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
                 )
                 如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
                 CREATE TABLE Orders
                 (
                 O_Id int NOT NULL,
                 OrderNo int NOT NULL,
                 Id_P int,
                 PRIMARY KEY (O_Id),
                 CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
                 )

(5)CHECK 约束用于限制列中的值的范围。 (即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 CHECK (约束条件);

说明:用于指定基本表中的每一条记录必须满足的条件,可以对基本表在各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。

注意:

a. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

b. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

例:

下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数。

My SQL:
                 CREATE TABLE Persons
                 (
                 Id_P int NOT NULL,
                 LastName varchar(255) NOT NULL,
                 FirstName varchar(255),
                 Address varchar(255),
                 City varchar(255),
                 CHECK (Id_P>0)
                 )
                 SQL Server / Oracle / MS Access:
                 CREATE TABLE Persons
                 (
                 Id_P int NOT NULL CHECK (Id_P>0),
                 LastName varchar(255) NOT NULL,
                 FirstName varchar(255),
                 Address varchar(255),
                 City varchar(255)
                 )
                 如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 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 chk_Person CHECK (Id_P>0 AND City='Sandnes')
                 )


例:USE lijintao CREATE TABLE S2

(SNO CHAR(2) CONSTRAINT S_PRIM PRIMARY KEY,
          SN CHAR(8) CONSTRAINT SN_CONS NOT NULL,
          AGE NUMERIC(2) CONSTRAINT AGE_CONS NOT NULL CONSTRAINT AGE_CHK CHECK(AGE BETWEEN 15 AND 45),
          SEX CHAR(2) DEFAULT '男' CONSTRAINT SEX_CHK CHECK(SEX = '男' OR SEX = '女'),
          DEPT CHAR(2) CONSTRAINT DEPT_CONS NOT NULL);

SQL语句---创建表相关推荐

  1. ACCESS数据库使用sql语句创建表

    在Access中使用sql语句创建表时指定字段类型 长度为255的文本varchar 长度为20的文本varchar(20) 日期时间datetime 数字byte或smallint或integer, ...

  2. SQL语句创建表并添加数据

    SQL语句创建表并添加数据 创建表 use school 指定要用的数据库 go create table student 创建表 ( ID bigint identity(1,1), 添加ID,id ...

  3. 如何用sql语句创建表

    如何用sql语句创建表 创建一个logging表 create table logging ( id int primary key, title varchar(20), actice varcha ...

  4. 使用sql语句创建表、修改表、添加列等

    使用sql语句创建表.修改表.添加列等 原文链接 创建表: CREATE TABLE 学生信息 ( 学号 varchar(14) IDENTITY(1,1) PRIMARY KEY, 姓名 varch ...

  5. sql语句创建表的同时添加外键约束

    sql语句创建表的同时添加外键约束 题目 建立一个商店的数据库store,记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商): 顾客(顾客号,姓名,住址): 订单 ...

  6. 根据狂神说课程在sqlyog中用sql语句创建表

    在sqlyog中用sql语句创建表和修改删除表 CREATE TABLE IF NOT EXISTS `student`( --创建student表`id` INT(4) NOT NULL AUTO_ ...

  7. mysql使用SQL语句创建表

    使用SQL语句创建一张表,不仅可以可以快速创建表,少去了不少时间,还可以从这看出一个人对该技能点的熟悉程度. 下面是一张简单的表创建语句: CREATE TABLE `tb_area`(`area_i ...

  8. SQL Server 用 SQL 语句创建表

    创建数据表 sql语句如下 create table 表名 (列名 数据类型和字段长度,...... ) 常用数据类型: char: 定长的非Unicode字符,char(n) nchar: 定长的U ...

  9. mysql 更改建表语句_MySql:如何通过Sql语句创建表,更改表?,这几步你要了解...

    mysql在网站开发中,越来越多人使用了,因为方便部署,方便使用. 我们在平时使用中,通常都是通过客户端软件去创建表和更改表,比如用 Navicat.很多人都不会用sql语句去创建表,或者语法忘记了. ...

最新文章

  1. Winform中跨窗体设置ZedGraph的属性并刷新曲线图
  2. dac0832产生梯形波程序C语言,在8086系统中用DAC0832输出一个三角波,一个梯形波,和一个正弦波。...
  3. SDNU 1430.十六进制转八进制(python)
  4. 实例61:python
  5. 【干货】GRU神经网络
  6. 【动态规划】LIS最长上升子序列和LCS最长公共子序列
  7. xshell 6安装教程
  8. 利用C#进行CAD二次开发
  9. 谨慎选择我们的先验 - 对最优拟合概率分布搜索空间的一种约束
  10. vue 数据看板大屏适配方案
  11. 飞机大战之六:敌机爆炸(碰撞检测)
  12. 给我五分钟,带你彻底掌握 MyBatis 缓存的工作原理
  13. 离线在Jenkins安装CoBOT安装插件
  14. E/WindowManager: android.view.WindowLeaked: Activity com.xxx.xxx.xxx
  15. 短视频消重批量处理软件,短视频伪原创工具,火山头条快手秒拍 今日头条自媒体搬运原创视频批量去...
  16. @ERROR: auth failed on module wwwroot rsync error: error starting client-server protocol (code 5) at
  17. 字节跳动 面试 复盘 回顾 2021 过客局
  18. 在HTML中制作贪吃蛇游戏
  19. Python scrapy学习之爬取2k唯美壁纸详细过程笔记及讲解
  20. python蜂鸣器天空之城频率_用python来一首钢琴solo天空之城

热门文章

  1. 2022蓝帽杯初赛wp
  2. 楼盘字典为什么能成为贝壳的超级护城河?
  3. selenium自动登录知网下载论文
  4. 安能辨龟是雄雌---巴西龟的雌雄辨别方法
  5. java玫瑰花代码_Java版给爱人表白的玫瑰花程序代码
  6. 微内核相对于单内核优势之我见
  7. 一份新媒体营销推广策划方案 助你升级主管路
  8. 查询快递 教你一个方法按照物流途径城市筛选签收地
  9. 日本超高人气聊天软件LINE最全注册攻略来了
  10. mysql 分离 实时读_MySQL深入利用Ameoba实现读写分离