文档库 最新最全的文档下载
当前位置:文档库 › 最新SQL练习题

最新SQL练习题

最新SQL练习题
最新SQL练习题

例题

1、写出一条Sql语句:取出表A中第31到第40记录(Mysql)

select * from A limit 30, 10

MS-SQLServer

解1:select top 10 * from A where id not in (select top 30 id from A)

解2:select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

解3:select * from (select *, Row_Number() OVER (ORDER BY id asc) rowid FROM A) as A where rowid between 31 and 40

Oracle

select *

from (select A.*,

row_number() over (order by id asc) rank

FROM A)

where rank >=31 AND rank<=40;

2、用一条SQL语句查询出每门课都大于80 分的学生姓名

name kecheng fenshu

张三语文81

张三数学75

李四语文76

李四数学90

王五语文81

王五数学100

王五英语90

A: select distinct name from table where name not in (select distinct name from tabl e where fenshu<=80)

select name from table group by name having min(fenshu)>80

3、学生表如下:

自动编号学号姓名课程编号课程名称分数

1 2005001 张三 0001 数学69

2 2005002 李四 0001 数学89

3 2005001 张三 0001 数学69

删除除了自动编号不同, 其他都相同的学生冗余信息

A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by学号, 姓名, 课程编号, 课程名称, 分数)

4、请用SQL 语句实现:

从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。

AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。

数据库名:JcyAudit ,数据集:Select * from TestDB

答:select a.*

from TestDB a

,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' gro up by Occmonth) b

where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur

5、一个叫team 的表,

里面只有一个字段name,一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合.

你先按你自己的想法做一下,看结果有我的这个简单吗?

select https://www.wendangku.net/doc/7017350086.html,, https://www.wendangku.net/doc/7017350086.html,

from team a, team b

where https://www.wendangku.net/doc/7017350086.html, < https://www.wendangku.net/doc/7017350086.html,

6、面试题:怎么把这样一个表儿

year month amount

1991 1 1.1

1991 2 1.2

1991 3 1.3

1991 4 1.4

1992 1 2.1

1992 2 2.2

1992 3 2.3

1992 4 2.4

查成这样一个结果

year m1 m2 m3 m4

1991 1.1 1.2 1.3 1.4

1992 2.1 2.2 2.3 2.4

答案一、

select year,

(select amount from aaa m where month=1 and m.year=aaa.year) as m1,

(select amount from aaa m where month=2 and m.year=aaa.year) as m2,

(select amount from aaa m where month=3 and m.year=aaa.year) as m3,

(select amount from aaa m where month=4 and m.year=aaa.year) as m4

from aaa group by year

7、说明:复制表( 只复制结构, 源表名:a新表名:b)

SQL: select * into b from a where 1<>1 (where1=1,拷贝表结构和数据内容)

Oracle:create table b

As

Select * from a where 1=2

[<>(不等于)(SQL Server Compact)

比较两个表达式。当使用此运算符比较非空表达式时,如果左操作数不等于右操作数,则结果为TRUE。否则,结果为FALSE。]

8、说明:拷贝表( 拷贝数据, 源表名:a目标表名:b)

SQL: insert into b(a, b, c) select d,e,f from a;

9、说明:显示文章、提交人和最后回复时间

SQL: select a.title,https://www.wendangku.net/doc/7017350086.html,ername,b.adddate from table a,(select max(adddate) adddate fr om table where table.title=a.title) b

10. 说明:外连接查询( 表名1 :a表名2 :b)

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUTER JOIN b ON a.a = b.c ORACLE:select a.a, a.b, a.c, b.c, b.d, b.f from a ,b

where a.a = b.c(+)

11.说明:日程安排提前五分钟提醒

SQL: select * from 日程安排 where datediff('minute',f 开始时间,getdate())>5

12. 说明:两张关联表,删除主表中已经在副表中没有的信息

SQL:

Delete from info where not exists (select * from infobz where info.infid=infobz.infid )

13.有两个表A和B ,均有key 和value 两个字段,如果B 的key 在

A 中也有,就把

B 的value 换为A 中对应的value

这道题的SQL 语句怎么写?

update b set b.value=(select a.value from a where a.key=b.key) where b.id in(select b.id from b,a where b.key=a.key);

高级sql 面试题

14.原表:

courseid coursename score

-------------------------------------

1 Java 70

2 oracle 90

3 xml 40

4 jsp 30

5 servlet 80

-------------------------------------

为了便于阅读, 查询此表后的结果显式如下( 及格分数为60):

courseid coursename score mark

---------------------------------------------------

1 Java 70 pass

2 oracle 90 pass

3 xml 40 fail

4 jsp 30 fail

5 servlet 80 pass

---------------------------------------------------

写出此查询语句

select courseid, coursename ,score ,decode(sign(score-60),-1,'fail','pass') as mark fro m course

(SQL:select courseid, coursename ,score ,(case when score<60 then 'fail' else 'pas s' end) as mark from course )

ORACLE : select courseid, coursename ,score ,decode(sign(score-60),-1,'fail','pass') as mark from course

(DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数)

完全正确

SQL> desc course_v

Name Null? Type

----------------------------------------- -------- ----------------------------

COURSEID NUMBER

COURSENAME VARCHAR2(10)

SCORE NUMBER

SQL> select * from course_v;

COURSEID COURSENAME SCORE

---------- ---------- ----------

1 java 70

2 oracle 90

3 xml 40

4 jsp 30

5 servlet 80

SQL> select courseid, coursename ,score ,decode(sign(score-60),-1,'fail','pass') as ma rk from course_v;

COURSEID COURSENAME SCORE MARK

---------- ---------- ---------- ----

1 java 70 pass

2 oracle 90 pass

3 xml 40 fail

4 jsp 30 fail

5 servlet 80 pass

15.SQL面试题(1)

create table testtable1

(

id int IDENTITY,

department varchar(12)

)

select * from testtable1

insert into testtable1 values('设计')

insert into testtable1 values('市场')

insert into testtable1 values('售后')

/*

结果

id department

1 设计

2 市场

3 售后

*/

create table testtable2

(

id int IDENTITY,

dptID int,

name varchar(12)

)

insert into testtable2 values(1,'张三')

insert into testtable2 values(1,'李四')

insert into testtable2 values(2,'王五')

insert into testtable2 values(3,'彭六')

insert into testtable2 values(4,'陈七')

/*

用一条SQL语句,怎么显示如下结果

id dptID department name

1 1 设计张三

2 1 设计李四

3 2 市场王五

4 3 售后彭六

5 4 黑人陈七

*/

答案:

SELECT testtable2.* , ISNULL(department,'黑人')

FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID

也做出来了可比这方法稍复杂。/

16.sql面试题(2)

有表A,结构如下:

A: p_ID p_Num s_id

1 10 01

1 1

2 02

2 8 01

3 11 01

3 8 03

其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。请用SQL语句实现将上表中的数据合并,合并后的数据为:

p_ID s1_id s2_id s3_id

1 10 1

2 0

2 8 0 0

3 11 0 8

其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量。如果该产品在某仓库中无库存量,那么就是0代替。

结果:

select p_id ,

sum(case when s_id=1 then p_num else 0 end) as s1_id

,sum(case when s_id=2 then p_num else 0 end) as s2_id

,sum(case when s_id=3 then p_num else 0 end) as s3_id

from myPro group by p_id

什么是相关子查询?如何使用这些查询?

经验更加丰富的开发人员将能够准确地描述这种类型的查询。

相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

19、为管理业务培训信息,建立3个表:

S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄

C(C#,CN)C#,CN分别代表课程编号,课程名称

SC(S#,C#,G) S#,C#,G分别代表学号,所选的课程编号,学习成绩

(1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名?

答案:select s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=’税收基础’)

(2) 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?

答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=’c2’

(3) 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位?

答:select sn,sd from s where s# not in(select s# from sc where c#=’c5’)

(4)查询选修了课程的学员人数

答:select 学员人数=count(distinct s#) from sc

(5) 查询选修课程超过5门的学员学号和所属单位?

答:select sn,sd from s where s# in(select s# from sc group by s# having count(disti nct c#)>5)

18、SQL面试题(4)

1. 查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的

查询语句如下:

select top 10 * from A where ID >(select max(ID) from (select top 30 ID from A order by A ) T) order by A

2.查询表A中存在ID重复三次以上的记录,完整的查询语句如下:

select * from(select count(ID) as count from table group by ID)T where T.count>3 简答题部分

1.触发器的作用?

答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

2。什么是存储过程?用什么来调用?

答:存储过程是一个预编译的SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL ,使用存储过程比单纯S QL 语句执行要快。可以用一个命令对象来调用存储过程。

3。索引的作用?和它的优点缺点是什么?

答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

3。什么是内存泄漏?

答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new 等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free 或者delete 释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。

4。维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么?

答:我是这样做的,尽可能使用约束,如check, 主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。

5。什么是事务?什么是锁?

答:事务就是被绑定在一起作为一个逻辑工作单元的SQL 语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACI D 测试,即原子性,一致性,隔离性和持久性。

锁:在所以的 DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

6。什么叫视图?游标是什么?

答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

SQL数据库面试题以及答案(50例题)

https://https://www.wendangku.net/doc/7017350086.html,/hundan_520520/article/details/54881208

Student(Sid,Sname,Sage,Ssex)学生表

Sid:学号

Sname:学生姓名

Sage:学生年龄

Ssex:学生性别

Course(Cid,Cname,T#)课程表

Cid:课程编号

Cname:课程名称

Tid:教师编号

SC(Sid,Cid,score)成绩表

Sid:学号

Cid:课程编号

score:成绩

Teacher(Tid,Tname)教师表

Tid:教师编号:

Tname:教师名字

问题:

1、查询“001”课程比“002”课程成绩高的所有学生的学号select a.sid from

(select sid,score from sc where cid='001')a,

(select sid,score from sc where cid='002')b

where a.sid = b.sid and a.score>b.score;

2、查询平均成绩大于60分的同学的学号和平均成绩select sid,avg(score) from sc

group by sid

having avg(score)>60;

3、查询所有同学的学号、姓名、选课数、总成绩select s.sid,s.sname,count_cid as选课数,

sum_score as总成绩

from student s

left join

(select sid,count(cid) as count_cid,sum(score) as sum_score from sc group by sid )sc

on s.sid = sc.sid;

4、查询姓‘李’的老师的个数:

select count(tname)

from teacher

where tname like'李%';

5、查询没有学过“叶平”老师可的同学的学号、姓名:select s.sid,s.sname

from student as s

where s.sid not in (

select DISTINCT sid

from sc as sc

where sc.cid in (

select cid

from course as c

left join teacher as t on c.tid = t.tid

where t.tname = '叶平')

);

6、查询学过“叶平”老师所教的所有课的同学的学号、姓名:select s.sid,s.sname

from student as s

where s.sid in (

select distinct sc.sid

from sc as sc

where sc.cid in (

select cid

from course as c

left join teacher as t on c.tid = t.tid

where t.tname = '叶平')

group by sc.sid

HAVING count(cid)=

(select count(cid)

from course as c left join teacher as t on c.tid = t.tid

where t.tname = '叶平')

);

7、查询学过“011”并且也学过编号“002”课程的同学的学号、姓名:SELECT s.sid,s.sname

from student as s

left join sc as sc on s.sid = sc.sid

where sc.cid = '001'

and EXISTS(

select * from sc as sc_2

where sc.sid = sc_2.sid

and sc_2.cid='002');

select s.sid,s.sname

from student as s

left join sc as sc

on sc.sid = s.sid

where sc.cid = '001'

and s.sid in (

select sid from sc as sc_2

where sc_2.cid='002'

and sc_2.sid = sc.sid);

8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的

学号、姓名:

select sid,sname

from (select student.sid,student.sname,score,

(select score from sc as sc_2

where sc_2.sid = student.sid

and sc_2.cid = '002') as score2

from student,sc

where student.sid=sc.sid and cid = '001') s_2

where score2

? 1

? 2

? 3

? 4

? 5

? 6

?7

?8 9、查询所有课程成绩小于60的同学的学号、姓名:

select sid,sname

from student

where sid not in

(select s.sid

from student s,sc

where s.sid=sc.sid and score>60 );

select sid,sname

from student s

where not EXISTS (

select s.sid from sc

where sc.sid = s.sid and sc.score>60);

10、查询没有学全所有课的同学的学号、姓名:

select s.sid,s.sname

from student s ,sc sc

where s.sid = sc.sid

group by s.sid,s.sname

having count(sc.cid)<(

select count(cid)

from course);

select s.sid,s.sname

from student s

right join sc sc on s.sid = sc.sid

group by s.sid,s.sname

having count(sc.cid)<

(select count(cid) from course);

11、查询至少有一门课与学号为“1001”同学所学相同的同学的学号和姓名:select student.sid,sname

from student,sc

where student.sid = sc.sid

and cid in

(select cid from sc where sid='1001');

select s.sid,s.sname

from sc sc left join student as s

on sc.sid = s.sid

where sc.cid in (select cid from sc where sid='1001');

select sc_1.sid,s.sname

from sc sc_1 left join student as s

on sc_1.sid = s.sid

where

exists (select sc_2.cid from sc as sc_2

where sc_1.cid = sc_2.cid

and sc_2.sid = '1001');

12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;

13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩:update sc set score =

(select avg(sc_2.score) from sc sc_2

where sc_2.cid = sc.cid)

sql练习题+答案

(一)新建以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间

cs(成绩表): 其中约束如下: (1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0~100之间,可以不输入值 course(课程表)

其约束如下: (1)课程号(cno)不能有重复的 (2)课程名(cname)非空 (三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。 (4)查全体学生的姓名及其出生年份。 (5)查询学校中有哪些系。

(6)查询选修了课程的学生学号。 (7)查询所有年龄在20岁以下的学生姓名及其年龄。 (8)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 (9)查询年龄不在20~23岁之间的学生姓名、系别和年龄。 (10)查询信息系、数学系和计算机科学系生的姓名和性别。 (11)查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 (12)查询所有姓刘学生的姓名、学号和性别。

(13)查询学号为2009011的学生的详细情况。(具体的学号值根据表中数据确定) (14)查询姓“欧阳”且全名为三个汉字的学生姓名 (15)查询名字中第2个字为“晨”字的学生的姓名和学号 (16)查询所有不姓刘的学生姓名。 (17)查询sql课程的课程号和学分。 (18)查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。 (19)查询缺少成绩的学生的学号和相应的课程号。

SQL 操作练习题

SQL Server(三级)操作练习题 1数据库运行监控 1.1使用SQL语句实现DMV查询,查找当前挂起的I/O 请求,将结果保存在 “c:\gatDoc\SQL3J2.1.1\2.1.1.doc”文档中。(提示:查询数据库master中的系统 视图sys.dm_io_pending_io_requests和系统函数 sys.dm_io_virtual_file_stats) 1.2以SA身份登录数据库,在Master数据库上执行SQL语句:Select * from sysobjects 。利用SQL Server Manangement Studio监控数据库服务器,观察每个 登录用户在数据库执行的命令,请在“c:\gatDoc\SQL3J2.1.1\2.1.1.doc”文档内写 出操作步骤,并在该文档内将下列操作界面截屏后保存:阅读进程信息,sa执行 的命令。(提示:启动活动监视器) 1.3打开SQL Server Profiler,建立跟踪,对数据库活动进行监视,同时打开性能监视 器,利用SQL Server: Memory对象监视数据库的一般活动,运行3分钟后,观察 重合时段内SQL Serve的活动和上述性能计数器的值,请在“2.1.1.doc”文档内 写出操作步骤,并在该文档内将下列三个操作界面截屏后依次保存: 1)在SQL Server Profiler中新建跟踪mytrace。 2)在性能监视器中新建SQL Server: Memory计数器。 3)在SQL Server Profiler中查看指定性能计数器的情况。 2数据库备份计划 2.1利用维护计划功能,设置每天1:00自动执行增量备份(差异备份)数据库model 到文件夹C:\Backup,并将操作步骤写在c:\gatDoc\SQL3J2.2.1\2.2.1.doc文档里面, 将下面两个操作界面截屏后依次保存在同一个文档里: 1)设置备份数据库任务的界面 2)维护计划设置完成的界面 2.2利用SQL Server Agent功能(作业功能),创建作业job1,设置每天4:00完成 以下步骤:先删除备份文件c:\gatDoc\SQL3J2.2.1\model.bak,然后对数据库model 进行完全备份,保存为c:\gatDoc\SQL3J2.2.1\model.bak,请在2.2.1.doc文档里写 出操作步骤,并将下面三个操作界面截屏后依次保存:

SQL复习题答案

SQL Server数据库应用管理-习题集 说明:本习题集所涉及的数据库,名为Student,其数据表有3个,分别是学生(学号,,性别,年龄),课程(课号,课名,学分),选修(学号,课号,成绩)。 一、单项选择题 1.下列属于SQL Server系统数据库的是。 A.master B.Sysbase C.student D.Database 2.SQL Server中,数据库主数据文件扩展名为。 A.ldf B.mdf C.ndf D.dbf 3.SQL Server中,索引类型按结构划分,包括。 A.聚集索引和非聚集索引B.主索引和次索引C.单索引和复合索引D.索引和外索引4.SQL Server的数据定义语句是。定义:创建 A.CREATE,DROP,ALTER B.INSERT,UPDATE,DELETE C.SELECT,DELETE,UPDATE D.CREATE,GRANT,INSERT 5.下面的描述正确的是。 A.每个数据文件中可以有多个主数据文件 B.只允许有一个次数据文件。 C.一个数据库有主数据库文件即可。 D.一个数据库至少由一个主数据文件和一个日志文件组成。 6.下面字符串能与通配符表达式 ABC%a 进行匹配的是。 A. BCDEF B.A_BCD C. ABCDa D. ACBDE 7.下列属于数据库管理系统的是。 A.SQL Server 2005 B.Excel

C.Windows 2000 D.IE6 8.实体完整性要求主属性不能取空值,这一点通常是通过实现。A.定义外部键来保证 B.定义主键来保证 C.用户定义的完整性来保证 D.关系系统自动保证 9.SQL Server的数据操纵命令是。 A.SELECT,INSERT,UPDATE,DELETE B.CREATE,INSERT,UPDATE,DELETE C.GRANT,CREATE,REVOKE D.SELECT,CREATE,DROP,ALTER 10.下面的描述错误的是。 A. 每个数据文件中有且只有一个主数据文件 B.可以有多个次数据文件。 C.一个数据库有主数据库文件即可。 D.一个数据库至少由主数据文件和日志文件组成。 11.对于查询语句的结果,有时会出现重复的数据行,可以使用以下哪个关键字可消去重复记录行。 A. Only B. Select C. Distinct D. Order by 12.下列说法中正确的是。 A.SQL 中局部变量可以不声明就使用 B.SQL 中全局变量必须先声明再使用 C.SQL 中所有变量都必须先声明后使用 D.SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。 13.下面对索引的相关描述正确的是:。 A. 经常被查询的列不适合建索引。

SQLServer综合练习题

SQL Server综合练习题 说明: 请在做题前找到随题文件北风贸易.mdf和北风贸易.ldf,附加数据库并指定数据库名为“w+学号最后两位+姓名”,如“w23张三”,以下所有的操作均完成在这个数据库中,请严格按照题目要求答题,包括字段次序。 一、基础设计(共40分) 业务介绍: ●Sporting Goods是一家美国批发公司,接收来自世界范围内的运动产品零售商店的定单。 该公司的客户遍布国内外,每一个客户都有一个唯一标识号。 ●公司必须保存有客户的商店名称和电话号码、地址、所在城市、州、国家、邮政编码、 信誉等级以及对客户喜好的总体评论。 ●公司需跟踪每一份定单的标识号、订货日期及付款方式。 ●客户所在区域有唯一的名称及标识号。 ●每个区域有一个仓库,仓库具有唯一的标识号及其它信息,包括地址、城市、州、、国 家、邮政编码、经理ID及电话号码等。 ●库存中每一件商品具有唯一的标识号,还必须跟踪产品价格、订购的数量及已发送的数 量。 ●公司对每一种产品,必须知道它唯一的产品标识号及名称。 ●公司有一些雇员或销售代表被派往多个地区,对每一雇员,公司备有其姓、名、唯一的 标识号及计算机登录ID,其他信息包括该雇员进入公司的时间、评语、职务、工资及佣金百分率。 ●对每一个仓库及它存储的产品,公司货单记录有每个产品的存储量、再订货点等。 1) 建立下列9张表 (1)s_customer表(描述客户信息) 列名描述/数据类型 ID Name Phone Address City State County Zip_code Credit_rating Sales_rep_id Region_id comments 客户唯一的标识号,最长3字符 客户名,最长20字符 客户的电话号码,最长20字符 客户地址,最长20字符 客户所在城市,最长20字符 客户居住地所在州,最长15字符 客户居住的国家,最长20字符 客户的邮政编码,最长15字符 客户的信誉等级,最长9字符 客户的销售代表,最长3字符 客户居住的国家所在的区域,最长3字符客户喜好的产品,最长255字符

