Sql Server数据库查询语句练习题含答案

Sql Server数据库查询语句练习题含答案
Sql Server数据库查询语句练习题含答案

第三章综合练习

1.创建一个数据库,数据库名字edu,数据文件逻辑名字edu_data,初始大小10M,最大为1024M,增长比例为每次1M;日志文件逻辑名字为edu_log,初始大小5M,最

大为100M,按10%比例增长,这些文件都存储到E盘根目录下,并且物理文件

名与逻辑文件名全部相同。

CREATE DATABASE edu

ON PRIMARY

( NAME = N'educ_data', FILENAME = N'e:\educ_data.mdf' , SIZE = 10240KB , MAXSIZE = 1024M , FILEGROWTH = 1M)

LOG ON

( NAME = N'educ_log', FILENAME = N'e:\educ_log.ldf' , SIZE = 5M , MAXSIZE = 100M , FILEGROWTH = 10% )

2.在edu数据库里创建一个架构,架构名字为自己名字的汉语拼音。

create schema zhangsan; --自己名字的汉语拼音

3.在创建的架构中,创建如下表:

表1 student表(学生信息表)

表3 student_course表(学生选课成绩表)

表4 teacher表(教师信息表)

表6 department表(院系息表)

创建表的时候必须建立主、外键关系。

create table zhangsan.department(

dno char(6) primary key,

dname char(8) not null,

dhome varchar(40),

dzipcode char(6),

dtel varchar(40)

)

create table zhangsan.student(

sno char(8) not null primary key,

sname char(8) not null,

sex char(2),

[native] char(20),

birthday datetime,

pno char(4),

dno char(6),

classno char(4),

entime datetime,

home varchar(40),

tel varchar(40)

foreign key(dno) references department(dno) )

create table zhangsan.course(

cno char(10) primary key,

cname char(20) not null,

cpno char(10),

experiment tinyint,

lecture tinyint,

semester tinyint,

credit tinyint,

foreign key (cpno) references course(cno)

)

create table zhangsan.student_course(

sno char(8),

cno char(10),

score tinyint,

primary key(sno,cno),

foreign key(sno) references student(sno), foreign key(cno) references course(cno)

)

create table zhangsan.teacher(

tno char(8) primary key,

tname char(8) not null,

sex char(2),

birthday datetime,

dno char(6),

pno tinyint,

home varchar(40),

zipcode char(6),

tel varchar(40),

email varchar(40),

foreign key(dno) references department(dno)

)

create table zhangsan.teacher_course(

tcid smallint primary key,

tno char(8),

classno char(4),

cno char(10) not null,

semester char(6),

schoolyear char(10),

classtime varchar(40),

classroom varchar(40),

weektime tinyint,

foreign key(tno) references teacher(tno),

foreign key(cno) references course(cno)

)

4.建立、删除索引

(1)在student表的sname列建立唯一降序索引;

create unique index IX_STUDENT_SNAME on zhangsan.student(sname desc)

(2)在course表的credit列上建立升序索引;

create index IX_COURSE_CREDIT on zhangsan.course(credit)

(3)在student_course表的sno列上建立聚集索引。

create clustered index IX_STUDENT_COURSE_SNO on zhangsan.student_course(sno) (4)在student_course表上,以学号升序,学号相同按课程号降序建立索引;create index IX_STUDENT_COURSE_SNOCNO on zhangsan.student_course(sno,cno desc) (5)在teacher表的tno列上建立聚集升序索引。

create clustered index IX_TEACHER_TNO ON teacher(tno )

(6)将student_course表的sno列上的聚集索引删掉。

drop index IX_STUDENT_COURSE_SNO

5.将给出的数据插入到相应的表里,必须使用insert语句。

注意插入数据时注意满足参照关系,否则插入数据会出错。例子:往学生表插入一条记录

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('108' ,'曾华' ,'男' ,'1977-09-01',95033);

向教师表插入一条记录

insert into teacher

values('101', '赵旭东', , , '副教授', '数学系')

6.查询

--简单查询部分练习

