我是靠谱客的博主 含糊猫咪,这篇文章主要介绍SQL语句——数据库定义、架构定义、表的定义SQL语句,现在分享给大家,希望可以做个参考。

SQL语句

数据库的定义

  1. 数据库的创建

    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE DATABASE <数据库名> [ON [PRIMARY] <文件> [, ...n] [, <文件组> [, ...n]] [ LOG ON <文件> [, ...n]]] [COLLATE <校验方式名>] [WITH <选项> [, ...n]][;] # 创建一个StudentCourse数据库 CREATE DATABASE StudentCourse
  2. 数据库修改

    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ALTER DATABASE <数据库名> ADD FILE <文件名> [, ...n] [ TO FILEGROUP {文件组} ] | ADD LOG FILE <文件> [, ...n] | REMOVE FILE <文件> [, ...n] | MODIFY FILE <文件> [, ...n] /* 将一个大小为10M的数据文件 student_Data.mdf 添加到 StudentCourse 数据库中, 该文件的大小为10M,最大的文件大小为100M,增长速度为2MB,物理地址为D盘 */ ALTER DATABASE StudentCourse ADD FILE ( Name=student_Data, FILENAME='D:sqlstudent_Data.mdf', Size=100M, Maxsize=100MB, Filegrowth=2MB )
  3. 数据库删除

    复制代码
    1
    2
    3
    4
    DROP DATABASE <数据库名> [, ...n][;] # 将 StudentCourse 数据库删除 DROP DATABASE StudentCourse

架构的定义

架构(SCHEMA,也称模式)是数据库下的一个逻辑命名空间,可以存放表、视图等数据对象,它是数据库对象的容器。

  1. 架构创建

    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE SCHEMA { <架构名> | AUTHORIZATION <所有者名> | <架构名> AUTHORIZATION <所有者名> } [{表定义预计 | 视图定义语句 | 授权语句 | 拒绝权限语句 }][;] # 执行架构语句的用户必须具有数据库管理员权限, # 或者是获得了数据库管理员授予的 CREATE SCHEMA 的权限 # 为用户 “HMT” 定义一个架构,架构名为 “S_C” CREATE SCHEMA S_C AUTHORIZATION HMT
  2. 架构修改

    复制代码
    1
    2
    3
    4
    5
    6
    7
    # 架构修改使用 ALTER SCHEMA 语句,可用于在同一数据库中的架构之间移动安全对象 ALTER SCHEMA <架构名> TRANSFER <对象名> [;] # 将表 Address 从架构 Person 传输到 HumanResources 架构 ALTER SCHEMA HumanResources TRANSFER Person.Address
  3. 删除架构

    复制代码
    1
    2
    3
    4
    DROP SCHEMA <架构名> [;] # 删除S_C 架构 DROP SCHEMA S_C

表的定义

  1. 表的创建

    复制代码
    1
    2
    3
    4
    5
    6
    CREATE TABLE [<架构名>.]<表名> ( {<列名> <数据类型> [列级完整性约束定义 [, ...n]]} [表级完整性约束 ][, ...n] )

    注意:默认时SQL语言不区分大小写。

    参数说明:

    • <表名>是所要定义表的名字。
    • <列名>是表中所包含的属性列的名字
    • 在定义表的同时还可以定义与表有关的完整性约束,这些完整性约束条件都会存储在系统的数据字典中。如果完整性约束只设计表中的一个列,则这些约束条件可以在**“列级完整性约束定义”处定义,也可以在“表级完整性约束定义”处定义;但某些涉及表中多个属性列的约束,必须在“表级完整性约束定义”**处定义。

    在“列级完整性约束定义”处可以定义如下约束:

    • NOT NULL:非空约束,限制列取值非空。
    • PRIMARY KEY:主键约束,指定本列为主键。
    • FOREIGN KEY:外建约束,定义本列为引用其他表的外建。
    • UNIQUE:唯一值约束,限制列取值不能重复。
    • DEFAULT:默认值约束,指定列的默认值。
    • CHECK:列取值范围约束,限制列的取值范围。

    各约束具体语法:

    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # 1. 主键约束 PRIMARY KEY [(<列名> [, ...n])] # 如果在列级完整性约束处,可以省略方括号中内容 # 2. 外建约束 [FOREIGN KEY (<列名>)] REFERENCES <外表名> (<外表列名>) # 如果在列级完整性约束处,可省略 "FOREIGN KEY (<列名>)" # 3. 唯一值约束 UNIQUE [(<列名> [,...n])] /* 注意: 1. 唯一值约束允许有一个空值(NULL) 2. 在一个表中可以有多个唯一值约束 3. 可以在一个列或多个列上定义UNIQUE约束 */ /* 4. 默认值约束。一个默认值约束只能为一个列提供默认值, 且默认值约束必须是列级约束 有两种, 1.在定义表时制定默认约束, 2.在修改表时添加默认值约束 */ # 在创建表时定义默认值约束 DEFAULT 常量表达式 # 为已经创建好的表添加默认值约束 DEFAULT 常量表达式 FOR 列名 # 5. 列取值范围约束 CHECK (逻辑表达式)

    使用SQL语句创建一个Student表,结构如下:

    列明含义数据类型约束
    Sno学号char(7)主键
    Sname姓名nchar(20)非空
    Ssex性别nchar(2)非空;默认值:男;
    检查:只能是’男’或’女’
    Sbirthday出生日期smalldatetime
    Sdept所在系nvarchar(20)
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE Student ( Sno CHAR(7) PRIMARY KEY, Sname NCHAR(20) NOT NULL, Ssex NCHAR(2) NOT NULL DEFAULT '男' CHECK (Ssex in ('男', '女')), Sbirthday DATETIME, Sdept NVARCHAR(20) )
  2. 表的修改

    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ALTER TABLE [<架构名>.]<表名> { ALTER COLUMN <列名> <新数据类型> -- 修改表定义 | ADD <列名> <数据类型> [约束] -- 添加新列 | DROP COLUMN <列名> -- 删除列 | ADD [CONSTRAINT <约束名>] 约束定义 -- 添加约束 | DROP <约束名> -- 删除约束 } -- 为Student表添加备注(Memo)列,此列名为Memo,数据类型为text ALTER TABLE Student ADD Memo text -- 将Student表的Sname列的数据类型修改为 NVARCHAR(40) ALTER TABLE Student ALTER COLUMN Sname NVARCHAR(40) -- MySQL用的是 MODIFY 而不是 ALTER
  3. 表的删除

    复制代码
    1
    2
    3
    4
    DROP TABLE <表名> -- 删除Student表 DROP TABLE Student

最后

以上就是含糊猫咪最近收集整理的关于SQL语句——数据库定义、架构定义、表的定义SQL语句的全部内容,更多相关SQL语句——数据库定义、架构定义、表内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部