SQL Server—创建表和主外键&数据库约束&数据库脚本&脚本创建数据库()

创建表和主外键:

主键:唯一标识一条数据,值不能重复,不能为空。创建一个主键,同时自动创建了一个聚集索引。

创建主键:右键列->选择【设置主键】

标识列:一个列设置成标识列,就不能再手动插入,插入时,自动生成,这个列数据类型必须是整型。还要指定标识种子(第一条记录中标识列的值)和增量(相邻两条记录的增量)。

外键:用于两个表建立关联,一个表中的一个列创建为外键,这个列在另一个表必须是主键。

创建外键:右键列->选择【关系】->在外键关系界面点【添加】->在(常规)中的表和列规范,点击最右边的【…】->选择主键表的主键列和外键表的外键列

注:(1)外键所在的表叫外键表,另一个是主键表。两个表一旦建立外键关系,外键表里的对应的外键列,它的值必须是它对应的主键表里的主键值,如果想插入一个不存在的值,是插入不进去的。

    (2)一个表里可以有多个外键,也可以没有;一个表里只能有一个主键,也可以没有。

数据库约束:

  约束定义:规定表中的数据规则。如果存在违反约束的数据行为,行为就会被阻止。

  约束的创建时机:(1)使用软件创建表之后;

          (2)使用脚本创建表时,可以在创建过程中或者创建后建立约束。

  分类:

    主键:Primary Key约束,唯一性,非空,不能修改。

    外键:Foreign Key约束,加强两个表的一列或多列数据之间的连接。先建立主表的主键,后定义从表中的外键,只有主表中的主键才能被从表用来作为外键使用,主表限制了从表的更新和插入的操作,当删除主表中的某种数据,应该先删除从表中相关的数据,再删除主表。

    Unique约束:唯一性约束,确保表中的一列数据没有相同的值(没有重复的值)。与主键约束相似,但有不同,一个表中主键只有一个,但唯一约束可以有多个。

    Check约束:通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列值的范围。

  Default约束:默认值约束,用户在插入新的数据行时,如果没有指定数据,那么系统会将默认值赋给该列,如果没有设置默认值,系统会默认为NULL。

步骤:

  创建Unique约束:右键列->选择【索引/键】->【添加】->在(常规)中的类型,选择【唯一键】

  创建Check约束:右键列->选择【CHECK约束】->【添加】->在(常规)中的表达式,点击最右边的【…】->输入表达式->【确定】

  创建Default约束:左键列->在(常规)中的默认值或绑定,输入默认值或函数

数据库脚本:

  定义:用于创建数据库对象的语句集合。

  T-SQL:Transact-SQL,基于SQL(Structured Query Language),结构化查询语言,用于应用程序和数据库之间沟通的编程语言。SqlServer支持的脚本语言。

  SQL语言:一种有目的的编程语言,用于存取数据、查询、更新和管理关系数据库,高级的非过程化的编程语言。

  作用:可以完成移植,提高数据访问效率,完成对数据的相关处理。

  SQL语言分类:

    (1)DQL:Data Query Language,数据查询语言:

      查询:【select 列 from 表名 where 条件】

    (2)DML:Data Manipulation Language,数据操纵语言:

插入:【insert into 表名(列,列,…) value(对应的值,对应的值,…)】

更新:【update 表名 set 列名=值,列名=值 where 条件】

删除:【delete from 表名 where 条件】

    (3)DDL:Data Definition Language,数据定义语言,创建数据库及其对象:

      创建/修改/删除【create/alter/drop database/table/view/proc/index】

    (4)DCL:Data Control Language,数据控制语言,用于授予或回收访问数据库某种特权,对数据库实行监视等:

      提交:【commit】,回滚:【rollback】,授权:【grant】

脚本创建数据库:

  创建脚本:创建新的数据库,要选择master数据库。

       master:系统数据库,它记录了SQLServer系统的所有系统级信息,还记录了所有其他数据库的存在,数据库文件的位置,SQLServer的初始化信息。

use master        --选择要操作的数据库
go                --批处理命令

--创建数据库
create database TestNewBase       --数据库名称
on primary                        --主文件组
(
    name = 'TestNewBase',                              --主要数据文件的逻辑名
    filename = 'E:\SQL Server\TestNewBase.mdf',        --主要数据文件的路径(绝对路径)
    size = 5MB,                                        --主要数据文件的初始大小
    filegrowth = 1MB                                   --主要数据文件的增量
)
log on                            --日志文件
(
    name = 'TestNewBase_log',                          --日志文件的逻辑名
    filename = 'E:\SQL Server\TestNewBase_log.ldf',    --日志文件的路径(绝对路径)
    size = 1MB,                                        --日志文件的初始大小
    filegrowth = 1%                                    --日志文件的增量
)
go