1)查询全体学生的学号、姓名、籍贯

select sno,sname,native

from student

2)查询所有课程的名称及学分

select cname,credit

from course

3)查询教师的姓名、性别、联系电话

select tname,sex,tel

from teacher

4)查询每门课程的课程编号、课程名称及理论学时

select cno,cname,lecture-experiment 理论课时

from course

5)查询全体学生的姓名、联系电话,并在前面加上字符串‘联系方式’select sname,'联系方式',tel

from student

6)查询全体教师的人数

select count(tno) 教师人数

from teacher

7)查询全体教师的姓名、家庭住址、邮政编码(使用列别名)

select tname '姓名',home '家庭住址',zipcode '邮政编码'

from teacher

8)查询全体学生的姓名

select sname

from student

9)查询本学期有课的教师编号

select distinct tno 有课的教师编号

from teacher_course

where semester = '1'

10)查询所有选课的学生学号

select distinct sno

from student_course

11)查询籍贯为河北保定的学生的学号和姓名

select sno,sname

from student

where native='河北保定'

12)查询课程学分小于3分的课程名称

select cname

from course

where credit<3

13)查询在c201教室上课的教师编号

select distinct tno

from teacher_course

where classroom='c201'

14)查询软件学院的办公电话

select dtel

from department

where dname='软件学院'

15)查询学生成绩在60-90分的学生的学号和课程号

select sno,cno

from student_course

where score between 60 and 90

16)查询学分为3分的课程信息

select *

from course

where credit=3

17)查询在教学楼C座上课的教师的编号

select distinct tno

from teacher_course

where classroom like 'c%'

18)查询有先行课的课程编号及课程名

select cno,cname

from course

where cpno is not null

19)查询籍贯为山东省的学生基本信息

select *

from student

where native like '山东%'

20)查询姓名为3个字,前两个字为‘上官’的学生学号和姓名select sno,sname

from student

where sname like '上官_'

21)查询专业号为3的女学生的姓名、生日和家庭住址

select sname,birthday,home

from student

where pno='3' and

sex='女'

22)查询学号为‘20101001’的学生选修的课程号及成绩,结果按成绩升序排列select cno,score

from student_course

where sno='20101001'

order by score asc

23)查询所有课程的基本信息,结果按授课学时降序排列,学时相同按学分升序排列select *

from course

order by lecture desc,credit asc

24)查询所有男教师的姓名和出生日期,结果年龄从小到大排序

select tname,birthday

from teacher

where sex='男'

order by birthday desc

25)查询选修2号课程学生成绩的最大值和最小值

select max(score) 最高分,min(score) 最低分

from student_course

where cno='2'

26)查询所有教师的人数

select count(*)

from teacher

27)查询所有专业号为1的学生人数

select count(sno) 人数

from student

where pno='1'

28)查询选课人数超过5人的课程编号

select cno

from student_course

group by cno

having count(*)>5

29)查询所有学生的基本信息以及所在学院的名称和学院联系电话

select student.*,department.dname,department.dtel

from student,department

where student.dno=department.dno

30)查询教师李亮的上课时间、上课地点和每周学时数

select classtime,classroom,weektime

from teacher,teacher_course

where teacher.tno=teacher_course.tno and

tname='李亮'

31)查询选修了数据库系统概论或数据结构的学生的学号和姓名select distinct student.sno,sname

from student,course,student_course

where student.sno=student_course.sno and

https://www.360docs.net/doc/fb7374556.html,o=student_https://www.360docs.net/doc/fb7374556.html,o and

https://www.360docs.net/doc/fb7374556.html,ame in ('数据库系统概论','数据结构')

32-67要求至少使用两种方式查询(对复杂查询,可以建立视图)32)查询至多有两名男生的班级

方法1

select classno --男生人数少于3人得班级

from student

where sex = '男'

group by classno

having count(sno) <3

union

select distinct classno --没有男生的班级

from student

where classno not in(

select distinct classno

from student

where sex = '男'

)

方法2

select distinct classno --所有的班级号

from student

except

select classno --男生人数大于等于3人得班级