sql查询练习题含答案

--(1)查询20号部门的所有员工信息。 select * from emp e where e.deptno=20; --(2)查询奖金(COMM)高于工资(SAL)的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20%的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER和CLERK, --且工资大于或等于2000的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.wendangku.net/doc/7017350086.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --(10)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --(11)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序, --若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12)查询在2月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。 select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e; --(14)查询从事同一种工作但不属于同一部门的员工信息。

数据库sql练习题

use test /* 问题及描述: --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数 select * from Student select * from Course select * from Teacher select * from SC */ --创建测试数据 create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01', N'赵雷','1990-01-01', N'男') insert into Student values('02', N'钱电','1990-12-21', N'男') insert into Student values('03', N'孙风','1990-05-20', N'男') insert into Student values('04', N'李云','1990-08-06', N'男') insert into Student values('05', N'周梅','1991-12-01', N'女') insert into Student values('06', N'吴兰','1992-03-01', N'女') insert into Student values('07', N'郑竹','1989-07-01', N'女') insert into Student values('08', N'王菊','1990-01-20', N'女') create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01', N'语文','02') insert into Course values('02', N'数学','01') insert into Course values('03', N'英语','03') create table Teacher(T# varchar(10),Tname nvarchar(10)) insert into Teacher values('01', N'张三') insert into Teacher values('02', N'李四') insert into Teacher values('03', N'王五') create table SC(S# varchar(10),C# varchar(10),score decimal(18,1)) insert into SC values('01','01', 80) insert into SC values('01','02', 90) insert into SC values('01','03', 99) insert into SC values('02','01', 70) insert into SC values('02','02', 60) insert into SC values('02','03', 80)

SQL SERVER练习题及答案学习资料

S Q L S E R V E R练习题 及答案

题目1: 问题描述: 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩 1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名--实现代码: SELECT SN,SD FROM S WHERE [S#] IN( SELECT [S#] FROM C,SC WHERE C.[C#]=SC.[C#] AND CN=N\'税收基础\') 2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位 --实现代码: SELECT S.SN,S.SD FROM S,SC WHERE S.[S#]=SC.[S#] AND SC.[C#]=\'C2\' 3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位--实现代码: SELECT SN,SD FROM S WHERE [S#] NOT IN( SELECT [S#] FROM SC WHERE [C#]=\'C5\') 4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位 --实现代码: SELECT SN,SD FROM S

WHERE [S#] IN( SELECT [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] GROUP BY [S#] HAVING COUNT(*)=COUNT([S#])) 5. 查询选修了课程的学员人数 --实现代码: SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC 6. 查询选修课程超过5门的学员学号和所属单位 --实现代码: SELECT SN,SD FROM S WHERE [S#] IN( SELECT [S#] FROM SC GROUP BY [S#] HAVING COUNT(DISTINCT [C#])>5) 题目2 问题描述: 本题用到下面三个关系表: CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期 备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。 要求实现如下15个处理: 1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库 School ,其各自的数据结构如下:学生 Student (Sno,Sname,Ssex,Sage,Sdept) 课程表 course(Cno,Cname,Cpno,Ccredit) 学生选课 SC(Sno,Cno,Grade) 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句create table student (sno char(6), sname varchar(8), ssex char(2), sage smallint, sdept varchar(15), primary key(sno)); Create table course( Cno char(4) primary key, Cname varchar(20), Cpno char(4),

Ccredit tinyint) create table sc (sno char(6), cno char(4), grade decimal(12,2), primary key(sno,cno)); c 2 insert into student values( ’4001’,’赵茵’,’男’,20,’SX’) insert into student values( ’4002’,’杨华’,’女’,21,’JXJ’) Delete 1 删除所有 JSJ 系的男生 delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改 0001 学生的系科为: JSJ Update student set sdept=’JSJ’ where sno=’0001’ 2 把陈小明的年龄加1岁,性别改为女。 Update student set age=age+1,ssex=’女’ where sname=’陈小明’ Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 select sno, sname, sage from student where ssex=’女’ and sage between 19 and 21 order by sage desc; 2查询姓名中第2个字为“明”字的学生学号、性别。 select sno, ssex from student where sname like ’_明% ’ ; 3查询 1001课程没有成绩的学生学号、课程号

vfp6SQL练习题

SQL综合练习题一 一、单项选择题 1.下列说法正确的是()。 A)SQL 语言不能直接以命令方式交互使用,而只能嵌入到程序设计语言中以程序方式使用 B)SQL 语言只能直接以命令方式交互使用,而不能嵌入到程序设计语言中以程序方式使用 C)SQL 语言不可以直接以命令方式交互使用,也不可以嵌入到程序设计语言中以程序方式使用,是在一种特殊的环境下使用的语言D)SQL 语言既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用 2.SQL 语言具有()的功能。 A)关系规范化,数据操纵,数据控制 B)数据定义,数据操纵,数据控制 C)数据定义,关系规范化,数据控制 D)关系规范化,数据操纵,数据查询 3.SQL 语言中使用最多的功能是()。 A)数据查询 B)数据修改 C)数据定义 D)数据控制 4.SQL 语句中,Select 命令的分组操作配套使用的条件短语应使用()引导。 A)Where B)like C)Having D)In 5.Sql 语句中删除表中记录的语句是()。 A)Drop B)Erase C)Cancle D)Delete 6.用SQL 语句建立表时为属性定义主索引,应在SQL 语句中使用短语()。 A)Default B)Primary Key C)Check D)Unique 7.SQL 语句的where短语中可以使用通配符是()。 A)* B)? C)% D)— 8.SQL 语句中条件短语的关键字是()。 A)Where B)For C)While D)as 9.SQL 中可以使用的通配符有()。 A)* B)% C)_ D)B 项和c 项 10.SQL 的数据操纵语句不包括()。 A)Insert B)Delete C)Update D)Change 11.字符串匹配运算符是()。 A)Like B)And C)In D)= 12.将查询结果放在数组中应使用()短语。 A)Into Cursor B)To Array C)Into Table D)Into Array 13.SQL 实现分组查询的短语是()。 A)Order By B)Group By C)Having D)Asc 14.用Sql 语句建立表时为属性定义有效性规则,应使用短语是()。 A)Default B)Primary Key C)Check D)Unique 15.书写SQL 语句,若语句要占用多行,在行的末尾要加续行符()。 A): B); C), D)” 16.用于更新表中数据的SQL 语句是()。

