SQL 数据表基本操作

1. 数据类型

1.1 整数型

整数型是一种精确数值的数据类型,an取值范围从大到小,包括 bigint,smallint,int,tinyint和bit一共5中类型;
20220123

在实际应用中,可根据属性的具体取值范围选择合适的整数类型

1.2. 数值型

数值型数据类型包括精确数值型 numeric 和 decimal,和近似数值型 float 和 real;
20220123
numeric 与 decimal 在功能上等效,用于精确存储数值;以numeric 为例,用格式为 numeric[(p[,s])],其中 p 表示数据最大长度,系统默认值为 18;s 表示小数位数,系统默认值为 0;
float 与 real 用于存储数据的近似值;以 float 为例,用格式为 float[(n)],其中,n 表示存储数据值尾数,系统默认为最大值 53;当属值范围大且对精度要求低时,可用这两种数据类型,如科学运算数据等;

1.3. 日期时间型

时间日期数据类型包括 datetime 和 smalldatetime 等;在 SQL Server 2008 版本之后,SQL Server 有新增了只表示日期的数据类型 date;与表示是时间的数据类型 time
20220123
在实际应用中,可根据属性的具体取值范围选择合适的日期时间型数据类型

1.4 字符型

字符型数据类型包括 char,varchar,nchar,nvchar,text 与 ntext,用于存储字母、数字或文字符号等;
20220123
char 为例,用格式 char(n)n 表示字符最大长度,取值范围为 1 ~ 4000,系统默认为1,存储时占用 n 个字节;
根据系统需求的不同,也能将属性 TNo 设置为非固定长度的数据类型,如 varchar;
用格式为 varchar(n|max),n 表示字符最大长度,取值范围为 1 ~ 8000,系统默认为1,存储时占用实际字符数 +2 个字节,因为 SQL Server 会附加 2 字节的结束符;
但数据超出 8000个字符时,可使用 max 表示字符长度,其含义为最大存储大小,即 2^31-1 个字节;
提示:Unicode 是国际标准组织制订的世界上所有文字和符号的字符编码方案,使用两个字节表示一个字符;当数据中含有占用两个字符的字符时,如汉字等符号,可设置使用 Unicode 字符的数据类型,防止各类字符混用时可能会造成的乱码错误等问题;
提示:text 和 ntext 用于存储字符数较多的数据,最高可存储 2 GB;但微软公司在 SQL Server 的未来版本中国删除这两种数据类型,可用数据类型 varchar(max) 或 naarchar(max) 代替;

1.5 其他类型

除上述 4 种 数据类型外,还有货币型、二进制数据型与特殊类型等;
20220123

  1. 货币型包括 money 和 smallmoney;可精确到万分之一即小数点后 4 位,通常能转换为精确数值型;
  2. 二进制数据型包括 binary、varbinary 与 imagebinary 与 char 的使用方式类似,varbinary 与 varchar 的使用方式类似;任何类型的数据都可用这类数据类型存储,不需要数据转换;
    提示: image 可存储图片,这时需要事先将突破转换成二进制流的形式或转换成存储图片路径;image 与 text 、ntext 类似,SQL Server 将在未来版本中删除此数据类型可用 varbinary(max) 代替;
  3. unqualifiedtifier 为全球唯一标识符,是 SQL Server 根据网络适配器和主机 CPU 时钟产生的唯一编码,由十六进制数字组成;此编码由函数 NEWID 获得,全世界的计算机由此函数产生的数字互不相同;

2. 创建数据表

数据表由行与列组成,创建数据表就是定义数据表的基本结构,其中包括列的名称,数据类型与约束等;

2.1 选择数据库

创建数据表时须明确指定创建的表存放在哪一个数据库中,指定的方法有如下两种:

  1. 使用 SQL 命令创建数据表时,可在命令首行加入打开数据库的 SQL 命令,语法格式如下:
USE <数据库名称>

数据库名称必须为 SQL Server 中国内存中的数据库实例;也可在使用完毕后切换或关闭指定数据库;

USE

即 USE 后没有数据库名称时,表示关闭当前数据库;

  1. 还可在打开 “ SQL Server.sql” 窗口前,先对 “对象资源管理器” 窗口列表中选中对应数据库,或在打开 “SQL Server.sql” 窗口后,在工具栏中可用数据库下拉列表中选择想要的操作的数据库选项;
    20220123

2.2 用 SQL 命令创建数据表

创建数据表的 SQL 命令为 CREATE TABLE,格式如下:

CREATE TABLE <表名>
(<列名> <数据类型> [列约束] [, ... N])
[,表约束]

