登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』SQL Server2014数据库技术实用教程

書城自編碼: 3021433
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 胡伏湘 肖玉朝
國際書號(ISBN): 9787302467120
出版社: 清华大学出版社
出版日期: 2017-07-01
版次: 1 印次: 1
頁數/字數: 248/408000
書度/開本: 32开 釘裝: 平装

售價:HK$ 56.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
宽容是件奢侈品(人生360度·一分钟经典故事)
《 宽容是件奢侈品(人生360度·一分钟经典故事) 》

售價:HK$ 44.6
甲骨拼合六集
《 甲骨拼合六集 》

售價:HK$ 333.8
视觉美食家:商业摄影实战与创意解析
《 视觉美食家:商业摄影实战与创意解析 》

售價:HK$ 132.2
中国经济发展的新阶段:机会与选择
《 中国经济发展的新阶段:机会与选择 》

售價:HK$ 99.7
DK月季玫瑰百科
《 DK月季玫瑰百科 》

售價:HK$ 210.6
为你想要的生活
《 为你想要的生活 》

售價:HK$ 66.1
关键改变:如何实现自我蜕变
《 关键改变:如何实现自我蜕变 》

售價:HK$ 77.3
超加工人群:为什么有些食物让人一吃就停不下来
《 超加工人群:为什么有些食物让人一吃就停不下来 》

售價:HK$ 99.7

 

編輯推薦:
按照设计数据库、建立数据库、管理数据库、应用数据库的逻辑顺序,以图书借阅管理系统和成绩管理系统为主线,系统介绍了运用SQL Server 2014进行数据库管理的各种操作以及软件开发所需的各种知识和技能,主要内容包括:数据库技术导论,数据库操作,表操作,数据查询,视图操作,索引操作,存储过程,触发器,T-SQL编程,数据库备份与恢复,数据库安全操作,VS2010 SQL Server2014数据库应用软件开发。
內容簡介:
QL Server 2014是微软公司推出的*数据库管理系统,安装容易,功能强大,操作方便,界面友好,比以往的任何一个版本都要好用。本书编写团队在多年教学与软件项目开发的基础上,根据程序员和数据库管理员的岗位要求以及高职院校特点组织教材内容,按照设计数据库、建立数据库、管理数据库、应用数据库的逻辑顺序,以图书借阅管理系统和成绩管理系统为教学主线,系统介绍了运用SQL Server 2014进行数据库管理的各种操作以及软件开发所需的各种知识和技能,主要内容包括: 数据库技术导论,数据库操作,表操作,数据查询,视图操作,索引操作,存储过程,触发器,TSQL编程,数据库备份与恢复,数据库安全操作,VS 2010 SQL Server 2014数据库应用软件开发。
本书可以作为高职和应用型本科计算机类、软件类、电子商务类各专业的教学用书,也可以作为各类培训、DBA认证、数据库管理爱好者的辅助教材和软件开发人员的参考资料。
本书提供配套的电子教案和全部脚本,登录清华大学出版社网站www.tup.tsinghua.edu.cn可以免费下载。
目錄
目录



第1章数据库技术导论

1.1数据库职业岗位技能需求分析

1.2案例数据库说明

1.2.1图书馆管理系统教学案例

1.2.2学生成绩管理系统scoresys数据库说明

1.3技能训练1: 了解数据库工作岗位

1.3.1训练目的

1.3.2训练时间

1.3.3训练内容

1.3.4思考题

1.4数据库技术概述

1.4.1数据库技术的发展历程

1.4.2数据库系统的基本概念

1.5三种主要的数据模型

1.5.1网状模型

1.5.2层次模型

1.5.3关系模型

1.5.4非结构化数据模型

1.6SQL Server 2014数据库基础

1.6.1SQL Server 2014的主要功能

1.6.2SQL Server 2014的6个版本

1.7SQL Server 2014的简单使用

1.7.1启动SQL Server Management Studio

1.7.2SQL Server Management Studio基本组成

1.7.3SQL Server Management Studio中执行查询

1.8技能训练2: 用管理器窗口建立数据库和表

1.8.1训练目的

1.8.2训练时间

1.8.3训练内容

1.8.4思考题

习题1

第2章建立数据库

2.1SQL Server 2014数据库的组成

2.1.1SQL Server 2014的体系结构

2.1.2SQL Server 2014的数据库组成

2.1.3SQL Server服务器身份验证模式

2.1.4文件与文件组

2.2创建数据库

2.2.1用管理器菜单方式建立数据库

2.2.2用SQL命令方式建立数据库

2.3修改数据库

2.3.1用管理器菜单方式修改数据库

2.3.2用SQL命令修改数据库

2.4管理数据库

2.4.1删除数据库

2.4.2查看数据库

2.4.3分离数据库

2.4.4附加数据库

2.4.5为数据库创建脚本

2.5技能训练3: 建立数据库

2.5.1训练目的

2.5.2训练时间

2.5.3训练内容

2.5.4思考题

习题2

第3章建立表

3.1SQL Server 2014的主要数据类型

3.1.1SQL Server 2014的数据类型

3.1.2字符型

3.1.3整数型

3.1.4精确实数型

3.1.5近似实数型

3.1.6货币型

3.1.7日期时间型

3.1.8文本型

3.1.9二进制型

3.1.10特殊数据类型

3.2创建表结构

3.2.1用管理器菜单方式建立数据库

3.2.2标识列

3.2.3用CREATE TABLE命令建立数据库

3.2.4表的完整性约束

3.3技能训练4: 建立表结构

3.3.1训练目的

3.3.2训练时间

3.3.3训练内容

3.3.4思考题

3.4修改数据库结构

3.4.1用管理器窗口修改

3.4.2用SQL命令修改

3.5记录的输入与修改

3.5.1用管理器窗口输入记录

3.5.2用SQL命令输入记录

3.5.3用SQL命令修改记录