--删除数据库
drop database TestBase
————————

创建表和主外键:

主键:唯一标识一条数据,值不能重复,不能为空。创建一个主键,同时自动创建了一个聚集索引。

创建主键:右键列->选择【设置主键】

标识列:一个列设置成标识列,就不能再手动插入,插入时,自动生成,这个列数据类型必须是整型。还要指定标识种子(第一条记录中标识列的值)和增量(相邻两条记录的增量)。

外键:用于两个表建立关联,一个表中的一个列创建为外键,这个列在另一个表必须是主键。

创建外键:右键列->选择【关系】->在外键关系界面点【添加】->在(常规)中的表和列规范,点击最右边的【…】->选择主键表的主键列和外键表的外键列

注:(1)外键所在的表叫外键表,另一个是主键表。两个表一旦建立外键关系,外键表里的对应的外键列,它的值必须是它对应的主键表里的主键值,如果想插入一个不存在的值,是插入不进去的。

    (2)一个表里可以有多个外键,也可以没有;一个表里只能有一个主键,也可以没有。

数据库约束:

  约束定义:规定表中的数据规则。如果存在违反约束的数据行为,行为就会被阻止。

  约束的创建时机:(1)使用软件创建表之后;

          (2)使用脚本创建表时,可以在创建过程中或者创建后建立约束。

  分类:

    主键:Primary Key约束,唯一性,非空,不能修改。

    外键:Foreign Key约束,加强两个表的一列或多列数据之间的连接。先建立主表的主键,后定义从表中的外键,只有主表中的主键才能被从表用来作为外键使用,主表限制了从表的更新和插入的操作,当删除主表中的某种数据,应该先删除从表中相关的数据,再删除主表。

    Unique约束:唯一性约束,确保表中的一列数据没有相同的值(没有重复的值)。与主键约束相似,但有不同,一个表中主键只有一个,但唯一约束可以有多个。

    Check约束:通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列值的范围。

  Default约束:默认值约束,用户在插入新的数据行时,如果没有指定数据,那么系统会将默认值赋给该列,如果没有设置默认值,系统会默认为NULL。

步骤:

  创建Unique约束:右键列->选择【索引/键】->【添加】->在(常规)中的类型,选择【唯一键】

  创建Check约束:右键列->选择【CHECK约束】->【添加】->在(常规)中的表达式,点击最右边的【…】->输入表达式->【确定】

  创建Default约束:左键列->在(常规)中的默认值或绑定,输入默认值或函数

数据库脚本:

  定义:用于创建数据库对象的语句集合。

  T-SQL:Transact-SQL,基于SQL(Structured Query Language),结构化查询语言,用于应用程序和数据库之间沟通的编程语言。SqlServer支持的脚本语言。

  SQL语言:一种有目的的编程语言,用于存取数据、查询、更新和管理关系数据库,高级的非过程化的编程语言。

  作用:可以完成移植,提高数据访问效率,完成对数据的相关处理。

  SQL语言分类:

    (1)DQL:Data Query Language,数据查询语言:

      查询:【select 列 from 表名 where 条件】

    (2)DML:Data Manipulation Language,数据操纵语言:

插入:【insert into 表名(列,列,…) value(对应的值,对应的值,…)】

更新:【update 表名 set 列名=值,列名=值 where 条件】

删除:【delete from 表名 where 条件】

    (3)DDL:Data Definition Language,数据定义语言,创建数据库及其对象:

      创建/修改/删除【create/alter/drop database/table/view/proc/index】

    (4)DCL:Data Control Language,数据控制语言,用于授予或回收访问数据库某种特权,对数据库实行监视等:

      提交:【commit】,回滚:【rollback】,授权:【grant】

脚本创建数据库:

  创建脚本:创建新的数据库,要选择master数据库。

       master:系统数据库,它记录了SQLServer系统的所有系统级信息,还记录了所有其他数据库的存在,数据库文件的位置,SQLServer的初始化信息。

use master        --选择要操作的数据库
go                --批处理命令

--创建数据库
create database TestNewBase       --数据库名称
on primary                        --主文件组
(
    name = 'TestNewBase',                              --主要数据文件的逻辑名
    filename = 'E:\SQL Server\TestNewBase.mdf',        --主要数据文件的路径(绝对路径)
    size = 5MB,                                        --主要数据文件的初始大小
    filegrowth = 1MB                                   --主要数据文件的增量
)
log on                            --日志文件
(
    name = 'TestNewBase_log',                          --日志文件的逻辑名
    filename = 'E:\SQL Server\TestNewBase_log.ldf',    --日志文件的路径(绝对路径)
    size = 1MB,                                        --日志文件的初始大小
    filegrowth = 1%                                    --日志文件的增量
)
go

--删除数据库
drop database TestBase