说明:

  1. <表名> 最多可有128个字符,一般由英文字母、数字和下划线组成,不可与数据关键字相同,且不能与当前数据库中已存在的数据表重名;
  2. <列名> 是表中所包含的列的名字,<数据类型> 指明列的数据类型,一个表可包含多个列,即可包含多个列定义;
  3. 在表中所包含的同时,还能定义与表相关的完整性约束条件,这是 SQL Server 提供的数据完整性机制,用来定义列中允许的取值;列约束指对某一特定列进行完整性约束,包含列的定义中;表约束与列定义相互独立,用于对多个列同一约束,与列定义之间用 “,” 隔开,定义表约束时须指明要约束的列的名称;完整性约束的具体语法结构如下:
[CONSTRAINT <约束名>] <约束类型>

常用的约束类型有以下6种:

  1. NOT NULL 约束用于指定某列中的字段不能为空,当不设置此约束时可将其省略或设置 NULL 约束,表示某列中的字段能为空;
  2. UNIQUE 约束用于指明数据表在某列或多个列的组合上的取值必须唯一;若对某列或多个列的组合设置了此约束,其值允许为空,但为保证为一些,最多只能出现一次为空的数据;一个数据表能有多个 UNIQUE 约束;
  3. PRIMARY KEY 约束用于定义数据表中的主码,起到唯一标识的作用,其值不可为空;档表的主码由多个列组成时,须在 [表约束]处定义,并注意将组成主码的列名用 "()"括起来,列名之间要用 “,” 隔开,语法格式如下:
[CONSTRAINT <约束名>] PRIMARY KEY (<列名1> [, <列名2>, ...])
  1. FOREIGN KEY 约束用于定义数据表的外码;包含外码的数据表称为从表,包含此外码对应主码的表称为主表,系统保证从表中外码的值取自主表的某一个主码值;与定义主码相同,当外码由多个列组成时,须在 [表约束] 处定义;语法格式如下:
 [CONSTRAINT <约束名>]
 FORIGN KEY REFERENCES <主表名> ( <列名1> [, <列名2>, ...])
  1. CHECK 约束用于限制字段的取值范围;一个数据表中能定义多个 CHECK 约束,语法格式如下:
[constraint 约束名] CHECK (<条件>)
  1. DEFAULT 约束用于设置字段的默认值;一个数据表中能定义多个 DEFAULT 约束;
    提示:NOT NULLDEFAULT 不能在 [表约束] 处定义外,其他约束均可在 [列约束][表约束] 处定义;
    例子:在 test 数据库中创建数据表 S(学生)、C(课程)与 SC(选课),数据表的数据结构如下图:
    20220123
    创建 S、C、SC 的 SQL 语句如下所示:
create table S  /*按要求创建数据表 S*/
(SNo varchar(6) primary key,
SN nvarchar(10) not null,
Sex nchar(1) default '男' not null,
Dept nvarchar(10),
Age int)
create table C
(CNo varchar(10) primary key,
CN nvarchar(20) not null,
Credit int not null)
create table SC
(SNo varchar(6) foreign key references S(SNo),
CNo varchar(10) foreign key references C(CNo),
Grade numeric(4,1),
check (Grade >=0 and Grade <=100),
primary key (SNo,CNo))

20220123
刷新后即可看到新创建的数据表;
注意: “/* */” 中的内容是注释,SQL 在执行时不会雨欣其中的内容;

2.3 用 SSMS 创建数据表

例子:在数据库 test 中创建数据表 T(学生)与 TC(选课),数据表的数据结构如下图:
20220123

  1. 右击 “test” 列表中的 “表”,“新建表”,打开 “dbo.Table_1” 窗口;
    20220123

  2. 在 “dbo.Table_1” 窗口数据数据表 T 的属性列信息,输入属性 TNo 的信息,右击列前的实心三角按钮,在展开的列表中选择 “设置主键”,将其设为主码;

  3. 20220122

  4. 属性 Sex 的默认值可在下方窗口设置;20220123

  5. 全部输入完成后,单击工具栏的“保存”按钮,并输入数据表名称;
    20220123

  6. 数据表 TC 跟上面步骤类似,同时选中属性 TNo 和 CNo(选中其中一列,安装 Ctrl 键同时选中另外一列或Ctrl+A 全选),右击列前三角按钮,选择“设置主键”将它们设置为主码;

  7. 20220123

  8. 右击某一列前的三角按钮,选择“关系”,设置属性 TNo的关系;20220123

  9. 右击“添加”,在“常规”列表中单击“表和规范列”行末尾的三点按钮;20220123

  10. “关系名”输入外码约束的名称,如“T_Fore”;“主键表” 选择 “T” 选项,选择属性“TNo”选项,在右侧下拉列表中选择属性“TNo”选项,确定,将属性 TNo 设置外外码;
    20220123

  11. 将数据表报存,命名为 TC

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值