3.5.4删除记录

3.5.5删除表

3.6技能训练5: 记录处理

3.6.1训练目的

3.6.2训练时间

3.6.3训练内容

3.6.4思考题

习题3

第4章数据查询

4.1SELECT查询语句

4.1.1SQL语言

4.1.2SELECT语句

4.1.3运算符

4.2单表查询

4.2.1列名的使用

4.2.2用WHERE子句查询特定的记录

4.2.3用ORDER BY子句对查询结果排序

4.2.4聚合函数

4.2.5用GROUP BY子句对查询结果分组

4.3技能训练6: 单表查询

4.3.1训练目的

4.3.2训练时间

4.3.3训练内容

4.3.4思考题

4.4多表连接查询

4.4.1多表连接方法

4.4.2多表连接查询

4.5技能训练7: 多表连接查询

4.5.1训练目的

4.5.2训练时间

4.5.3训练内容

4.5.4思考题

4.6子查询

4.6.1用子查询实现数据查询

4.6.2利用SQL命令建立新的表

4.7技能训练8: 子查询

4.7.1训练目的

4.7.2训练时间

4.7.3训练内容

4.7.4思考题

习题4

第5章建立视图

5.1视图概述

5.1.1视图的功能

5.1.2视图的分类

5.2建立视图

5.2.1用SSMS管理器窗口建立视图

5.2.2用命令建立视图

5.2.3查看视图的代码

5.2.4删除视图

5.3视图的应用

5.3.1通过视图添加表数据

5.3.2更新记录中的数据

5.3.3删除记录中的数据

5.4技能训练9: 视图的建立与管理

5.4.1训练目的

5.4.2训练时间

5.4.3训练内容

5.4.4思考题

习题5

第6章建立索引

6.1索引概述

6.1.1索引的功能

6.1.2索引的分类

6.2索引的建立

6.2.1用SSMS管理器窗口建立索引

6.2.2用命令建立索引

6.3索引的管理

6.3.1用命令管理索引

6.3.2索引的维护

6.3.3重建索引

6.3.4更新统计信息

6.4技能训练10: 索引的建立与管理

6.4.1训练目的

6.4.2训练时间

6.4.3训练内容

6.4.4思考题

习题6

第7章存储过程

7.1存储过程的功能与分类

7.1.1存储过程的功能

7.1.2存储过程的分类

7.2存储过程的建立

7.2.1建立存储过程

7.2.2建立无参存储过程

7.2.3存储过程的调用

7.2.4建立带输入参数的存储过程

7.2.5建立带输入和输出参数的存储过程

7.3存储过程的管理

7.3.1用SSMS管理器窗口执行存储过程

7.3.2修改存储过程

7.3.3存储过程脚本的查看

7.3.4存储过程的综合应用

7.4技能训练11: 存储过程的建立与调用

7.4.1训练目的

7.4.2训练时间

7.4.3训练内容

7.4.4思考题

习题7

第8章触发器

8.1触发器的功能与分类

8.1.1触发器的功能

8.1.2触发器的分类

8.1.3与触发器相关的两个表

8.2触发器的建立

8.2.1建立触发器

8.2.2触发器应用

8.2.3触发器的综合应用

8.2.4INSTEAD OF触发器

8.3触发器的管理

8.3.1修改触发器

8.3.2删除触发器

8.3.3查看触发器

8.3.4触发器的禁用和启用

8.4技能训练12: 触发器的建立与使用

8.4.1训练目的

8.4.2训练时间

8.4.3训练内容

8.4.4思考题

习题8

第9章TSQL编程

9.1TSQL语法基础

9.1.1标识符

9.1.2变量

9.1.3数学运算符

9.1.4字符串连接运算符

9.2系统函数

9.2.1CASE函数

9.2.2NULL值处理函数

9.2.3系统信息函数

9.2.4DATENAME日期函数

9.2.5字符串处理函数

9.2.6数值处理函数

9.3流程控制语句

9.3.1顺序结构

9.3.2选择结构

9.3.3循环结构

9.3.4WAITFOR语句

9.4技能训练13: 数据库编程

9.4.1训练目的

9.4.2训练时间

9.4.3训练内容

9.4.4思考题

习题9

第10章数据库备份与还原

10.1数据库备份与恢复概述

10.1.1备份和恢复需求分析

10.1.2备份概述

10.1.3备份的类型

10.1.4还原的类型

10.2数据库备份

10.2.1用SSMS管理器备份

10.2.2用命令备份数据库

10.2.3用命令实现事务日志备份

10.2.4删除备份设备

10.3数据库还原

10.3.1还原数据库的任务

10.3.2用SSMS还原数据库

10.3.3用命令还原数据库

10.3.4数据库的导出

10.4技能训练14: 数据库备份与还原

10.4.1训练目的

10.4.2训练时间

10.4.3训练内容

10.4.4思考题

习题10

第11章数据库安全管理

11.1数据库安全概述

11.1.1SQL Server数据库安全等级

11.1.2登录模式

11.2管理登录名

11.2.1用SSMS创建登录名

11.2.2用命令创建登录名

11.2.3维护登录名

11.3管理用户

11.3.1使用SSMS管理用户

11.3.2用命令建立用户

11.3.3维护用户

11.4管理角色

11.4.1固定数据库角色

11.4.2用户自定义数据库角色

11.4.3应用程序角色

11.5管理权限

11.5.1权限的分类

11.5.2对象权限

11.5.3语句权限

11.6技能训练15: 数据库安全管理

11.6.1训练目的

11.6.2训练时间

11.6.3训练内容

11.6.4思考题

习题11

第12章SQL Server数据库程序开发

12.1数据库应用程序结构

12.1.1CS客户端服务器端结构

12.1.2BS浏览器端服务器端结构

12.1.3三层或N层结构

12.1.4数据库访问技术

12.2ADO.NET数据库访问技术