from student

where sex = '男'

group by classno,sex

having count(sno) >=3

33)查询至少有一名教授的学院的信息

方法1

select *

from department

where dno in(

select dno

from teacher

where pno = '教授'

group by dno

having count(tno)>=1

)

方法2

select *

from department

where dno not in (

select distinct dno

from department

except

select distinct dno

from teacher

where pno = '教授'

)

34).查询出每个老师及其教课情况

方法1

select *

from teacher , teacher_course

where teacher.tno = teacher_course.tno

35).查询每门课程及其被选修的人数

方法1

select https://www.360docs.net/doc/fb7374556.html,o,cname,count(*) 选修人数from student_course,course

where student_https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o group by https://www.360docs.net/doc/fb7374556.html,o,cname

方法2

select https://www.360docs.net/doc/fb7374556.html,o,cname,选课人数

from course,(

select cno,count(*) 选课人数

from student_course

group by cno

) tmp

where https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o

36).查询籍贯是河北省的教师所教的课程信息方法1

select distinct course.*

from course,teacher,teacher_course

where https://www.360docs.net/doc/fb7374556.html,o = teacher_https://www.360docs.net/doc/fb7374556.html,o and teacher.tno = teacher_course.tno and

home like '河北%'

方法2

select *

from course

where cno in (

select cno

from teacher_course

where tno in(

select tno

from teacher

where home like '河北%'

)

)

37).查询软件学院学生情况

方法1

select *

from student

where dno in (

select dno

from department

where dname = '软件学院'

)

方法2

select student.*

from student,department

where department.dno = student.dno and

dname = '软件学院'

38).查询班级人数最多的班的学生情况

方法1

select *

from student

where classno in (

select classno

from student

group by classno

having count(*)>=all(select count(*)

from student

group by classno)

)

方法2

select student.*,num

from student,(

select classno,count(*) num

from student

group by classno) class_num

where student.classno = class_num.classno and num = (

select max(num)

from (select classno,count(*) num

from student

group by classno) class_num

)

方法3

create view class_num

as

select classno,count(*) num

from student

group by classno

select A.*

from student A,class_num B

where A.classno = B.classno and

num = (select max(num)

from class_num)

drop view class_num

39).查询张姓学生选修的课程号、课程名

方法1

select distinct https://www.360docs.net/doc/fb7374556.html,o,cname

from course,student,student_course

where https://www.360docs.net/doc/fb7374556.html,o = student_https://www.360docs.net/doc/fb7374556.html,o and student.sno = student_course.sno and

sname like '张%'

方法2

select cno,cname

from course

where cno in (

select cno

from student_course

where sno in (

select sno

from student

where sname like '张%'

)

)

40).查询男学生选修课程的平均分

方法1

select avg(score)

from student,student_course

where student.sno = student_course.sno and

sex = '男'

方法2

select avg(score)

from student_course

where sno in (

select sno

from student

where sex = '男'

)

41).查询哪些学生选修了授课学时为54的课程方法1

select *

from student

where sno in (

select distinct sno

from student_course

where cno in (

select cno

from course

where lecture = 54

)

)

方法2

select distinct student.*

from student,student_course B,course

where student.sno = b.sno and

https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o and

lecture = 54

42).查询比软件学院学生年龄都小的其他系学生的信息。方法1

select *

from student

where birthday > (

select max(birthday)

from student

where dno = (

select dno

from department

where dname = '软件学院' )

) and dno <> (

select dno

from department

where dname = '软件学院' )--其他系

方法2

select student.*

from student,department

where student.dno = department.dno and

dname <>'软件学院' and

birthday >(

select max(birthday)

from student,department

where student.dno = department.dno and

dname = '软件学院'

)

方法3

create view software_student

as

select A.*

from student A,department B

where A.dno = b.dno and

dname = '软件学院'

select *

from student A ,software_student B

where A.sno <> B.sno and

A.birthday > (

select max(birthday)

from software_student

)

drop view software_student

43).查询比数信学院学院学生年龄大的教育学院学生信息。

方法1

