(1)创建学生表,包括学号(主键)、姓名(不允许为空)、身份证号(不允许为空)、性别(只能取男或女)、入学日期(默认值为系统当前日期)五个属性,要求类型和长度设置合适。(2)向学生表中插入一行数据:学号为“010221”,姓名为“张三”,身份证号为“130110190002020110”。(3)修改“张三”的身份证号为“130110199002020110”。 答:1)CREATE TABLE 学生( 学号 char(6) PRIMARY KEY,姓名 char(8) NOT NULL,身份证号 char(20) NOT NULL,入学日期 datetime DEFAULT getdate() ) (2)INSERT into 学生(学号,姓名,身份证号)VALUES(‘010221’,‘张三’,‘13011019000202110’) (3)UPDATE 学生 SET身份证号=’130110199002020110’ WHERE姓名=’张三’
有学生选课表SC(S#,C#,GRADE),其中:S#为学号,C#为课程号,GRADE为成绩。查询成绩的平均值,平均值显示标题为“平均成绩”, 正确的T-SQL语句为:SELECT avg(GRADE) AS 平均成绩 FROM SC
有学生选课表SC(S#,C#,GRADE),其中:S#为学号,C#为课程号,GRADE为成绩。查询所有“成绩”为空的学生的学号、课程号和成绩,正确的T-SQL语句为:SELECT * FROM SC WHERE GRADE IS NULL
SELECT中的FROM字句用于指定要从中检索数据的表名或视图名
有学生表S(S#,SN,SEX,AGE,DEPT) ,其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询男生和女生的人数,正确的T-SQL语句为SELECT SEX,count(SEX) 人数 FROM S GROUP BY SEX
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,要想用T-SQL语句查询姓名中有“红”字的学生,条件表达式应写成SN LIKE ‘%红%’
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询所有姓“张”的学生的信息,正确的T-SQL语句为SELECT * FROM S WHERE SN like ‘张%’
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询”计算机”和”网络”系学生的姓名、学号和系名,正确的T-SQL语句为:SELECT SN,S#,DEPT FROM S WHERE DEPT IN (‘计算机’ , ‘网络’)
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询学生表的系名称,滤掉重复行,正确的T-SQL语句为SELECT DISTINCT DEPT FROM S
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询前三行学生信息,正确的T-SQL语句为:SELECT TOP 3 * FROM S
有课程表C (C#,CN,CRED),其中:C#为课程号,CN为课程名,CRED为学分。查询 “学分”最高的前两门课,正确的T-SQL语句为:SELECT TOP 2 * FROM C ORDER BY CRED DESC
有学生表S(S#,SN,SEX,AGE,DEPT),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,GRADE为成绩。查询查询选了课的学生的学号,正确T-SQL语句为SELECT S# FROM S EXCEPT SELECT S# FROM SC
有学生表S(S#,SN,SEX,AGE,DEPT) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询“计算机”系学生的学号、姓名和性别信息,并统计学生总人数,正确的T-SQL语句为SELECT S#,SN,SEX FROM S WHERE DEPT= ‘计算机’ COMPUTE COUNT(S#)
有学生表S(S#,SN,SEX,AGE,CLASS),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,CLASS为班级,C#为课程号,GRADE为成绩。将12网络工程班张丽选修的“C002”号课的成绩改为76分,正确的T-SQL语句为UPDATE SC SET GRADE=76 WHERE C#=‘C002’ AND S#=(SELECT S# FROM S WHERE SN=‘张丽’ AND CLASS=‘12级网络工程’)
有学生表S(S#,SN,SEX,AGE,DEPT),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,GRADE为成绩。T-SQL 查询语句“SELECT S# FROM S EXCEPT SELECT S# FROM SC”的含义为:查询没有选课的学生的学号
有学生表S(S#,SN,SEX,AGE,DEPT) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别。检索所有比“王华”年龄大的学生姓名、年龄和性别,正确的T-SQL语句为SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”)
T-SQL语句SELECT UPPER (‘I am a student’)的运行结果为I AM A STUDENT
T-SQL语句SELECT FLOOR(0.9) 的运行结果为0
用于删除字符串开始部分的空格的系统内置函数为LTRIM
POWER不是SQL Server内置函数中的字符串函数
LOWER不是SQL Server内置函数中的数学函数
以下局部变量的赋值语句正确的是SET @a =3
以下变量名中,完全合法的一组是:@x,@@y,@姓名,@myname
GETDATE是非确定性函数,因为每次使用特定的输入值集调用时,可能返回不同的结果
有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别。以简单CASE格式查询所有学生的所在系情况,包括学号,姓名和所在系的英文名,正确的T-SQL语句为:SELECT S#,SN, CASE DEPT WHEN ‘计算机’ THEN ‘Computer’ WHEN ‘网络’ THEN ‘Network’ WHEN ‘数学’ THEN ‘Math’ END AS DEPT FROM S
删除“学生表”中名为“Index姓名”的索引,正确的T-SQL语句为:DROP INDEX 学生表. Index姓名
创建PRIMARY KEY或UNIQUE约束会在表中指定的列上自动创建唯一索引
一个表中最多只能创建一个聚集索引
T-SQL的查询中,外连接可分为三类:左外连接、右外连接和全外连接
在SQL Server 中,可以通过SELECT语句来实现查询,即从数据库表中检索所需要的数据
在SELECT查询的WHERE子句中,连接多个条件,只要有一个条件成立就为真的逻辑运算符为OR
创建“男生视图”语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’,如果想防止通过此视图向“学生表”中插入一个“女”生,则需修改此视图,T-SQL语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’ with check option
SQL Server 2008中,视图可以分为标准系统、索引视图和分区视图
视图创建完毕,就可以如同查询基本表一样通过视图查询所需要的数据
创建索引时如果使用了UNIQUE关键字表示创建的索引是唯一索引
创建“男生视图”语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’,从此视图查询17岁及以下男生信息的T-SQL语句为SELECT * FROM男生视图 WHERE 年龄<=17
简述游标的概念及类型:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力,我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。 SQL Server 支持三种类型的游标:T-SQL 游标,API 服务器游标和客户游标。 由于API 游标和T-SQL 游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。服务器游标包含以下四种:静态游标、动态游标、只进游标、键集驱动游标。
什么是批处理?使用批处理有何限制?批处理的结束符是什么? 批处理是包含一个或多个T-SQL语句的集合,从应用程序一次性地发送到SQL Server 2012进行执行,因此可以节省系统开销。SQL Server 将批处理的语句编译为一个可执行单元,称为执行计划,批处理的结束符为“GO”
有学生表(学号,姓名,性别,年龄,学院)和学生的成绩表(学号,课程号,成绩),用函数实现下列题目: (1)求某个学院选修了某门课的学生人数。 (2)查询某个学院所有学生所选的每门课的平均成绩。 (1)CREATE FUNCTION renshu(@d char(10),@cn char(4)) RETURNS float AS BEGIN DECLARE @cout float SELECT @cout=( SELECT count(*) FROM 学生表,成绩表 WHERE学生表.学号=成绩表.学号 and课程号=@cn and 学院=@d ) RETURN @cout END (2)CREATE FUNCTION average (@d char(10)) RETURNS table AS RETURN ( SELECT 课程号,avg(成绩) FROM 学生表,成绩表 WHERE学生表.学号=成绩表.学号and 学院=@d GROUP BY 课程号 )
有学生表(学号,姓名,性别,年龄,专业)和学生的成绩表(学号,课程号,成绩),用函数实现下列题目: (1)求某门课的平均成绩。 (2)查询某个专业所有学生的学号、姓名、所选课程的课程号和成绩。 (1)CREATE FUNCTION average(@cn char(4)) RETURNS float AS BEGIN DECLARE @aver float SELECT @aver=( SELECT avg(成绩) FROM 成绩表 WHERE 课程号=@cn) RETURN @aver END (2)CREATE FUNCTION stfunc(@major varchar(10)) RETURNS table AS RETURN ( SELECT 学生表.学号, 学生表.姓名,课程号,成绩 FROM 学生表,成绩表 WHERE 专业=@major AND 学生表.学号=成绩表.学号)