SQl练习题及答案

18、假设使用如下命令建立了一个grade表: create table grade(low number(3,0),upp number(3),rank char(1)); insert into grade values(90,100,’A’); insert into grade values(80,89,’B’); insert into grade values(70,79,’C’); insert into grade values(60,69,’D’); insert into g rade values(0,59,’E’); commit; 现查询所有同学的Sno、Cno和rank列。 19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。 31、查询所有教师和同学的name、sex和birthday. 32、查询所有“女”教师和“女”同学的name、sex和birthday. 33、查询成绩比该课程平均成绩低的同学的成绩表。 34、查询所有任课教师的Tname和Depart. 35 查询所有未讲课的教师的Tname和Depart. 36、查询至少有2名男生的班号。 37、查询Student表中不姓“王”的同学记录。 38、查询Student表中每个学生的姓名和年龄。 39、查询Student表中最大和最小的Sbirthday日期值。 40、以班号和年龄从大到小的顺序查询Student表中的全部记录。 41、查询“男”教师及其所上的课程。 42、查询最高分同学的Sno、Cno和Degree列。 43、查询和“李军”同性别的所有同学的Sname. 44、查询和“李军”同性别并同班的同学Sname. 45、查询所有选修“计算机导论”课程的“男”同学的成绩表 参考答案 查询‘3-105’号课程的平均分。 11、select avg(degree)as 课程平均分 from score where cno='3-105'; 查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。 12、select cno,avg(degree) from score where cno like'3%'group by cno having count(*) >5; 查询最低分大于70,最高分小于90的Sno列。 13、select Sno from score group by Sno having min(degree)>70 and max(degree)<90; 查询所有学生的Sname、Cno和Degree列。 14、select student.Sname,https://www.wendangku.net/doc/7017350086.html,o,score.degree from student,score where student.Sno=score.Sno; 查询所有学生的Sno、Cname和Degree列。 15、select x.Sno,https://www.wendangku.net/doc/7017350086.html,ame,x.degree from score x,course y where https://www.wendangku.net/doc/7017350086.html,o=https://www.wendangku.net/doc/7017350086.html,o;