select student.*

from student,department

where student.dno = department.dno and

dname = '教育学院' and

birthday < (

select max(birthday)

from student,department

where student.dno = department.dno and

dname = '数信学院'

)

方法2

select distinct A.*

from (select distinct student.*

from student,department

where student.dno = department.dno and

dname = '教育学院') A,

(select distinct student.*

from student,department

where student.dno = department.dno and

dname = '数信学院') B

where A.birthday < B.birthday

44).查询班级号为1的班的学生c语言程序设计成绩的平均成绩方法1

select avg(score)

from student_course A

where sno in (

select sno

from student

where classno = '1') and

cno = (

select cno

from course

where cname = 'c语言程序设计')

方法2

from student A,student_course B,course C

where a.sno =b.sno and

https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o and

classno = '1' and

cname = 'c语言程序设计'

45).查询计算机导论平均成绩最高的班级。

方法1

create view class_avg

as

select classno,avg(score) pingjun

from student A,student_course B,course C

where a.sno =b.sno and

https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o and

cname = '计算机导论'

group by classno

select classno

from class_avg

where pingjun = (

select max(pingjun)

from class_avg

)

drop view class_avg

方法2

select classno

from student A,student_course B,course C

where a.sno =b.sno and

https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o and

cname = '计算机导论'

group by classno

having avg(score)>=all(

select avg(score)

from student A,student_course B,course C

where a.sno =b.sno and

https://www.360docs.net/doc/fb7374556.html,o = https://www.360docs.net/doc/fb7374556.html,o and

cname = '计算机导论'

group by classno

)

46).查询选修人数最多的课程是哪个老师教的,显示教师号,教师姓名

from teacher

where tno in (

select tno

from teacher_course

where cno in (

select cno

from student_course

group by cno

having count(sno) >=all (

select count(*) aver

from student_course

group by cno

)

)

)

47).查询余孝天老师所教各门课程的平均成绩方法1

select cno,avg(score)

from student_course

where sno in ( --余孝天老师所教学生

select A.sno

from student A,teacher B,teacher_course C

where A.classno = C.classno and

B.tno =

C.tno and

tname = '余孝天') and

cno in( --余孝天老师所教课程

select cno

from teacher B,teacher_course C

where B.tno = C.tno and

tname = '余孝天')

group by cno

方法2

select https://www.360docs.net/doc/fb7374556.html,o,avg(score)

from student_course A,teacher_course B,teacher C where tname = '余孝天' and

https://www.360docs.net/doc/fb7374556.html,o =

https://www.360docs.net/doc/fb7374556.html,o and

B.tno =

C.tno and

A.sno in (

select sno

from student

where classno in(

select distinct classno

from teacher_course B,teacher C

where B.tno = C.tno and tname = '余孝天') )

group by https://www.360docs.net/doc/fb7374556.html,o

48).查询鲁婵娟老师所教课程的各个班级平均成绩

方法1

select classno,avg(score)

from student_course A ,student B

where A.sno = B.sno and

https://www.360docs.net/doc/fb7374556.html,o in (

select cno

from teacher_course

where tno in (

select tno

from teacher

where tname= '鲁婵娟')) and

B.classno in (

select distinct classno

from teacher_course A,teacher B

where A.tno = B.tno and tname= '鲁婵娟')

group by classno

方法2

select A.classno,avg(score)

from student A,student_course B,teacher_course C,teacher D where A.sno = B.sno and

https://www.360docs.net/doc/fb7374556.html,o =

https://www.360docs.net/doc/fb7374556.html,o and

C.tno =

D.tno and

tname = '鲁婵娟'

group by A.classno

having A.classno in (

select distinct classno

from teacher_course A,teacher B

where A.tno = B.tno and tname = '鲁婵娟' )

49).查询鲁婵娟老师所教课程的学生的成绩

方法1

select *

from student_course