12.2.1ADO.NET技术

12.2.2ADO.NET数据库操作对象

12.3使用C#.NET开发SQL Server数据库程序

12.3.1项目任务描述

12.3.2数据库设计

12.3.3前台页面设计

12.4使用ASP.NET开发SQL Server数据库程序

12.4.1项目任务描述

12.4.2数据库设计

12.4.3在web.config文件中配置数据连接

12.4.4图书分类信息添加、修改、删除与查询功能的实现

12.4.5用户登录与图书管理模块功能的实现

12.5技能训练16: 用VS SQL Server开发图书管理系统

12.5.1训练目的

12.5.2训练时间

12.5.3训练内容

12.5.4思考题

习题12

附录各章参考答案

参考文献
內容試閱
前言
如何由入门者快速达到职业岗位要求,是每一个老师也是每一个学生梦寐以求的事情,以精辟的语言教育人、以精巧的例题引导人、以精彩的项目启发人,正是作者长期追求的目标。本书编写团队融长期的教学经验与多年的软件开发经验于一体,以行业最新数据库管理系统SQL Server 2014为例,根据数据库管理员DBA的岗位要求以及高职院校的特点,按照设计数据库、建立数据库、管理数据库、应用数据库的顺序,以图书借阅管理系统和成绩管理系统为教学主线,系统介绍了数据库应用技术及数据库软件开发的知识和技能,是理论、实践、应用开发三者完美结合的一体化教材。全书从逻辑上可以分为4个部分: 数据库基础理论、SQL Server 2014数据库应用、技能训练、数据库应用软件开发,其中技能训练穿插在每一个章节中,可以在每一次理论讲授后,马上进行技能训练。内容包括12章: 第1章是数据库技术导论,第2章是建立数据库,第3章是建立表,第4章是数据查询,第5章是建立视图,第6章是建立索引,第7章是存储过程,第8章是触发器,第9章是TSQL编程,第10章是数据库备份与恢复,第11章是数据库安全管理,第12章是VS 2010 SQL Server 2014数据库应用软件开发,包括教学管理系统和图书信息管理系统两个项目的分析与实现。本教材的主要特点是:1 面向数据库管理员DBA和程序员职业岗位,以图书馆管理系统项目为教学主线,以成绩管理系统项目为技能训练主线,贯穿每一章节,并在最后一章实现了这两个项目,好教好学。2 本书共12章教学内容,15个技能训练,34课时操作内容,实现了理论与实践的课时比例1∶1,从理论到实践融会贯通。3 将知识讲解、技术应用、技能训练、项目开发集成于一体,是数据库管理员和程序员工作任务的缩影。4 根据内容多少及难易程度的不同,每一章均安排了一两次技能训练,最后是教学项目与实践项目的开发过程,从新手到高手不再是难事。5 语言通俗易懂,讲解深入浅出,让读者迅速上手,逐步建立数据库管理的思想,完美实现由学习者到职业人的本质提升。本教材由长沙商贸旅游职业技术学院的胡伏湘教授和肖玉朝副教授任主编,最后由胡伏湘统稿。在编写过程中,得到了湖南工程职业技术学院的徐刚强教授、湖南科技职业学院的成奋华教授、湖南外贸职业学院的高述涛教授、湖南安全职业技术学院的夏旭副教授、湖南信息职业技术学院的余国清副教授、清华大学出版社卢先和副社长和闫红梅老师的大力支持,并参考了大量的文献资料,书中未能详尽罗列,在此表示真心感谢!本教材所有的例题和命令及程序均在SQL Server 2014中文版环境中运行通过,所有案例的脚本同样适用于SQL Server 2008版和SQL Server 2016版。本书提供配套教学资源,包括电子教案、命令脚本及相应素材。由于编者水平有限,书中不足之处在所难免,恳求读者和各位老师指正,作者不胜感激。编者hfx_888@163.com2017年3月于长沙


第3章建立表
 SQL Server 2014的主要数据类型; 运用SSMS创建和管理表包括结构和记录; 数据完整性及实现方法; 表的修改与维护。