Oracle的sql语句练习题含复习资料

Oracle的sql语句练习题含答案(二)Oracle_SQL练习题1 1.选择部门30中的所有员工. 2.列出所有办事员(CLERK)的姓名,编号和部门编号. 3.找出佣金高于薪金的员工. 4.找出佣金高于薪金的60%的员工. 5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料. 6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料. 7.找出收取佣金的员工的不同工作. 8.找出不收取佣金或收取的佣金低于100的员工. 9.找出各月倒数第3天受雇的所有员工. 10.找出早于12年前受雇的员工. 11.以首字母大写的方式显示所有员工的姓名. 12.显示正好为5个字符的员工的姓名. 13.显示不带有"R"的员工的姓名. 14.显示所有员工姓名的前三个字符. 15.显示所有员工的姓名,用a替换所有"A" 16.显示满10年服务年限的员工的姓名和受雇日期. 17.显示员工的详细资料,按姓名排序. 18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面. 19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序. 20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面. 21.显示在一个月为30天的情况所有员工的日薪金,忽略余数. 22.找出在(任何年份的)2月受聘的所有员工。 23.对于每个员工,显示其加入公司的天数. 24.显示姓名字段的任何位置包含"A"的所有员工的姓名. 25.以年月日的方式显示所有员工的服务年限. 答案: 1.select ename,job,mgr,hiredate,sal,comm ,deptno from emp where deptno=30; 2.select ename,empno,deptno from emp where job='CLERK'; 3.select * from emp where comm>sal; 4.select * from emp where comm>sal*0.6; 5.select empno ,ename, job,hiredate,sal,comm,deptno from emp where( job='MANAGER' and deptno=10) or( job='CLERK' and deptno=20); 6.select empno,ename,job, hiredate,sal, deptno from emp where ( job='MANAGER' and deptno=10) or( job='CLERK' and deptno=20) or((job <>'MANAGER' and job<>'CLERK') and sal>=2000);