where cno in (

select distinct cno

from teacher_course A,teacher B

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

简单数据库查询语句

数据查询语言(SELECT语句) 数据操纵语言(INSERT, UPDATE, DELETE语句) 数据定义语言(如CREATE, DROP等语句) 数据控制语言(如COMMIT, ROLLBACK等语句 超详细的SQL语句语法2008-07-11 14:25简单的Transact-SQL查询只包括选择列表、FROM 子句和WHERE子句 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email FROM testtable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出所查询列 它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行, 默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行, 而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable 9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

数据库中SQL查询语句习题含的答案

.word 版本可编辑. 查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.360docs.net/doc/fb7374556.html,o=‘C2’ AND https://www.360docs.net/doc/fb7374556.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.360docs.net/doc/fb7374556.html,o=https://www.360docs.net/doc/fb7374556.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.360docs.net/doc/fb7374556.html,o=https://www.360docs.net/doc/fb7374556.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。 17:查询选修了课程的学生人数。 18:计算选修了C1课程的学生平均成绩。

SQL查询语句大全集锦

SQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname 字段和email字段。 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺 序相同。

代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n 行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。

(SQLServer)考试试题及答案

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书 (SQL Server)考试试卷 第一大题:单选题(30 分) 1. (1分) 数据模型的三要素不包括()。 (A) 数据结构(B) 数据操作(C) 数据完整性约 束(D) 数据恢复 2. (1分) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 ()。 (A) 结构独立性(B) 物理独立性(C) 逻辑独立 性(D) 分布独立性 3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联 系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。 (A) 1:1联系(B) 1:n联系(C) n:m联 系(D) 多种联系 4. (1分) 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。 (A) 元组(B) 关键字(C) 记 录(D) 属性 5. (1分) 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. (1分) SQL语言查询一次的结果是一个()。 (A) 元组(B) 表(C) 属性(D) 数据

库 7. (1分) 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。 (A) 平凡函数依赖 (B) 部分函数依赖 (C) 完全 函数依赖 (D) 传递函数依赖 8 . (1分) 在Transact-SQL中,下列命令能让程序完全跳出循环的是( )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINU E 9 . (1 分) 在Transact-SQL中,下列选项不属于数值型数据类型的是( )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是( )。 (A) 张 _ (B) 张 % (C) 张 ^ (D) 张& 1 1. (1 分) 下列聚合函数中正确的是( )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) AVG (*) 12. (1 分) 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是( )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13 . (1 分 ) 在SQL的SELECT语句中,与投影运算对应的子句是( )。 (A) SELECT (B) FROM (C) WHERE (D) GROU P BY 14. (1 分) 在SQL语言中,给表起别名应使用( )。 (A) AS (B) RENAME (C) SET (D) FOR 15. (1分) 在SELECT语句中使用GROUP BY SNO时,SNO必须() 。 (A) 在WHERE中出现 (B) 在FROM中出现

数据库中SQL查询语句习题含的答案

查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.360docs.net/doc/fb7374556.html,o=‘C2’ AND https://www.360docs.net/doc/fb7374556.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 在表S 中找学生,要求这个学生学了全部课程。换言之,在S 表中找学生,在C 中不存在一门课程,这个学生没有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.360docs.net/doc/fb7374556.html,o=https://www.360docs.net/doc/fb7374556.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.360docs.net/doc/fb7374556.html,o=https://www.360docs.net/doc/fb7374556.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

SQLServer数据库期末复习试题试卷及答案

现有关系数据库如下: 数据库名:教学数据库(Teacher) 教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数) 一、用SQL语言实现下列功能 1. 创建数据库。 要求:数据库名为 Teacher,主数据文件名为 Teacher_data.MDF,存放在目录下,初始值大小为2MB增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存放在目录下,初始值大小为 1MB增长方式为按照1MB的增量增长。 2. 创建教师信息表Teacherinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Teacher_Id char 6 主键教师编号 Teacher_Name n varchar 8 不允许空姓名 Sex n char 2 检查(男/女)性别 Birth_Place n varchar 20 默认值(汉族)民族 Zhiche ng n varchar 20 不允许空职称 H Id char 16 唯一身份证号 3.创建课程信息表Course info,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Course_ld char 5 主键】田千口i=r. 课程 号 Course_Name n varchar 20 不允许空课程名 B Hours Int 检查(0~200) 标准课时数 4.创建任课信息表TCinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Id int 自动编号 Teacher_Id char 6 外键教师编号 Course_Id char 5 外键】田千口 i=r. 课程号S Hours Int 实际课时数 5. 将下列课程信息添加到课程表中: 课号课程名称课时数 30001 SQL Server 数据库 90 30002 数据结构60 30003 VB 程序设计72 修改课号为30003的课程名称:Visual Basic 程序设计。

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的就是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…、) 删除索引:drop index idxname 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

