资源简介 (共29张PPT)关系数据库标准语言SQL第3章目录01SQL概述02数据库的创建与管理03数据表及其操作04数据查询05视图06索引本章主要内容结构化查询语言(Structured Query Language,SQL)是关系数据库管理的标准语言,具有数据定义、数据查询、数据操纵和数据控制四个方面的功能。SQL结构简单,功能齐全,是目前广泛应用的关系数据库查询语言。本章主要介绍SQL Server 2019数据库管理系统各种工具的使用和SQL的使用。数据表及其操作第3章033.3 数据表及其操作本节主要讲解如何创建数据表,数据表就像数据容器里面的抽屉一样,将数据分门别类地放在数据库中进行存储。因此,数据表是数据库中极其重要的数据对象,是存储数据的基本单元。通过对表结构的设计可以定义数据库的结构,还可以通过约束对保存的数据类型进行限制。数据表与电子表格类似,数据在表中是按照行和列的格式组织排列的。每一行代表一条唯一的记录,每一列代表记录中的一个域。例如,一个包含学生基本信息的数据表,表中的每一行代表一条学生信息,每一列表示学生的详细资料,如SNO(学号)、SN(姓名)、Sex(性别)、Age(年龄)和DNO(系别)等,TeachSystem数据库中的学生表student如图所示。3.3.1 数据类型数据表中主要存储的是数据,现实社会中存放着不同类型的数据,数据类型是以数据的表现方式和存储方式划分的。数据类型是数据的一种属性,决定数据存储的空间和格式。在SQL Server 2019的数据表中,属性列的数据类型既可以是系统提供的数据类型,也可以是用户自定义的数据类型。数据类型可以为属性列定义4个属性:对象包含的数据种类、存储值占有的空间(字节数)与数值范围、数值的精度(仅适用于数值类型)、数值的小数位数(仅适用于数值类型)。SQL Server 2019中的数据类型可以归纳为整数数据类型、浮点数据类型、字符数据类型、日期和时间数据类型、货币数据类型、二进制数据类型和其他数据类型。3.3.1 数据类型(1)整数数据类型整数数据类型是常用的数据类型之一,主要用来存储没有小数位的整数。下面表格列出了SQL Server 2019支持的整数数据类型。(2)浮点数据类型浮点数据类型可以存储十进制值,用于表示浮点数值数据的大致数值的数据类型,包括float、real、decimal和numeric四种。SQL Server 2019存储数据时对小数点右边的数进行四舍五入。一般只有在精确数据类型不够大、不能存储数值时,才考虑使用float数值类型。表3.2列出了SQL Server 2019支持的浮点数据类型。3.3.1 数据类型(3)字符数据类型字符数据类型是使用较多的数据类型,可以用来存储各种字母、数字符号和特殊符号。字符数据类型分为定长类型和变长类型。对于定长字符数据类型,可以用n指定定长字符串的长度,如char(n)、nchar(n)。当输入的字长小于分配的长度时,用空格填充;当输入的字符串的字长大于分配的长度时,则SQL Server 2019自动截取多余部分。对于变长字符数据类型,可以用n指定字符的最大长度,如varchar(n)、nvarchar(n)。在变长属性列的数据会被去掉尾部的空格;存储尺寸就是输入数据的实际长度。SQL Server 2019支持6种类型的字符数据类型,即char、varchar、text、nchar、nvarchar和ntext等。其中,前3种为ASCII编码,后3种的编码为Unicode编码。3.3.1 数据类型(4)日期和时间数据类型日期和时间数据类型主要存储日期和时间结合的数据类型,在计算机内部作为整数存储。SQL Server 2019支持date、datetime、datetime2、datetimeoffst、smalldatetime、time 6种类型。(5)货币数据类型货币数据由十进制货币的数值数据组成。货币数据类型有money和smallmoney两种,能精确到它们所代表的货币单位的万分之一。3.3.1 数据类型(6)二进制数据类型二进制数据的字符串是由二进制值组成的,而不是由字符组成的,该类型通常用于时间戳(Timestamp)和IMAGE类型。(7)其他数据类型为了更好地解决特殊类型的数据,SQL Server 2019还支持geography、geometry、hierarchyid、sql_variant、timestamp、uniqueidentifier、xml和用户定义数据类型。3.3.2 创建数据表创建数据表的一般步骤:首先,设计数据表的表结构,即定义属性列的列名、数据类型、数据长度和是否可为空等;其次,给表定义完整性约束,限制某列的取值范围,保证数据的正确和一致性;最后,向数据表输入数据。创建数据表的关键是设计合适的表结构。教务管理信息系统数据库TeachSystem包括学生表student(表结构见表3.7,表数据见表3.13)、课程表course(表结构见表3.8,表数据见表3.14)、教师表teacher(表结构见表3.9,表数据见表3.15)、选课表SC(表结构见表3.10,表数据见表3.16)、授课表TC(表结构见表3.11,表数据见表3.17)和院系表dept(表结构见表3.12,表数据见表3.18)。3.3.2 创建数据表3.3.2 创建数据表3.3.2 创建数据表(1)使用对象资源管理器创建数据表启动SQL Server Management Studio,在对象资源管理器中,展开TeachSystem数据库,右击“表”选项,在弹出的快捷菜单中选择“新建”→“表”命令,如右图所示。在弹出的“编辑”面板中输入各列的名称、数据类型、长度和是否可为空等属性(参考表3.7的学生表结构),如右图图所示。3.3.2 创建数据表输入各属性列后,单击“保存”按钮,弹出“选择名称”对话框,如图所示。在“选择名称”对话框中输入表的名称student,单击“确定”按钮,学生表student创建完成。(2)使用T-SQL语句创建数据表:使用CREATE TABLE语句创建表,其基本语法格式如下。3.3.2 创建数据表【例3.8】在教学管理信息数据库TeachSystem中创建学生表student。USE TeachSystemGOCREATE TABLE student(SNO nchar(6) NOT NULL,SN nvarchar(10) NOT NULL,Sex nchar(2)Age SMALLINTDNO nchar(10))GO3.3.3 修改表结构数据表在创建完成之后,在使用的过程中可以对表结构进行修改,例如增加表中的某一列,删除表中的某一列,修改已有的某一列属性等。可以通过对象资源管理器和T-SQL语句两种方法修改表结构。(1)使用对象资源管理器修改表结构修改表名启动SQL Server Management Studio后,在对象资源管理器中展开TeachSystem,再展开“表”选项,选中要重命名的表(如表student),右击,在弹出的快捷菜单中选择“重命名”命令,然后在原表S上输入表的新名称S,即可完成表名的更改操作。尽管SQL Server 2019允许用户修改表的名称。但是,一般情况下不建议修改已有表的表名,因为表名在修改之后,与表名相关联的某些对象(如视图、存储过程等)将无效。3.3.3 修改表结构添加列当需要向表中增加项目时,就要向表中增加列。例如,对TeachSystem数据库中的学生表student增加一列家庭住址“address”。启动SQL Server Management Studio后,在对象资源管理器中展开TeachSystem,再展开“表”选项,选中要修改结构的表(如表student),右击,在弹出的快捷菜单中选择“设计”命令,如右图(上)所示。接着在弹出的“dbo.student表”的窗口中单击一行,输入列名“address”,选择数据类型nvarchar(30),并选择可以为空值,如右图(下)所示。最后单击工具栏上的“保存”按钮,即可完成增加列的操作,按此操作可以添加多列。3.3.3 修改表结构删除列在对象资源管理器中打开学生表student的设计窗口,右击“address”列,在弹出的快捷菜单中选择“删除”命令,然后单击工具栏上的“保存”按钮,即可完成删除列的操作,按此操作可以删除多列。修改列如同增加和删除列的操作,在表窗口中可以对已有列的数据类型、长度和是否可以为空值等属性进行修改,单击工具栏上的“保存”按钮可以保存修改结果,完成修改操作。3.3.3 修改表结构(2)使用T-SQL语句修改表结构使用ALTER TABLE语句可以完成修改表结构的操作,其基本语法结构如下:其中的参数说明如下。table_name:用于指定要修改的表名称。ALTER COLUMN:用于指定要变更或者修改数据类型的列。col_name:用于指定要修改、添加和删除的列全名。3.3.3 修改表结构【例3.9】向学生信息表student中增加一列“address”,数据类型为nvarchar(30),可以为空值。【例3.10】修改学生信息表student中已有列“address”,将其数据类型改为nchar。【例3.11】删除学生信息表student中的列“address”。3.3.4 查看数据表(1)使用对象资源管理器查看表结构在对象资源管理器窗口中,右击需要查看结构的表,在弹出的快捷菜单中选择“设计”命令,打开数据表窗口,即可查看数据表的结构信息。(2)使用系统存储过程sp_help查看表结构sp_help的语法格式如下。[EXECUTE] sp_help [table_name]【例3.12】查看TeachSystem数据库中的学生表student的表结构。EXECUTE sp_help student3.3.4 查看数据表(3)查看数据表中的数据在对象资源管理器窗口中,右击需要查看数据的表,在弹出的快捷菜单中选择“选择前1000行”命令,打开数据表窗口,即可查看数据表的数据信息。在数据表窗口中,不仅能查看表的数据信息,还能向数据表插入记录、更新记录和删除记录。3.3.5 删除数据表当某个数据表无用时,可以将其删除。删除表后,该表的结构定义、数据、全文索引、约束和索引都将从数据库中永久删除,存储空间将被释放。(1)使用对象资源管理器删除数据表启动SQL Server Management Studio后,在对象资源管理器中展开数据表所在的数据库,再展开“表”选项,选中要删除的表(如表student),右击,在弹出的快捷菜单中选择“删除”命令,如图所示。然后,在“删除对象”对话框中单击“确定”按钮,即可完成数据表的删除操作。3.3.5 删除数据表(2)使用T-SQL语句删除数据表删除数据表可以使用DROP TABLE命令,其语法格式如下。DROP TABLE table_name[,…n]【例3.13】删除TeachSystem数据库中的学生表student。USE TeachSystemGODROP TABLE studentGO3.3.6 更新数据表更新数据表主要是指向数据表中插入记录、修改记录和删除记录。插入记录主要使用INSERT语句,修改记录主要使用UPDATA语句,删除记录主要使用DELETE语句。(1)插入记录使用INSERT语句可以向数据表中插入一条记录或多条记录,且该记录插入数据表的末尾。INSERT语句的语法格式如下。3.3.6 更新数据表【例3.14】向学生表student中插入一条记录('S10','张杰','男',19,'08')。【例3.15】向学生表student中插入一条记录的部分数据值,只输入SNO、SN两个列的值:S11、李伟。3.3.6 更新数据表(2)修改记录使用UPDATE语句修改表中数据的语法格式如下。【例3.16】对例3.15中向表student中插入的记录进行修改,修改语句如下。3.3.6 更新数据表(3)删除记录使用DELETE语句删除表中记录的语法格式如下。【例3.17】删除数据表student中姓名为王杰的学生记录,删除语句如下。【例3.18】删除数据表student中所有的记录,删除语句如下。 展开更多...... 收起↑ 资源预览