190 likes | 326 Views
第 6 章 数据表的创建与管理. 本章内容. 6 .1 数据表的建立 6 .2 数据表的修改. 6 .1 数据表的建立. 数据类型 SQL Server支持4种基本数据类型:字符和二进制数据类型、日期时间数据类型、逻辑数据类型、数字数据类型,用于各类数据值的存储、检索和解释。 1.系统数据类型 (1)精确数值类型 精确数值数据类型用于存储有小数点且小数点后位数确定的实数 。 格式: decimal[(p[, s])] numeric[(p[, s])] (2)近似数值类型 用于表示浮点数值数据的近似数值数据类型。. 6 .1 数据表的建立.
E N D
本章内容 • 6.1 数据表的建立 • 6.2 数据表的修改
6.1 数据表的建立 • 数据类型 SQL Server支持4种基本数据类型:字符和二进制数据类型、日期时间数据类型、逻辑数据类型、数字数据类型,用于各类数据值的存储、检索和解释。 1.系统数据类型 (1)精确数值类型 精确数值数据类型用于存储有小数点且小数点后位数确定的实数 。 格式: decimal[(p[, s])] numeric[(p[, s])] (2)近似数值类型 用于表示浮点数值数据的近似数值数据类型。
6.1 数据表的建立 (3)日期和时间类型 日期时间数据类型用于存储日期和时间数据。SQL Server支持两种日期时间数据类型:datetime和smalldatetime。 (4)字符串类型 字符数据类型用于存储汉字、英文字母、数字符号和其他各种符号。 • char数据类型 • varchar数据类型 • text数据类型
6.1 数据表的建立 (5)Unicode字符串类型 SQL Server允许使用多国语言,采用Unicode标准字符集。为此SQL Server提供多字节的字符数据类型:nchar(n)、nvarchar(n)和ntext。 (6)二进制字符串类型 SQL Server二进制数据类型用于存储二进制数或字符串。 SQL Server的3种有效二进制数据类型: • binary数据类型 • varbinary[(n)]数据类型 • image数据类型
6.1 数据表的建立 (7)其他数据类型 1)cursor。游标是变量或存储过程参数OUTPUT的一种数据类型,这些参数包含对游标的引用。 2)sql_variant:可变数据类型。该类型的变量可用来存放大部分SQL Server数据类型的值,最大长度为8016字节,不支持text、ntext、timestamp和sql_variant类型。 3)table:表类型。这是一种特殊的数据类型,存储供以后处理的结果集。 4)Timestamp:时间戳数据类型,用于自动记录插入或删除操作的时间。 注意:服务器不允许用户指定时间戳值。 5)uniqueidentifier:GUID类型(Global Unique IDentifier, 全局惟一标识符)。 2. 用户定义数据类型
6.1 数据表的建立 • 使用图形工具创建数据表 • 使用Transact-SQL语句创建表 语法格式: CREATE TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name ( { <column_definition> } <table_constraint> ] [ ,...n ] )
6.1 数据表的建立 【例6.1续】利用Transact-SQL创建教学数据库中的三张表。 CREATE TABLE student ( SNO CHAR(4) PRIMARY KEY, SNAME NCHAR(10) NOT NULL, SEX CHAR(1), AGE SMALLINT, CHECK (SEX=ꞌFꞌ OR SEX=ꞌMꞌ), CHECK (AGE BETWEEN 18 AND 25) ) CREATE TABLE course ( CNO CHAR(4), CNAME CHAR(10) NOT NULL, CREDIT SMALLINT, PRIMARY KEY (CNO), CHECK (CREDIT 1 AND 10) )
6.1 数据表的建立 CREATE TABLE s_c ( SNO CHAR(4), CNO CHAR(4), GRADE SMALLINT, PRIMARY KEY (SNO,CNO), FOREIGN KEY SNO REFERENCES student(SNO), FOREIGN KEY CNO REFERENCES course(CNO), CHECK (GRADE 0 AND 100) )
6.2 数据表的修改 • 查看数据表 【例6.2】查看系统当前所有对象的信息。 单击工具栏上【新建查询】按钮,输入以下代码: USE master GO EXEC sp_help GO 【例6.3】查看教学数据库中学生表的信息。 USE teaching GO EXEC sp_help 'student' GO
6.2 数据表的修改 • 使用图形工具修改数据表 • 使用Transact-SQL语句修改表 语法格式: ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name { ALTER COLUMN column_name { [ type_schema_name. ] type_name [ ( { precision [ , scale ] | max } ) ] [ NULL | NOT NULL ] } | [ WITH { CHECK | NOCHECK } ] | ADD { <column_definition> | <table_constraint> } [ ,...n ] | DROP { [ CONSTRAINT ] constraint_name | COLUMN column_name } [ ,...n ] } [ ; ]
6.2 数据表的修改 【例6.4】为教学数据库中的表student添加一个允许空值的列PLACE,而且没有通过DEFAULT定义提供的值。在该新列中,每一行都将有NULL值。 USE teaching GO ALTER TABLE student ADD PLACE VARCHAR(20) NULL GO EXEC sp_help student GO
6.2 数据表的修改 【例6.5】修改表student以删除列PLACE。 USE teaching GO ALTER TABLE student DROP COLUMNPLACE GO EXEC sp_help student GO
6.2 数据表的修改 【例6.6】将表student中列PLACE的数据类型由VARCHAR(20)更改为VARCHAR(10)。 USE teaching GO ALTER TABLE student ALTER COLUMN PLACE VARCHAR(10) GO EXEC sp_help student GO
6.2 数据表的修改 【例6.7】为表student添加一个包含UNIQUE约束的新列SCARDID。 USE teaching GO ALTER TABLE student ADD SCARDID CHAR(18) NULL CONSTRAINT my_constraint UNIQUE GO EXEC sp_help student GO
6.2 数据表的修改 【例6.8】从表student中删除UNIQUE约束。 USE teaching GO ALTER TABLE student DROP CONSTRAINT my_constraint GO EXEC sp_help student GO
6.2 数据表的修改 • 使用图形工具删除数据表 • 使用Transact-SQL语句删除表 语法格式如下: DROP TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name [ ,...n ] [ ; ] 其中,table_name是要删除的表名。 注意: (1) 定义有外键约束的表必须先删除外键约束,才能删除。 (2) 系统表不能使用DROP TABLE语句删除。
6.2 数据表的修改 【例6.9】从当前数据库中删除test1表及其数据和索引。 DROP TABLE test1 【例6.10】删除teaching数据库中的test2表。 DROP TABLE teaching.dbo.test2
本章小结 (1)表的相关概念:表是数据库中数据的实际存储处所,每个表代表一个实体。表由行和列组成,每行标识实体的一个个体,每列代表实体的一个属性。 (2)数据类型:数据类型描述并约束了列中所能包含的数据的种类、所存储值的长度或大小、数字精度和小数位数(对数值数据类型)。 (3)空值:未对列指定值时,该列将出现空值。空值不同于空字符串或数值零,通常表示未知。空值会对查询命令或统计函数产生影响,应尽量少使用空值。 (4)约束:约束是数据库自动保持数据完整性的机制,它是通过限制列中数据、行中数据和表之间数据来保持数据完整性。SQL Server 2005支持Not Null、Default、Check、Primary Key、Foreign Key、Unique 6种约束。 (5)可以使用图形工具和Transact-SQL语句创建表并对表进行维护,包括修改和删除等操作。