sql练习题+答案

(一) 新建以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间 create table student (

age smallint constraint d check (age between 0

cs(成绩表): 其中约束如下: (1)sno和cno分别参照student和course表中的sno,cno的字段 (2)cj(成绩)只能在0?100之间,可以不输入值 create table cs ( sno smallint not null references student ( sno ), ----定义成外键 cno smallint not null references course ( cno ), ----定义成外键 cj smallint constraint e check (cj between 0 and 100 ),---- 检查约束一—j(成绩)只能在~100 之间,可以不输入值 constraint f primary key ( sno , cno )---- 定 义学生学号和课程号为sc表的主键 ) course(课程表)

其约束如下: (1)课程号(cno)不能有重复的 (2)课程名(cname非空 (三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 Select sno , sname from student (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。 select * from student (4)查全体学生的姓名及其出生年份。 select sname , birth from student (5)查询学校中有哪些系。

SQL Server 基础练习题及答案

SQL Server 基础练习题及答案 【幻天火焰】 目录 一、单表查询练习 (1) 二、聚合函数练习 (3) 三、分组查询练习 (3) 四、嵌套查询练习 (4) 五、联接查询练习 (6) 六、外联接查询 (7) 七、补充提高 (7) 一、单表查询练习 1、查询<学生信息表>,查询学生"张三"的全部基本信息 Select * from A_studentinfo where sname='张三' 2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息 Select * from A_studentinfo where sname='张三' or sname='李四' 3、查询<学生信息表>,查询姓"张"学生的基本信息 Select * from A_studentinfo where sname like '张%' 4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息 Select * from A_studentinfo where sname like '%四%' 5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。 select * from A_studentinfo where sname like '李_强'

6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。 Select * from A_studentinfo where sname like '张%' or sname like '李%' 7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息 Select * from A_studentinfo where sname like '张%' and province='北京' 8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息 Select * from A_studentinfo where province in ('北京','上海','新疆','山东') 9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息 Select * from A_studentinfo where sname like '张%' and province !='北京' 10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序 select * from A_studentinfo order by sex,province,class 11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份 select distinct province as 省份 from A_studentinfo 12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩 Select * from A_studentcourse where score is null 13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序 Select * from A_studentcourse where score is not null order by score desc

SQL练习答案

1.实训题 根据人力资源管理系统数据库中数据信息,完成下列操作。 (1)查询100号部门的所有员工信息。 Selsect * from employees where department_id = 100(2)查询所有职位编号为“SA_MAN”的员工的员工号、员工名和部门号。 Select employee_id,first_name,last_name,department_id from employees where job_id= ‘SA_MAN’ (3)查询每个员工的员工号、工资、奖金以及工资与奖金的和。 Select employee_id,salary,commission_pct, salary*(1+nvl(commission_pct,0) from employees (4)查询40号部门中职位编号为“AD_ASST”和20号部门中职位编号为“SA_REP”的员工的信息。 Select * from employees where department_id=40 and job_id=’ AD_ASST’ OR department_id=20 and job_id=’ SA_REP’; (5)查询所有职位名称不是“Stock Manager”和“Purchasing Manager”,且工资大于或等于2000的员工的详细信息。 Select * from employees where job_id not in(’ Stock Manager’,’ Purchasing Manager’) and salary>=2000

(6)查询有奖金的员工的不同职位编号和名称。 Select distinct job_id, job_title from jobs where job_id in (select job_id from employees where job_id is not null)(7)查询没有奖金或奖金低于100元的员工信息。 Select * from employees where salary*commission_pct<100 or commission is NULL (8)查询员工名(first_name)中不包含字母“S”的员工。Select first_name from employees where first_name not like ‘%S%’ (9)查询员工的姓名和入职日期,并按入职日期从先到后进行排序。 Select first_name,last_name,hire_date from employees order by hire_date; (10)显示所有员工的姓名、职位、工资和奖金,按职位降序排序,若职位相同则按工资升序排序。 Select first_name,last_name,job_id,salary ,salary*commission_pet from employees order by job_id desc ,salary asc; (11)查询所有员工的姓名及其直接上级的姓名。 Select , from employees a join employees b on = (12)查询入职日期早于其直接上级领导的所有员工信息。

SQL-Server2012综合练习题2

SQL Server练习题2 一.建库建表: 1.向数据库CPXS中的产品表CP加入数据。 产品表CP CPBH CPMC JG KCL 100001 彩色电视机3000.0 10 100002 洗衣机1200.0 20 100003 冰箱1800.0 12 100004 电热水器2000.0 30 100005 太阳能热水器2200.0 8 100006 1匹空调1800.0 5 100007 1.5匹空调2400.0 20 100008 2匹空调3800.0 6 100009 音响3500.0 3 100010 台式计算机6000.0 5 100011 MP3 300.0 10 100012 复读机200.0 20 2.向数据库CPXS中的销售商表XSS加入数据。 销售商表XSS XSBH XSMC DQ FZR DH BZ 000001 广电公司南京张建025111111 NULL 000002 家电市场无锡李思成051022222 NULL

000003 电器商场上海王京平021333333 NULL 000004 小家电市场南京赵雅如025666666 NULL 3.向数据库CPXS中的销售商表XSS加入数据。 产品销售表XSCP CPBH XSBH XSSJ SL JE 100001 000001 2009-03-10 1 3000.0 100001 000003 2009-05-20 2 6000.0 100002 000001 2009-03-12 1 1200.0 100002 000002 2009-02-22 2 2400.0 100002 000003 2009-05-29 3 3600.0 100011 000004 2009-06-01 5 1000.0 二.修改记录 1. 修改CP表的记录: 100006 1匹空调1500.0 5 100012 复读机200.0 15 2. 修改销售商表XSS的记录: 000001 广电公司南京张建025118888 NULL 3. 修改产品销售表XSCP的记录: 100001 000003 2009-05-21 2 6000.0 4. 将CP表的所有商品价格增加100。 三. 删除表中的记录和清表 1. 删除CP表中产品编号为100008的记录;

SQL语言练习题和答案.doc

第三章SQL 语言 一、选择题 1. SQL 语言是( B )的语言,容易学习。 A. 过程化 B.非过程化 C. 格式化 D.导航式 2. SQL语言的数据操纵语句包括 SELECT、INSERT、UPDATE、DELETE等。其中最重要 的,也是使用最频繁的语句是( A)。 A. SELECT B. INSERT C. UPDATE D. DELETE 3.在视图上不能完成的操作是()。 A. 更新视图 B.查询 C. 在视图上定义新的表 D.在视图上定义新的视图 CREATE、 4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中, DROP、 ALTER语句是实现哪种功能()。 A. 数据查询 B.数据操纵 C. 数据定义 D. 数据控制 5. SQL 语言中,删除一个视图的命令是()。 6.在 SQL语言中的视图 VIEW是数据库的()。 7.下列的 SQL语句中,()不是数据定义语句。 8.若要撤销数据库中已经存在的表S,可用()。 9.若要在基本表 S 中增加一列 CN(课程名),可用()。 TABLE S( CN CHAR(8)) TABLE S ALTER( CN CHAR(8)) TABLE S ADD(CN CHAR(8)) TABLE S ( ADD CN CHAR(8)) 10.学生关系模式 S( S #,Sname,Sex,Age),S 的属性分别表示学生的学号、姓名、 性别、年龄。要在表S 中删除一个属性“年龄”,可选用的SQL语句是()。 A. DELETE Age from S B. ALTER TABLE S DROP Age C. UPDATE S Age D. ALTER TABLE S ‘Age’ 11.有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S #是学生号, SNAME是学生姓名, SAGE是学生年龄,C #是课程号, CNAME是课程名称。要 查询选修“ ACCESS”课的年龄不小于20 的全体学生姓名的SQL语句是 SELECTSNAMEFROMS,C, SC WHERE子句。这里的WHERE子句的内容是()。

相关文档