5.创建,修改和删除数据库的T-SQL语句是什么? 答:
用CREATE DATABASE 语句来创建数据库,用ALLTER DATABASE 语句来修改数据库,用DROP语句删除数据库。 6.创建一个名为“RSGL”的数据库,数据文件的逻辑文件名为“rsgl_data”,物理文件名为“D:\\rsgl_data.mdf”,初始容量为1MB,最大容量为20MB,按2MB增长;日志文件的逻辑文件名为“rsgl_log”,物理文件名为“D:\\rsgl_log.ldf”初始容量为1MB,最大容量为10MB,按2%比例增长。写出T-SQL语句。 答:
CREATE DATABASE rsgl ON
( NAME=’rsgl_data’,
FILENAME=’d:\\rsgl_data.mdf’, SIZE=1MB, MAXSIZE=20MB, FILEGROWTH=2MB) LOG ON
(NAME=’rsgl_log’,
FILENAME=’d:\\rsgl_log.ldf’, SIZE=1MB, MAXSIZE=10MB, FILEGROWTH=2%) GO
7.写出T-SQL语句,完成对RSGL数据库进行如下的操作。 答:
1.将RSGL数据库的初始分配空间1MB,扩充到10MB; ALTER DATABASE RSGL MODIFY FILE
(NAME=’rsgl_data’, SIZE=10MB ) GO
2.修改RSGL数据库文件的属性参数。将最大大小改为不限制,增长方式改为每次按10%比例增长。 ALTER DATABASE RSGL MODIFY FILE
(NAME=’rsgl_data’, MAXSIZE=UNLIMITED FILEGROWTH=10%) GO
3.修改RSGL日志文件的属性参数。将最大大小改为20MB,增长方式改为每次按5MB增长。
ALTER DATABASE RSGL MODIFY FILE (NAME=’rsgl_log’, MAXSIZE=20MB, FILEGROWTH=5MB) GO
4.将RSGL数据库的空间压缩至最小容量。 USE RSGL GO
DBCC SHRINKDATABASE(‘RSGL’) 5.将RSGL数据库更名为“NEW_RSGL”。 EXEC sp_renamedb ‘RSGL’, ‘NEW_RSGL’ 6.删除NEW_RSGL数据库。 DROP DATABASE NEW_RSGL
第5课 创建和管理学生信息管理系统中的表
1.什么是表?SQL Server 为列提供了哪些数据类型? 答:
表是用来存储数据和操作数据的逻辑结构,关系数据库中的所有数据都表现为表的形式。在创建表之前的重要工作是设计表结构,即确定表的名字、所包含的各个列的列名、数据类型和长度、是否为空值等。
SQL Server 为列提供的数据类型有:字节型、数据型、精确数值型、浮点型、货币型、位型、字符型、文本型、日期时间型等。
2.简要说明空值的概念及其作用? 答:
创建表时需要确定该列的取值能否为空值。空值意味着没有值,并不是“空格”或数值为0。允许空值表示该列取值目前是不确定的。
3.如果创建表时没有指定NULL或NOT NULL,默认用什么? 答:
允许列的取值为空或不为空,默认情况为NULL。
4.INSERT 语句的作用是什么?如果在INSERT 语句中列出了5个列名,需提供几个列值? 答:
T—SQL 中向表中插入记录的语句是 INSERT。如果在INSERT 语句中列出了5个列名,需提供5个列值。 5.UPDATE 语句的作用是什么?在使用UPDATE 语句时,带上 WHERE 子句意味着什么? 答:
T—SQL 中用于修改表记录的语句是UPDATE。WHERE子句意味着指定被修改的记录应满足的条件。当省略该子句时,表明所有的记录都执行 SET 指定的修改。
6.DELETE 语句的作用是什么?用DELETE 语句能删除表吗? 答:
T—SQL 中用于删除记录的语句是DELETE。用DELETE 语句不能删除表。
7.ALTER TABLE 的作用是什么?在表中增加列的子句是什么?删除列的子句是什么?用ALTER TABLE 可更新列名吗? 答:
T-SQL 中对表进行修改的语句是ALTER TABLE 。在表中增加列的子句是ADD 子句。删除列的子句是DROP 子句。用ALTER TABLE 不可更新列名。
8.使用企业管理器创建STUMS数据库中的各表。 答:略
9.按照题目要求写出下列SQL命令,并在机器上进行测试。 答:
1.创建STUMS数据库的专业表,并将专业代码设为主键。 CREATE TABLE 专业表
(专业代码 CHAR(4) NOT NULL PRIMARY KEY, 专业名称 CHAR(16), 系部代码 CHAR(2) )
2.在专业表中增加一列“培养方向”,CHAR(20)。 ALTER TABLE 专业表 ADD 培养方向 char(20) GO
3.在专业表中插入一条记录,其数据为:0210、轮机工程、02、船舶制造。 INSERT 专业表(专业代码, 专业名称, 系部代码, 培养方向) VALUES(‘0210’, ‘轮机工程’, ‘02’, ‘船舶制造’) GO
4.修改专业表中的记录,将轮机工程的专业代码改为“0201”、培养方向改为“船舶修理”。 UPDATE 专业表
SET 专业代码=’0201’, 培养方向=’船舶修理’ WHERE 专业名称=’轮机工程’ 5.删除专业表中的全部记录。 DELETE 专业表 6.查看专业表的属性。 EXEC sp_help 专业表 7.删除专业表。 DROP TABLE 专业表
第6课 创建简单的SELECT查询
1.简述SELECT 语句的基本语法格式。 答:
SELECT 语句的基本语法格式: SELECT select_list
[INTO new_table_name] FROM table_source
[WHERE search_conditions]
[GROUP BY? group_by_expression] [HAVING search_conditions]
[ORDER BY order_expression [ASC/DESC]
其中,
SELECT 子句——用于指定查询结果集中的列。
Select_list:为结果集选择的列。用*表示当前表或视图的所有列。 INOT子句——创建新表并将查询结果插入新表中。 new_table_name:为保存查询结果的新表名。 FROM子句——用于指定查询的数据源。
table_source:指定用于查询的表或视图、派生表和联接表等。 WHERE子句——用于指定查询条件。
search_conditions:为条件表达式,可以是关系表达式或逻辑表达式。 GROUP BY 子句——将查询结果按指定的表达式分组。
group_by_expression:是对其执行分组的表达式,group_by_expression也称为分组列。group_by_expression可以是列或引用列的非聚合表达式。
HAVING子句——指定满足条件的组才予以输出。HAVING通常与GROUP BY 子句一起使用。 search_condition:为输出组应满足的条件。 ORDER BY——指定结果集的排列顺序。
order_expression:指定要排序的列。可以将排序列指定为列名或列的别名,也可以指定一个表示该名称或别名在选择列表中所处位置的非负整数。列名和别名可由表名或视图名加以限定。也可指定多个排序列。 ASC:指定递增顺序。从最低值到最高值对指定列中的值进行排序。 DESC:指定递减顺序。从最高值到最低值对指定列中的值进行排序。 2.SQL Server 中提供了哪些常用的进行数据统计的聚合函数? 答:
函数 COUNT MIN MAX AVG SUM STDEV STDEVP VAR VARP 功能 统计 求最小值 求最大值 求平均值 求总和 求标准偏差 求标准偏差 求标准方差 求标准方差 含义(返回值) 统计满足条件的行数 求某字段值的最小值 求某字段值的最大值 求某数字段值的平均值 求某数字字段值的总和 求所有数值的标准偏差 求所涉及及数值的标准偏差 求所有数值的标准方差 求所涉及数值的标准方差 注:字段值为NULL的数据记录不包括在聚合函数的运算中。 3.在STUMS数据库中,用SQL语句完成下列操作。 答:
1.列出家住南通的学生的姓名和年龄。
SELECT 姓名,年龄 FROM 学生基本信息 WHERE 籍贯=’南通’ 2.查询不在1990年出生的男生的姓名。
SELECT 姓名 FROM学生基本信息 WHERE 性别=’男’ and YEAR(出生日期) NOT IN (‘1990’) 3.列出所有“共产党员”的基本信息。
SELECT * FROM 学生基本信息 WHERE 政治面貌=’共产党员’ 4.统计“西方经济学”课程的平均分。 SELECT AVG(成绩) AS 平均分 FROM 选课
WHERE 课程号 IN (SELECT 课程号 FROM 课程 WHERE 课程名='西方经济学') 5.计算选修了课程号为“0310”的学生人数。
SELECT COUNT(学号) AS 总人数 FROM 选课 WHERE 课程号=’0310’ 6.列出所有女生信息,并按年龄从小到大排序。 SELECT * FROM 学生基本信息 WHERE 性别=’女’ ORDER BY 出生日期 DESC
第7课 查询综合设计
1.什么是连接查询?简述交叉连接查询的连接过程及其语法格式。 答:
一个查询同时涉及到两个或两个以上的表,则称之为连接查询。
交叉连接又称非限制连接,也叫广义迪卡尔积。二个表的广义笛卡尔积是两表中记录的记录乘积,结果集的列为二个表属性列的和,其连接的结果会产生一些没有意义的记录,并且进行该操作非常耗时。其语法格式为: SELECT column_name FROM table_namel CROSS JOIN table_name2 其中,CROSS JOIN 为交叉表连接关键字。
2.简述外连接查询中有哪几种连接及相应的语法格式。 1)左外连接 其语法格式为: SELECT column_name
FROM table_name1 LEFT [OUTER] JOIN table_name2 ON table_namel.column_name=table_name2.column_name 其中OUTER 关键字可以省略。 2)右外连接