sqlserver教程第5章_第1页
sqlserver教程第5章_第2页
sqlserver教程第5章_第3页
sqlserver教程第5章_第4页
sqlserver教程第5章_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、cocktail学学 习习 目目 标标 1、了解、了解sql server 2005中的常用数据类型。中的常用数据类型。2、掌握表的创建,表定义的修改方法。、掌握表的创建,表定义的修改方法。3、掌握表数据的插入、删除和修改。、掌握表数据的插入、删除和修改。4、掌握各类数据完整性约束的实现方法。、掌握各类数据完整性约束的实现方法。5、学会使用、学会使用sql server 2005向导工具导入导出数据向导工具导入导出数据。6、解决任务引入中提出的问题,通过实训项目巩固知、解决任务引入中提出的问题,通过实训项目巩固知识。识。 表的创建和管理都可以使用表的创建和管理都可以使用management s

2、tudio和和transact-sql语句两种方法实现语句两种方法实现知知 识识 框框 架架第第5章章 表表表的概念表的概念数据类型数据类型创建和管创建和管理表理表操作表数操作表数据据数据插入数据插入数据删除数据删除数据修改数据修改导入导出导入导出操作表数操作表数据据主键约束主键约束唯一性约束唯一性约束检查约束检查约束默认约束默认约束外键约束外键约束任务引入 在上一章中我们学会了建立数据库,那在上一章中我们学会了建立数据库,那么数据库相当于一个容器,我们要向中间填么数据库相当于一个容器,我们要向中间填塞数据,这些数据以什么样的形式存在呢,塞数据,这些数据以什么样的形式存在呢,答案是答案是“表表

3、”,那么怎样向表中填塞数据呢?,那么怎样向表中填塞数据呢?表保存的数据之间有什么关系吗?有关系的表保存的数据之间有什么关系吗?有关系的话,这些关系如何在数据库中实现才不至于话,这些关系如何在数据库中实现才不至于产生乱七八糟的数据或者一些无用的数据?产生乱七八糟的数据或者一些无用的数据?5.1 表表 5.1.1 表的基本概念表的基本概念 表是数据库基本的逻辑存储单位,在关系表是数据库基本的逻辑存储单位,在关系数据库中都表现为二维表,由行和列组成,数据库中都表现为二维表,由行和列组成,如下表所示。如下表所示。 在数据库中实际建表之前在数据库中实际建表之前 ,要要充分考虑到以充分考虑到以下几点下几点

4、 :(1)数据库中应该有哪些基本表)数据库中应该有哪些基本表 (2)表中有哪些列,列的名字,每列的数据类)表中有哪些列,列的名字,每列的数据类型和长度,该列能否为空等型和长度,该列能否为空等 .(3)表中哪些列)表中哪些列 需要约束等需要约束等(4)表中的哪些列的数据有效范围需要限定)表中的哪些列的数据有效范围需要限定 5.1.2 数据类型数据类型 sql server 2005提供了一系列系统定提供了一系列系统定义的数据类型,它是数据库对象的一个属义的数据类型,它是数据库对象的一个属性,选择正确的数据类型,是筛选进入表性,选择正确的数据类型,是筛选进入表中的数据的第一层约束。中的数据的第一层

5、约束。数据类型主要有下面几部分构成。数据类型主要有下面几部分构成。1、数据类别,例如字符类型,数据类型或、数据类别,例如字符类型,数据类型或二进制类型二进制类型2、数据值的宽度和长度大小,如允许输入、数据值的宽度和长度大小,如允许输入的字符最大值为的字符最大值为20个字符个字符3、数值的精度,比如商品价格一般小数部、数值的精度,比如商品价格一般小数部分是分是2或或3位,整数部分几位由具体情况而位,整数部分几位由具体情况而定。定。 5.1 表表 sql server 2005的常用数据类型的常用数据类型 见表见表1 留意下边的留意下边的【注意注意】! 1.decimal和和numeric带固定精

6、度和小数位带固定精度和小数位数的数值数据类型。数的数值数据类型。 2. 近似数字数据类型用于表示浮点数值数近似数字数据类型用于表示浮点数值数据的大致数值数据类型。据的大致数值数据类型。 3.使用数值日期格式时,可在字符串中使使用数值日期格式时,可在字符串中使用斜杠用斜杠 (/)、连字符、连字符 (-) 或句点或句点 (.) 作为分隔符作为分隔符指定月、日和年。指定月、日和年。 4. 如果列数据项的大小一致,则使用如果列数据项的大小一致,则使用 binary。 5.1.3 创建表创建表 学生成绩管理系统是针对学生选课学生成绩管理系统是针对学生选课和成绩管理设计的,依据第二章的关系和成绩管理设计的

7、,依据第二章的关系模型我们可以得到该数据库至少包含学模型我们可以得到该数据库至少包含学生表生表student、学校的课程表、学校的课程表course、成绩登记表成绩登记表score和班级信息表和班级信息表class。 创建表的创建表的方法主要有两种方法主要有两种,使用,使用management studio创建和使用创建和使用transact-sql语句创建,下面分别来语句创建,下面分别来介绍这两种方法介绍这两种方法表表 5-1 学生表学生表student字段字段类型类型长度长度是否能为是否能为空空约束约束学号学号stunonvarchar10否否主键主键姓名姓名stunamenvarchar

8、50否否惟一惟一性别性别sexchar2否否值在值在“男男”,“女女”中选中选班级名班级名称称clanamenvarchar20是是外键,对应班级表外键,对应班级表中列中列籍贯籍贯citynvarchar20是是备注备注notesnvarchar200是是所有列都添加好后结果如图所有列都添加好后结果如图5-3 2使用使用t-sql语句创建表语句创建表创建表的基本语法格式如下:创建表的基本语法格式如下:create table table_name ( column name col_propertiescolumn name col_properties ,)说明:说明:table_name:

9、定义表名:定义表名column name:列名:列名col_properties 列属性,包括列的数据类列属性,包括列的数据类型,是否为空,约束等等型,是否为空,约束等等【例例5.3】用用t-sql语句创建班级语句创建班级表表class。字段字段类型类型长度长度是否能是否能为空为空约束约束班级编号班级编号clano smallint identity否否从从“001”开始自开始自动生成动生成班级名班级名clanamenvarchar20否否主键主键所在系部所在系部departmentnvarchar20否否班级人数班级人数numbersmallint大于或等于大于或等于0编辑编辑sql语句完成

10、建表;语句完成建表; use cjglgo -创建班级表创建班级表class-create table class( clano smallint identity(001,1) not null, -班级编号从班级编号从“001”开始自动生成开始自动生成 claname nvarchar (20) not null,department nvarchar (20) null,number smallint null )identity标识列标识列【注意注意】identity属性的一般语法格式如下属性的一般语法格式如下identity (seed , increment) 参数参数seed 装

11、载到表中的第一个行使用的值。装载到表中的第一个行使用的值。increment 与前一个加载的行的标识值相加的与前一个加载的行的标识值相加的增量值。增量值。必须同时指定种子和增量,或者二者都不指定。必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值如果二者都未指定,则取默认值 (1,1)。【思考练习思考练习】以下给出选课表以下给出选课表score的逻辑模型的逻辑模型如下表如下表5-4所示。读者试着自己给出相应的所示。读者试着自己给出相应的t-sql脚本语句。脚本语句。字段字段类型类型长度长度是否能为是否能为空空约束约束学号学号stunonvarchar10否否外键外键主键主键

12、课程号课程号counonvarchar10否否外键外键分数分数grade smallint取值大于取值大于0管理表管理表alter table table -修改的表名称修改的表名称 alter column column_name -修改已有的列名修改已有的列名 new_data_type ( precision , scale ) -新新的数据类型的数据类型 | add -添加新列添加新列 -添加列的定添加列的定义义 | drop -删除列删除列 column column ,.n -要删除列的列要删除列的列名名 5.2表数据操作表数据操作1.向表中插入数据向表中插入数据 a. 使用使用i

13、nsert into语句插入数据语句插入数据 insert into ( column_list ) /表名(列表名(列1,列,列2,列,列3,) values ( default | null | expression ,.n ) b.使用使用insertselect语句输入数据语句输入数据 【例5.9】 c.使用使用select into子句插入数据到临时表子句插入数据到临时表 select column 1,column 2, into new table from table name where 2.修改表中数据修改数据的修改数据的t-sql语句的一般语法格式如下:语句的一般语法格式

14、如下: update table_name set column_name = expression | default | null -修改原来的值为新值、默修改原来的值为新值、默认值或空值认值或空值 from ,.n where -选择选择部分满足条件的记录部分满足条件的记录 【例例5.11】 【例5.12】 3.删除表中数据删除表中数据delete语句的简单语法格式如下: delete table where 【例5.13】 使用使用truncate语句删除数据语句删除数据 truncate table name【比较】truncate与delete 语句比较5.3 表数据完整性的实现表

15、数据完整性的实现 约束主要有五种类型,包括主键约束、约束主要有五种类型,包括主键约束、唯一性约束、检查约束、默认约束和外键约唯一性约束、检查约束、默认约束和外键约束(参照性约束)。束(参照性约束)。 5.3.2 主键约束主键约束(primary key) 【例例5.17】 alter table score add constraint pk_score primary key (stuno, couno) 5.3 表数据完整性的实现表数据完整性的实现create table score ( stuno nvarchar(10) not null,couno nvarchar(10) not

16、null,grade smallint null, constraint pk_score primary key (stuno, couno)【思考思考】如果在定义列后直接写上如果在定义列后直接写上“primary key”(如(如5.3.1节综合实例中)和上面两种有何节综合实例中)和上面两种有何区别。区别。5.3.3 唯一性约束(unique)【例例5.18】 alter table course add constraint un_couname unique(couname);删除该约束的语句删除该约束的语句 alter table course drop constraint un_

17、couname ; 【思考思考】添加了唯一性约束的列,该列允许添加了唯一性约束的列,该列允许取空值吗?如果可以,那么可以取多少个空值取空值吗?如果可以,那么可以取多少个空值呢?呢?5.3.4 检查约束检查约束(check)【例5.20】alter table student add constraint ck_sex check (sex =男男or sex=女女) ;【注意注意】check关键字后的表达式一定要跟上小括号关键字后的表达式一定要跟上小括号,否则要出错。否则要出错。 alter table course add constraint ck_credit check (credit

18、=0 and credit=10 ) 自学自学【例例5.21】 5.3.5 默认约束默认约束(default)default(expression | null ) for column_name【例例5.23】alter table student add constraint de_sex default(男男) for sex【例例5.24】alter table score add constraint de_grade default(null) for grade5.3.6外键约束(外键约束(foreign key)在弹出的窗口中设置主键和外键关系,重在弹出的窗口中设置主键和外键关系,重点是设置主键表和外键表点是设置主键表和外键表 5.3.6外键约束(外键约束(foreign key)创建外键的一般语法格式如下:创建外键的一般语法格式如下: alter table table1_name add constraint constraint_name foreign key (col 1_name) references table2_name (c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论