Sqlserver2005数据库练习题(1)

Sqlserver2005数据库练习题 第1章数据库技术基础 1.简述数据库、数据库管理系统、数据库系统的含义? 2.简述数据库、数据库管理系统、数据库系统之间的联系? 3.简单描述层次模型、网状模型、关系模型的含义? 4.简述一个学生都包含哪些属性? 5.对于一个学生表来说学生姓名是否可以作为主键,为什么? 6.描述你所在的班级都有哪些实体? 第2章安装Sql Server 2005与服务器管理 1.安装sqlserver 2005需要计算机的最低配置是什么? 2.x86操作系统是什么概念? 3.x64操作系统是什么概念? 4.安装数据库时应该选择什么样的操作系统? 5.开始安装时需要有哪些准备工作? 6.开始安装界面中的其他信息是什么意思? 7.用户许可协议必须为接受么? 8.用户许可协议是否可以打印? 9.系统配置界面中需要检查哪些项? 10.详细信息中哪些项要求必须安装成功才能进行下一步的操作? https://www.360docs.net/doc/fb7374556.html,+目录指的是什么? 12.iis功能要求指的是什么? 13.mdac版本的最低要求是什么? 14.实例名中的默认实例是什么含义? 15.实例名中的命名实例是什么含义? 16.服务器名指的是什么? 17.服务帐户中使用内置系统帐户是什么含义? 18.服务帐户中使用域帐户是什么含义? 19.安装结束时启动服务包括什么? 20.sqlserver2005提供的服务有哪些? 21.安装结束后,哪些服务要求必须启动? 22.ms sqlserver是什么服务? 23.sql server agent是什么服务? 24.sql server analysis services是什么服务? 25.sql server browser是什么服务? 26.如何对服务进行启动、暂停和停止操作? 27.启动数据库时需要做什么工作? 28.如何注册数据库? 29.如何删除注册的服务? 30.如何更改数据库的登陆模式?

学生选课数据库SQL语句练习题

一、设有一数据库,包括四个表:学生表(Student)、课程表 (Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 含义 属性名数据类型可否为 空 Sno Char(3)否学号(主 键) Sname Char(8)否学生姓名 Ssex Char(2)否学生性别 Sbirthday datetime可学生出生年 月 Class Char(5)可学生所在班 级 表(二)Course 含义 属性名数据类型可否为 空 Cno Char(5)否课程号(主 键) Cname Varchar(10)否课程名称 Tno Char(3)否教师编号 (外键) 表(三)Score 含义 属性名数据类型可否为 空 Sno Char(3)否学号(外 键) Cno Char(5)否课程号(外 键)

Degree Decimal(4,1)可成绩 主码:Sno+ Cno 表(四)Teacher 含义 属性名数据类型可否为 空 Tno Char(3)否教师编号 (主键)Tname Char(4)否教师姓名Tsex Char(2)否教师性别Tbirthday datetime可教师出生年 月 Prof Char(6)可职称Depart Varchar(10)否教师所在部 门 表1-2数据库中的数据 表(一)Student Sno Sname Ssex Sbirthday class 95033 108曾华男1977-09- 01 105匡明男1975-10- 95031 02 95033 107王丽女1976-01- 23 95033 101李军男1976-02- 20 109王芳女1975-02- 95031 10 95031 103陆君男1974-06- 03 表(二)Course

数据库SQL语句大全

SQL语句大全--语句功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征 --程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

相关文档
最新文档