掌握SQL Server 2014常用的数据类型及用法,能够利用SSMS管理器窗口方式和SQL命令方式创建表、修改表、删除表,能够对记录进行维护操作,掌握数据完整性的意义和用命令实现数据完整性的方法。
3.1SQL Server 2014的主要数据类型
数据表简称表,是数据库的最主要组成成分,数据库建好以后,里面没有任何内容,是个空架子。通过在数据库中添加表,数据库中才会有内容。表由若干栏目即列或者字段和若干行组成,每一行称为一条记录。每个栏目均需要设置其名称即列名、字段名、数据类型、长度、约束,列名必须符合标识符的要求,数据类型由系统规定,长度是一个整数,表示这个列最大可以输入多少个字符,而约束是对这个列的值设置的限制条件,如性别只能为男或者女。所有列全部加起来组成表结构,即表头,因此表就是由结构和记录两部分组成的。建立表时,必须先建立结构,然后才能添加记录,没有记录的表称为空表。3.1.1SQL Server 2014的数据类型数据类型表达的功能是当前列的值是什么类型的,比如年龄必须是正整数、成绩肯定是数值、姓名一定是字符型、生日是日期型数据等,因此建立表时,决定各个列的数据类型的唯一依据是这个列的所有可能取值。SQL Server 2014定义了35种标准数据类型,用户也可以自己定义数据类型,但用得很少,一般是使用标准数据类型。部分数据类型的长度是固定的如int、date,不允许改变,有些数据类型的长度是可以设置的如char。虽然系统支持的数据类型很多,但一些数据类型极少使用,常用的数据类型只有十多种。3.1.2字符型字符数据类型包括char、varchar、nchar、nvarchar型,其默认长度都是50,这些数据类型用于存储字符数据。字符型数据指由字母、数字和其他特殊符号如标点、$,#,@、汉字构成的字符串,赋值时要用单引号 引起来,如表31所示。
表31字符类型
数 据 类 型格式描述存 储 空 间
charcharnn为1~8000字符之间n字节varcharvarcharnn为1~8000字符之间实际字符数ncharncharnn为1~4000个Unicode字符2*n字节nvarcharnnvarcharn最多为230-1个Unicode字符2*字符数+2字节额外开销
varchar和char类型的主要区别是数据填充后,实际占用的长度不同,如果有个列名Name的数据类型为varchar20,其值为Brian,5个字符,物理上只存储5个字节,但如果数据类型为char20,将使用全部20个字节,因为SQL Server会自动补充15个空格来填满20个字符。一般原则是: 值小于或等于5个字节的列采用char比较合理,如果超过10个字符,使用varchar更有利于节省空间。nvarchar和nchar的工作方式与对应的varchar数据类型和char数据类型相同,但这两种数据类型都可以处理国际性的Unicode通用字符,它们需要一些额外开销,以Unicode形式存储的数据为一个字符占两个字节。如果要将值Brian存储到nvarchar列,要占用10个字节; 而如果将它存储为nchar20,就需要使用40个字节。3.1.3整数型整数型简称整型,可用于存储精确的整数,包括bigint大整型、int普通整型、smallint小整型和tinyint微型整型、bit位5种类型,它们的区别在于表示数据的范围不同,如表32所示。
表32整数型
数据类型描述存 储 空 间
bit0、1或null1字节8位tinyint0~255之间的整数1字节smallint-32768~32767之间的整数2字节int-231~231-1之间的整数4字节bigint-263~263-1之间的整数8字节
在建表时,整型数据通常用int表示。3.1.4精确实数型表示能够精确存储的实数值,由总长度和小数位数构成,总位数不得小于小数位数。包括以下两种。decimaln,m: 十进制型,格式是decimaln,m,n表示总长度,m表示小数位数。如: decimal10,5,表示总长度是10位,其中小数位数是5位,整数位数也是5位,小数点不占位数。numeric: 数值型,其用法与decimal相同,如numeric10表示长度是10位,不允许有小数,实际上就是整数,而numeric10,5表示最多5位小数,5位整数。3.1.5近似实数型近似实数型数据可以存储的精度不是很高,但数据的取值范围却又非常大的数据,其长度是固定的,用户不可以改变,可以用普通方法和科学记数法表示。包括以下两种。real: 实数,可以表示的数值范围是-3.40E 38~-1.18E-38,0,1.18E-38~3.40E 38。float: 浮点数,可以表示的数值范围是-1.79E 308~-2.23E-308,0,2.23E-308~1.79E 308,在计算机中,1234.3456用科学记数法表示为: 1.234456e3,即1.2343456*103,也可以写成12.343456e2,5.67E-5表示5.6710-5,e可以用大写,也可以用小写。3.1.6货币型货币型实际上就是近似实数型的特殊情况,允许在数值前面加上货币符号$,表示金额,通常用于财务部门,其长度是固定的。如$13.4,$9.5E8,货币型也包括两种,区别是能表示的数字范围不同。money: 长度为8字节,如$326779.1234,精确到万分之一。smallmoney: 长度为4字节,如$23.333,3.51e8,$3.51e8。3.1.7日期时间型在SQL Server中日期时间型表示日期或者时间,其值要以字符串的形式表示,即要用单引号括起来,包括4种类型。1 date: 日期型。范围是1753.1.1~9999.12.31。日期分隔符可以是 或,格式可以是MMDDYYYY,也可以是MMDDYYYY,MM表示两位月,DD表示两位日,YYYY表示四位年,日期还可以表示为YYYYMMDD格式欧洲格式。日期可以只精确到月,系统自动填写为当月的1日。2 time: 时间型。格式为hh:mm:ss AMPM,AM表示上午,PM表示下午,默认是上午,既可以采用12小时制,也可以采用24小时制,通常用24小时制表示更加方便,不容易出错。时间可以只精确到分钟,系统自动补充到0秒。3 datetime: 日期和时间的结合体。范围为1753.1.1的0时~9999.12.31的23:59:59。格式是MMDDYYYY hh:mm:ss AMPM,时间分隔符是冒号:,日期与时间之间用空格分开。可以只要日期,也可以只要时间,也可以是日期和时间组合使用。例: 20161015 11:20表示2016年10月15日上午11点20分。4 smalldatetime: 小日期时间型。能够表示的范围是: 1900.1.1~2079.6.6,其他要求同datetime。3.1.8文本型文本型数据类型主要是用于存储超大长度的文本内容,即用char、varchar、nchar、nvarchar四种类型还不足以表示的大数据,文本型数据类型的长度是固定的,用户不可以修改,包括以下两种类型。text: 字符型,用来存储大量的非统一编码型字符数据,最多可以有231-1或20亿个字符。nchar: 统一编码字符型,用来存储定长统一编码字符型数据。统一编码用双字节结构来存储每个字符,因此相比普通的字符类型数据,它占用的存储容量要大一倍,其最大容量为230-1字节。当然,也可以用文本型存储较少的字符内容,但处理起来不如字符型方便,占用了更多的空间。一般像简历、奖励情况、发言稿这样的字段可以考虑使用文本型。3.1.9二进制型二进制数据类型用于存储二进制数据,包括binary、varbinary、image三种类型。binary: 二进制数据类型,存储最长8000字节长的定长的二进制数据,用户可以设置长度。如果其长度设为n,则其存储的大小是n 4个字节。当表中各条记录这个列的内容接近相同的长度时,使用这种数据类型比较合理。varbinary: 可变长二进制数据类型,用来存储最长8000字节的二进制数据,用户可以设置长度。当各条记录此列的内容长短不一,变化较大时,使用这种数据类型有利于节省存储空间。image: 图像型,用来存储变长的二进制数据,最大可达231-1或大约20亿字节,类似于照片、头像、证书等这样的字段可以采用image类型,支持JPG、TIFF、PNG、GIF等格式。值得注意的是,SQL Server并不能直接读出二进制文件和图像型文件,也就是说,不能直接在表中输入二进制数据和图像型数据,也不可能显示出来,因此它们的内容通常为NULL空,需要由软件开发工具如Java、C#等语言进行赋值并显示内容。如某表包括5个列和数据类型是: 编号char10、姓名char8、工作简历text、照片image、代表作binary7000、学历证书varbinary1000,其记录情况如图31所示。
图31例表
3.1.10特殊数据类型timestamp: 时间戳类型,相当于一个单向递增的计数器,表示SQL Server活动的先后顺序,Timestamp数据与插入数据的日期和时间并没有关系。当所定义的列在更新或插入新行时,此列值自动更新并自动填写。如果表中列名为Timestamp,系统自动设置为Timestamp类型。uniqueidentifier: 唯一标识型类型,长度为16,是根据网卡地址和CPU时钟产生,通过函数newid获得,全球各地机器产生的此值都不同,但用户可以修改。当表的记录行要求唯一时,用uniqueidentifier类型最实用。例如,客户标识列用这种类型可以区别不同的客户。
3.2创建表结构
表是数据库中最基本的组成成分,一个完整的表包括表的结构和记录,表的结构由全部列、列的约束、列与列之间的相互约束三部分组成。创建表有两种方法: 一种是用SSMS管理器的菜单方式,另一种是用命令方式,其用途更广泛。3.2.1用管理器菜单方式建立数据库例31利用管理器窗口给libsys数据库添加读者信息表ReaderInfo,列的组成如表33所示,各列的含义参见表14,除主键约束和非空约束外,其他约束暂不设置。
表33ReaderInfo表的结构
序号列名数据类型长度是否可为空约束
1ReaderIDchar10不可not null主键2ReaderNamechar10不可not null
3ReaderSexchar2不可not null
4ReaderAgeint8可以null
5Departmentvarchar30不可not null
6ReaderTypechar10不可not null教师、学生、临时7StartDatedate默认不可not null默认系统日期8Mobilevarchar12可以null
9Emailvarchar40可以null必须包含@符号10Memoryvarchar50可以null
1 在SSMS管理器窗口中,逐步展开数据库libsys表,右击表,在弹出的快捷菜单中依次选择新建表,则打开新建表结构的对话框。2 按照表33,将各个列的列名、数据类型、允许Null值设置好,如图32所示。在输入各列的属性时,如果某个参数有错,按Esc键可以撤销,数据类型可以从下拉列表中选择,也可以直接输入类型名。
图32ReaderInfo表的列
图33列的快捷菜单
3 设置主键,选择列BookID,单击设置主键按钮即可,另一种方法是右击列BookID,在快捷菜单中执行设为主键完成。快捷菜单还提供了在当前列前面插入列和删除列的功能。如果当前列已经是主键,可以删除主键约束,如图33所示。4 保存表,当所有列均设置好以后,单击保存按钮,系统弹出选择名称对话框,如图34所示,默认表名为Table_1,改成实际表名ReaderInfo,确定。
图34输入表名对话框
说明: ①如果表中几个列都是主键,需要用Ctrl键配合,即按住Ctrl,依次选择各列,右击已选择的任意一列,在弹出的快捷菜单中执行设置主键。②如果发现表结构有错,可以进入修改状态,方法是: 右击表名,在弹出的快捷菜单中选择设计菜单,修改界面与设计界面一样,修改完毕需单击保存按钮生效。但是,保存修改时,系统可能会出现如图35所示的对话框,禁止用户修改。
图35禁止修改对话框
原因是系统设置了不允许修改,解决办法是: 依次执行菜单工具选项设计器命令,取消前面的选中状态。3.2.2标识列标识列用于表示记录的顺序,即流水号,其类型必须是整型,通常是int,在记录中这个列的值由系统自动填写,从1开始编号,即1,2,3,4,,不允许为空。标识列提供了两个参数: 标识增量,表示增长速度,默认为1; 标识种子,表示初值,默认为1。如图36所示,这些参数显示在列属性窗口中,可以设置。
图36标识列的参数的设置方法
一个表中,标识列可以没有,如果有,其值是系统自动管理的,用户不能修改,也不能删除,用户只能显示其值,而不能作其他操作。3.2.3用CREATE TABLE命令建立数据库建立表的SQL命令是CREATE TABLE,可以逐一将列名、数据类型、长度和列约束添加进来,还可以在命令的后面部分添加表约束,所谓表约束是指涉及两个以上的列。列的长度由数据类型决定,有些数据类型如char允许设置长度,有的数据类型不允许设置长度如int、date、real,有的数据类型允许设置长度,但系统会自动删除长度或改成默认长度如image。建立表的命令格式是:
CREATE TABLE 表名
列名 类型长度 {列约束}
[,n]
[表约束]
例32利用SQL命令给libsys数据库添加读者信息表ReaderInfo,要求同例31。
先将libsys设置为当前数据库,否则ReaderInfo表可能会存储到其他数据库中
USE libsys
GO
建立ReaderInfo表的结构
CREATE TABLE ReaderInfo
ReaderID char10 PRIMARY KEY,
ReaderName char10 NOT NULL,
ReaderSex char2 NOT NULL,
ReaderAge int NULL,
Department varchar30 NOT NULL,
ReaderType char10 NOT NULL,
StartDate datetime NOT NULL,
Mobile varchar12 NULL,
Email varchar40 NULL,
Memory varchar50 NULL
GO
说明: 主键约束是PRIMARY KEY,如果某列可以为空,非空约束NULL可以省略默认值,若不能为空,则NOT NULL不可缺少。int和datetime的长度是规定的,不能设置。系统规定了长度的数据类型有int系列、real、money、date、time、datetime、bit、text等。在表中可以加入标识列,比如列No是标识列,数据类型是int,初始值是10,增量是2,则这列的声明方法是:
No INT identity10,2,
3.2.4表的完整性约束建立表的时候,还需要设置表的完整性约束。所谓完整性约束,指的是按照其值的内在逻辑或完整性而确定的限制条件,比如年龄必须是正整数、Email中必须有@符号,性别只能是男或者女等。约束分两种,一种是列级约束,即约束条件只对某一列有效,另一种是表级约束,指涉及两个以上的列。1. 约束的类型设置约束可以用SSMS管理器窗口进行,更多的是用SQL命令实现,常用的约束有6种。1 主键约束PRIMARY KEY主键是指能够唯一代表一条记录的键,可能是一列,也可能是多列的组合。换句话说,一张表中各条记录主键的值不允许相同。对于同一个表,可能有多种方式表示不同的记录,称为候选键,但建表时,必须选择其中的一个候选键作为主键。也就是说,一个表有多个候选键,但只有一个主键。如果主键是某一列,设置主键的命令是: PRIMARY KEY。如果主键是某几列的组合,设置主键的命令是: PRIMARY KEY列名1,列名2,。2 非空约束NOT NULL非空约束指的是这个列的值是否可以不填写,系统默认可以不填写,即可以为空,用NULL表示,如果必须填写,称为不可为空,用NOT NULL。3 唯一性约束UNIQUE唯一性约束指某一列的值是否必须不同,用UNIQUE表示。唯一性约束的列实际上是表的一个候选键,但不是主键,用于限制某一列的值不能相同。使用唯一性约束的字段可以为空,一个表中可定义多个唯一性字段。4 默认值约束DEFAULT默认值约束表示输入记录时,当此列没有赋值时,系统会自动使用默认值。当然,用户可以输入实际值而不用默认值,也可以在默认值的基础上修改成实际内容。默认值的设置方法是:
DEFAULT默认值
小括号也可以省略,其中的默认值必须是常量、内部函数或者NULL,不能是变量。例如: 有个列StartDate表示参加工作的日期,默认值为系统日期,对应的系统函数getdate,则将StartDate的默认值设为系统日期的方法是: defaultgetdate。5 检查约束CHECK检查约束用于检查列的值是否符合要求,比如是否在指定的范围内,是否包括某一字符等。它的表示方法是: check表达式,表达式中会用到各种运算符。例如: 列age表示年龄,类型是int,要求其值是正整数,则对应的检查约束为: checkage0。6 外键约束FOREIGN KEY外键涉及同一个数据库中的两个表,假设分别是A表和B表,A表的主键是字段X,在B表中有一个字段Y,Y可以是主键也可以不是主键,如果Y的值完全来源于A表中的X字段,则X是B表的外键。外键反映了两个表之间的相互联系,是参数完整性的标志,保证了数据的唯一性。例如有两个表: 院系表院系号,院系名,负责人,院系人数、学生表学号,姓名,院系号,院系表的主键是院系号,学生表中的院系号来自于院系表中院系号,因此院系号是学生表的外键。当前字段要与其他表的某列建立外键关系,有三个条件,即与外键的类型要一致、宽度要相同、外键必须是另一张表的主键或唯一性约束字段。当然,最好是字段名也相同,更加容易理解。外键约束的表示是: FOREIGN KEY REFERENCES表名列名。REFERENCES的中文意思是引用、来源于。2. 用SQL命令创建约束为表创建约束有两种方法: 一种是声明当前列时,在数据类型后面直接加上约束内容,另一种方法是利用CONSTRAINT命令添加约束。第一种方法适合于比较简单的约束,第二种单独用一行命令完成,需要给出约束名,可以对约束进行修改、删除等管理操作,但书写要复杂一些。其格式是:
CONSTRAINT约束名约束内容
其中: 约束名是用户定义的一个标识符,一般是约束类型_表名_列名这样的格式。约束类型通常用简写,PK代表主键、UQ表示唯一性约束、CK代表检查约束、FK代表外键、DF表示默认值约束。例33建立一个工人表,包括编号、姓名、性别、出生日期、入厂日期、职称、备注。要求: 编号和姓名作为主键,入厂日期默认为系统日期,工资默认为3000。
create table 工人表
编号 int not null,
姓名 char8 not null primary key编号,姓名,
性别 char2 ,
出生日期 datetime ,
入厂日期 datetime not null defaultgetdate,
职称 varchar20 ,
工资 money default 3000,
备注 ntext null
例34建立一个工人信息表,包括编号、姓名、职务,要求主键为编号,姓名具有唯一性,用constraint定义约束。create table 职工信息表
编号 char10,
姓名 char8,
职务 char12,
constraint pk_职工信息表_编号 primary key编号,
constraint uq_职工信息表_姓名 unique姓名
例35建立一个基本信息表baseinfo,包括编号no、姓名name、性别sex、电话tele、Email,要求性别只接受男和女,默认为男,电话必须是8位数字,Email中必须含有@符号。
create table baseinfo
no char10,
name char8 ,
sex char2 default ''男'',
constraint chk_sex checksex=''男'' or sex=''女'',
tele char8,
constraint ck_tele checktele like ''[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'',
Email varchar30,
constraint ck_Email checkEmail like ''%@%''
说明: 一个数据库中不允许出现同名的约束名,or和like都是运算符,or表示或者,like规定数据格式,类似于的意思,%是通配符,表示任意多个字符,即字符串。例36外键的使用,用SQL命令为数据库libsys建立表BorrowInfo。各个字段的参数如表34所示,其中ReaderID字段是主键,也是外键约束,来源于ReaderInfo表的ReaderID字段,BookID字段是主键,也是外键约束,来源于BookInfo表的BookID字段。表ReaderInfo的结构参见表14和表34,BookInfo的结构参见表12。
表34BorrowInfo表的结构
序号属性名数据类型长度非空约束含义
1ReaderIDchar10不可主键、外键、来源于ReaderInfo借书证号2BookIDchar20不可主键、外键、来源于BookInfo书号3BorrowDatedate默认不可主键借书日期4Deadlinedate默认不可
应归还日期5ReturnDatedate默认可以
实际归还日期
建立此表的SQL命令是:
USE libsys
GO
CREATE TABLE BorrowInfo
ReaderID char10 FOREIGN KEY REFERENCES readerinfoReaderID,
BookID char20 FOREIGN KEY REFERENCES bookinfoBookID,
BorrowDate date NOT NULL ,
Deadline date NOT NULL ,
ReturnDate date NULL,
PRIMARY KEYReaderID,BookID,BorrowDate
GO
说明: BorrowInfo建好之后,bookinfo表和readerinfo表都不能删除了,因为有的列被BorrowInfo引用了。也就是说,必须要先删除BorrowInfo,然后才能删除bookinfo表和readerinfo表。
3.3技能训练4: 建立表结构
3.3.1训练目的
1 掌握常用数据类型的用法。2 掌握创建表结构的两种方法。3 掌握表的完整性约束类型。4 掌握用SQL方式表达完整性约束的方法。3.3.2训练时间2课时。3.3.3训练内容1. 用SSMS管理器创建表结构
1 打开SSMS管理器窗口,检查数据库scoresys是否存在,如果不存在,则建立它,如果已经存在,则将此数据库设置为当前数据库。2 按照表35的要求,给scoresys建立表course。3 建立表course后,检查它是否存在在数据库scoresys中。右击course,在弹出的快捷菜单中,尝试执行重命名、删除、刷新、属性命令,观察运行结果。4 从表course的快捷菜单中,执行设计进入修改状态,将Teacher的类型改为varchar,将Term的长度改为2,保存。5 从表course的快捷菜单中,执行编辑前200行进入插入记录的状态,任意输入一条记录,观察结果。
表35course表结构
序号属性名数据类型长度是否可为空约束
1CousreIDchar10不可主键2CourseNamevarchar40不可
3CourseTypevarchar20可以
4Ownervarchar20可以
5Periodint默认不可
6Creditdecimal3,1不可
7Teacherchar8可以
8Termchar1可以
2. 用SQL命令建立表1 对于已经建立的数据库scoresys,用SQL命令为它创建表student,其结构如表36所示。
表36student表结构
序号属性名数据类型长度是否可为空约束
1SIDchar12not null主键2SNamevarchar40not null
3Deptvarchar20not null
4Classvarchar16not null
5Sexchar2null
6Birthdatedate默认null
7Mobilechar13null
8Homevarchar20null
2 用SQL命令将Sex的长度改为1,将Mobile的长度改为14。3 给student表增加一个字段age,类型为int。3. 默认值约束1 用SQL命令将course表的Owner字段的默认值设置为软件学院。2 用SQL命令将student表的Birthdate字段的默认值设置为系统日期提示: 用系统函数getdate实现。3 用SQL命令将student表的age字段的默认值设置为18。4 用SSMS窗口给表student任意输入一条记录。4. 用SQL命令建立带有外键约束的表1 确认student表和course表都已经存在。2 用SQL命令建立表score,其结构如表37所示。
表37score表结构
序号属性名数据类型长度是否可为空约束
1SIDchar12not null主键、外键、来源于student表的SID字段2CourseIDchar10not null主键、外键、来源于course表的CourseID字段3ExamTimedatetime默认not null主键4Markdecimal4,1null
5ExamPlacevarchar20null
6Memoryvarchar20null
3 给score表增加一个列SecondScore,类型是decimal4,1,其值只能是0~60提示用检查约束checkSecondScore=0 and SecondScore=20 and age10
说明: year是系统函数,表示4位年份,是个整数。
3.5.5删除表1. 用SSMS窗口删除表
右击表,执行删除命令或者按Delete键,系统弹出对话框,确认即可。2. 用SQL命令删除表
DROP TABLE表名
说明: 表删除后,其结构和记录自然也删除掉了。
3.6技能训练5: 记录处理
3.6.1训练目的
1 掌握插入记录的两种方法。2 掌握用命令修改记录的方法。3 掌握用命令删除记录的方法。4 掌握删除表的方法。3.6.2训练时间2课时。3.6.3训练内容1. 用SSMS管理器窗口输入记录
1 确认数据库scoresys已经存在,确认它有三个表Course、Student和Score,如果不存在,则需要重新建立,或者从自己邮箱中找到上一次操作所保存的两个文件,附加到数据库中。2 在SSMS管理器中,依次展开数据库scoresys表,右击Course,在快捷菜单中执行编辑前200行,按照表38的内容输入10条记录。注意输入字段值时,不要加入空格,如刘江不要写成刘江。
表38表Course的记录
序号CourseIDCourseNameCourseTypeOwnerPeriodCreditTeacherTerm
11001001计算机应用基础公共基础软件学院483张军军121001002高等数学一公共基础公共课部724.5李小强131001004大学语文公共基础公共课部644刘江142100012英语二公共基础公共课部483杨阳252100015C程序设计专业基础软件学院805张军军2
续表
序号CourseIDCourseNameCourseTypeOwnerPeriodCreditTeacherTerm
63301009Java程序设计专业核心软件学院644刘大会373208911数据库应用技术专业核心软件学院644张军军384011033商务网站设计专业核心软件学院724.5洪国良494213008大数据应用专业方向软件学院483张强5104333010网络营销专业方向商学院483徐小东5
2. 用SQL命令给表Student输入记录1 确认当前数据库是scoresys,新开一个查询窗口。2 按照表39的内容,用SQL命令给表Student输入10条记录。
表39student表的记录
序号SIDSNameDeptClassSexBirthdateMobileHome
120130205011李学才软件学院软件1305男1995050515807310888湖南长沙220130204009刘明明软件学院软件1303女1996121215573223322湖南株洲320130101122张东商学院会计1302男1995080115273117899湖南长沙420140107123许小放商学院电商1402女1996091018942513351湖南长沙520140303007杨阳旅游学院旅游1401女1995101918802014355广州从化620140205223胡小军软件学院软件1505男1997092217733555678广州番禺720130205020杨志强软件学院软件1305男19941230073123238899湖南株洲820140303088杨阳旅游学院旅游1502男1998010913902716544湖北武汉920140106065周到商学院会计1403女199607011570213377上海市1020140208161徐华山软件学院物联网1401男1996072018904513451黑龙江哈尔滨
3. 用SQL命令给带外键约束的表输入记录1 确认表score和student的记录已经输入无误。2 按照表310的内容,用SQL命令给表score输入记录。
表310score表的记录
序号SIDCourseIDExamTimeMarkExamPlaceMemory
120130205011100100120140105 10:00:0085自强楼105NULL220130205011100100220140106 14:30:0073.5致用楼303NULL320130204009100100220140106 14:30:00100致用楼303NULL420130101122100100420140107 8:30:0090知行楼501NULL520140107123210001220150630 8:30:0048自强楼305NULL620140107123210001520150702 10:00:00NULL德业楼109缺考720140303007210001520150702 10:00:0088德业楼109NULL820140205223330100920160110 14:00:0098.5自强楼505NULL920130205020320891120150108 14:00:0080知行楼201NULL1020140303088401103320160625 8:00:00NULL知行楼201缺考1120140106065401103320160625 8:00:0065知行楼201NULL1220140208161401103320160625 8:00:0090知行楼201NULL1320140106065100100220150702 18:00:00NULL敬业楼108缓考1420140208161100100420150702 18:00:0090敬业楼108免考
4. 修改记录1 对于表Course,将CourseType的值为公共基础的记录全部改为公共基础课。2 对于表Course,将CourseType的值为公共基础课的记录全部改回公共基础。3 用SSMS和SQL命令分别实现上面两个内容。5. 删除记录1 对于Score表,删除最后两条记录。2 用Insert命令,将第1步删除的两条记录插入进来。6. 建立并删除表建立一个表test,列随意,用3种方法删除它提示: 快捷菜单、命令、insert键。7. 将数据库scoresys分离将数据库scoresys分离,并把它对应的物理文件复制出来,保存到自己邮箱中,以后操作需要继续使用。3.6.4思考题1 在student表中,删除SID为20130205011的这条记录,会出现什么提示?试试看,解释这是什么原因。2 给score任意添加一条记录,看会出现什么提示?能不能成功?为什么?3 建立表时,假如要让字段sign的值必须是abcdedf中的一个,而不能是其他字符,该怎么设置检查约束?
习题3
一、 填空题1. 字符类型数据包括、、和4种类型,其中(和可以存储unicode字符,且一个字符占用的空间是字节。2. 整数类型包括、、、和5种,其中只能存储0和1。3. 货币型包括和两种,本质是,但允许在其值前面加上符号。4. 用于存储图像型的数据类型是。5. decimal6,2表示的数值,整数是位,小数是位,总的位数是位。6. 标识列的数据类型是,其值是从开始编号的。7. 表示检查约束的函数是,表示唯一性约束的函数是,表示默认值约束的函数是,表示主键约束的是,表示外键约束的是。8. top 100表示,go命令的功能是。9. 删除表的命令是,删除数据库的命令是,删除记录的命令是。10. 插入记录后,系统自动按照的值序排列。二、 选择题1. 修改表的命令是。
A. CREATE TABLE B. ALTER TABLEC. MODIFY TABLED. SHIFT TABLE2. 对于非空约束,系统默认是。A. 0B. 1C. NULLD. NOT NULL3. 修改表结构时,一条命令可以修改个列。A. 1B. 2C. 3D. 44. 以下类型,可以设置长度的是。A. dateB. intC. realD. numeric5. 删除所有记录后,以下说法正确的是。A. 结构也删除了B. 表结构还在C. 数据库也删除了D. 表也删除了6. 表中如果某列为主键,则本列。A. 一定是NULLB. 一定是NOT NULLC. 一定是FOREIGN KEYD. 一定是DEFAULT7. 以下日期,不能正确表示2016年12月5日的是。A. 20161205B. 12052016C. 05122016D. 120520168. 命令UPDATE abcSET age=20表示。A. 设置当前记录的age=20B. 设置第一条记录的age=20C. 设置age=20D. 设置所有记录的age=209. 用drop命令可以删除的是。A. 表名B. 列名C. 记录D. 以上都可以10. 如果表被删除了,则。
A. 可以从回收站里恢复B. 用命令INSERT恢复C. 通过撤销操作恢复D. 无法恢复三、 简答与操作题1. 哪些数据类型的长度是由系统规定的,用户不可以修改?举出10种。2. 解释以下名词: 主键、外键、约束。3. 给数据库salaryManager工资管理增加一个表Manager表示管理人员,包括以下字段: MID编号、Name姓名、Sex性别、Birthday出生日期、Duty职务、Tele电话和Picture照片,请根据常识确定其数据类型和长度。写出SQL命令,并用SSMS管理器实现。4. 给数据库salaryManager增加一个表salary工资表,包括以下字段: MID编号、sal1基本工资、sal2职务津贴、sal3加班补助、sal4绩效奖,其中MID是外键,来源于Manager表的MID,写出SQL命令。5. 对于数据库salaryManager中的表salary工资表,执行以下操作,写出SQL命令。1 修改表结构。2 设置sal1的值,全部为3000。3 删除sal25000的全部记录。4 任意增加一条记录。5 对于sal32000的全部记录,将sal4设置为8000。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.