SQL语句练习题

SQL语句强化练习题及答案

一、简单查询

1、列出全部学生的信息。

SELECT * FROM 学生

2、列出软件专业全部学生的学号及姓名。

SELECT 学号,姓名 FROM 学生 WHERE 专业="软件"

3、列出所有必修课的课号。

SELECT DISTINCT 课号 FROM 必修课

4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。

SELECT 学号,成绩 FROM 选课 WHERE 课号="1" AND 成绩>80 ORDER BY 成绩 DESC

5、列出非软件专业学生的名单。

方法一:SELECT 姓名 FROM 学生 WHERE 专业<>"软件"

方法二:SELECT 姓名 FROM 学生 WHERE NOT 专业="软件"

方法三:SELECT 姓名 FROM 学生 WHERE 专业!="软件"

6、查询成绩在70~80分之间的学生选课得分情况

方法一:SELECT * FROM 选课 WHERE 成绩>=70 AND 成绩<=80

方法二:SELECT * FROM 选课 WHERE 成绩 BETWEEN 70 AND 80

不在此范围内的查询:(注意写出和以下语句等价的语句)

SELECT * FROM 选课 WHERE 成绩 NOT BETWEEN 70 AND 80

7、列出选修1号课或3号课的全体学生的学号和成绩。

方法一:SELECT 学号,成绩 FROM 选课 WHERE 课号="1" OR 课号="3"

方法二:SELECT 学号,成绩 FROM 选课 WHERE 课号 IN ("1","3")

相反条件查询:SELECT 学号,成绩 FROM 选课 WHERE 课号 NOT IN ("1","3")

8、列出所有98级学生的学生成绩情况。

SELECT * FROM 选课 WHERE 学号 LIKE "98%"

SELECT * FROM 选课 WHERE 学号 LIKE "98_ _ _ _"

相反条件查询:SELECT * FROM 选课 WHERE 学号 NOT LIKE "98%"

9、列出成绩为空值(或不为空值)的学生的学号和课号。

答案一:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NULL

答案二:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NOT NULL

10、求出所有学生的总成绩。

SELECT SUM(成绩) AS 总成绩 FROM 选课

11、列出每个学生的平均成绩。

SELECT 学号,AVG(成绩) AS 平均成绩 FROM 选课 GROUP BY 学号

12、列出各科的平均成绩、最高成绩、最低成绩和选课人数。

SELECT 课号,AVG(成绩) AS 平均成绩,MAX(成绩) AS 最高分,;

MIN(成绩) AS 最低分,COUNT(学号) AS 选课人数 FROM 选课 GROUP BY 课号

二、连接查询

(一)简单连接

1、列出选修1号课的学生姓名及成绩。

SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号="1"

2、列出选修1号课的学生的学号、姓名及成绩。

SELECT 学生.学号,姓名,成绩 FROM 学生 S,选课 X WHERE S.学号=X.学号 AND 课号="1"

3、求出总分大于150的学生的学号、姓名及总成绩。

SELECT 学生.学号,姓名,SUM(成绩) AS 总成绩 FROM 学生,选课;

WHERE 学生.学号=选课.学号 GROUP BY 选课.学号 HAVING SUM(成绩)>150

(二)自连接查询

1、列出那些专业相同的学生相应的姓名及专业信息。

SELECT a.姓名,b.姓名,专业 FROM 学生 a,学生 b WHERE a.学号<>b.学号 AND a.专业=b.专业

2、求至少选修1号课和2号课的学生的学号。

SELECT X.学号 FROM 选课 X,选课 Y WHERE X.学号=Y.学号 AND X.课号="1" AND Y.课号="2"

3、有以下表rate.dbf

    币种1代码 C(2)、币种2代码 C(2)、买入价 N(8,4)、卖出价 N(8,4)

外汇汇率.dbf

    币种1 C(4)、币种2 C(4)、买入价 N(8,4)、卖出价 N(8,4)

外汇代码.dbf

    外汇名称 C(10)、外汇代码 C(10)

要求:将所有“外汇汇率”表中的数据插入rate表中并且顺序不变,由于“外汇汇率”中的币种1和币种2存放的是外币名称,而rate表中的币种1代码和币种2代码应该存放外币代码,所以插入时要做相应的改动,外币名称与外向代码的对应关系存储在“外汇代码”表中。

SELECT A.外币代码 AS 币种1代码,B.外币代码 AS 币种2代码,;

买入价,卖出价 FROM 外汇代码 A,外汇汇率,外汇代码 B;

WHERE A.外币名称=外汇汇率.币种1 AND B.外币名称=外汇汇率.币种2 INTO TABLE rate

4、假定有“雇员”表(雇员号 C(2),雇员姓名 C(6),经理号 C(2)),根据雇员关系列出上一级经理及其所领导的职员清单。(教案中的例题)

SELECT "领导",S.雇员姓名,"雇员",E.雇员姓名 FROM 雇员 S,雇员 E WHERE S.雇员号=E.经理

(三)超连接

1、列出选修1号课的学生姓名及成绩。

方法一:(使用简单连接查询格式)

SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号="1"

方法二:(使用内部连接格式)

SELECT 姓名,成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号="1"

方法三:内部连接的INNER短语可以省略。(与方法二等价)

SELECT 姓名,成绩 FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号="1"

2、查询订货管理数据库中数据的仓库号、城市、供应商名和地址信息。

方法一:使用简单连接格式。

SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商,订购单,职工,仓库;

WHERE 供应商.供应商号=订购单.供应商号 AND订购单.职工号=职工.职工号 ;

AND 职工.仓库号=仓库.仓库号

方法二:使用超连接的内部连接格式。(注意连接条件的顺序)

SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商 JOIN 订购单 JOIN 职工 JOIN 仓库 ;

ON 职工.仓库号=仓库.仓库号 ON 订购单.职工号=职工.职工号 ON 供应商.供应商号=订购单.供应商号

3、查询没有选修任何课程的学生姓名。

方法一:使用嵌套查询

SELECT 姓名 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 选课)

方法二:使用超连接的右连接。

SELECT 姓名 FROM 选课 RIGHT JOIN 学生 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号

方法三:使用超连接的左连接。(注意表名顺序和方法二的不同)

SELECT 姓名 FROM 学生 LEFT JOIN 选课 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号

三、嵌套查询

(一)普通嵌套与谓词EXISTS

1、列出选修汇编语言课的学生的学号。

方法一:

SELECT 学号 FROM 选课 WHERE 课号=(SELECT 课号 FROM 课程 WHERE 课名="汇编语言")

方法二:使用谓词EXISTS。注意和方法一格式上的不同。

SELECT 学号 FROM 选课 WHERE EXIST (SELECT * FROM 课程 ;

WHERE 课名="汇编语言" AND 选课.课号=课程.课号)

2、求软件专业所有必修课的课程信息。

方法一:

SELECT * FROM 课程 WHERE 课号 IN; (SELECT 课号 FROM 必修课 WHERE 必修专业="软件")

方法二:

SELECT * FROM 课程 WHERE EXIST (SELECT * FROM 必修课 WHERE 必修专业="软件" ;

AND 课程.课号=必修课.课号)

(二)量词ANY、SOME、ALL

1、求选修2号课的学生中,成绩比选修1号课的最低成绩要高的学生的学号和成绩。

方法一:

SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>;

(SELECT MIN(成绩) FROM 选课 WHERE 课号="1")

方法二:ANY等价于SOME,所以可将ANY换成SOME。

SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>ANY ;

(SELECT 成绩 FROM 选课 WHERE 课号="1")

2、求选修2号课的学生中,成绩比选修1号课的任何学生的成绩都要高的那些学生的学号和成绩。

方法一:

SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>;

(SELECT MAX(成绩) FROM 选课 WHERE 课号="1")

方法二:

SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>ALL ;

(SELECT 成绩 FROM 选课 WHERE 课号="1")

(三)内外层互相关嵌套(外层依赖于内层的查询结果,内层依赖于外层来进一步查询)

1、列出每门课程中成绩最高的选课信息。

SELECT * FROM 选课 A WHERE 成绩=(SELECT MAX(成绩) FROM 选课 B WHERE A.课号=B.课号)

2、列出每个学生中成绩低于本人平均成绩的选课信息。

SELECT * FROM 选课 A WHERE 成绩<(SELECT AVG(成绩) FROM 选课 B WHERE A.学号=B.学号)

3、列出表“订购单2.dbf”(其内容就是在订购单表的基础上增加一个总金额字段)中每个职工经手的具有最高总金额的订购单信息。(教案中例题)

SELECT out.职工号,out.供应商号,out.订货单号,out.订货日期,out.总金额;

FROM 订购单 out WHERE 总金额=(SELECT MAX(总金额) FROM 订购单 inner1;

Where out.职工号=inner1.职工号)

四、操作功能

1、在课程表中插入新的元组(5,大学英语)。

INSERT INTO 课程(课号,课名) VALUES("5","大学英语")

2、给学生表中男生的记录加上删除标记。

DELETE FROM 学生 WHERE 性别="男"

3、将选课表中所有课程的成绩分别提高5分。将课号为“4”的课程的成绩置为空值。

UPDATE 选课 SET 成绩=成绩+5

UPDATE 选课 SET 成绩=NULL WHERE 课号="4"

五、定义表结构

1、建立研究生表,该表不属于任何数据库,其结构如表所示:

字段名

字段类型

字段长度

小数位数

特殊要求

学号

C

6

 

 

姓名

C

8

 

 

性别

C

2

 

 

年龄

N

3

0

 

入学年月

D

 

 

允许空值

CREATE TABLE 研究生 FREE (学号 C(6),姓名 C(8),性别 C(2),年龄 N(3,0),入学年月 D NULL)

2、假设已经建立了XSK数据库,在XSK中建立“学生1”表,其结构如表所示

字段名

字段类型

字段长度

小数位数

特殊要求

学号

C

6

 

主索引

姓名

C

8

 

不能为空

性别

C

2

 

 

年龄

N

3

0

年龄大于10小于45

是否党员

L

 

 

 

入学年月

D

 

 

默认值为199991

OPEN DATABASE XSK

CREATE TABLE 学生1 (学号 C(6) PRIMARY KEY,姓名 C(8) NOT NULL,性别 C(2),;

年龄 N(3,0) CHECK 年龄>10 AND 年龄<45 ERROR "年龄必须大于10小于45",是否党员 L,;

入学年月 D DEFAULT {^1999-9-1})

3、在XSK数据库建立“课程1”表,其结构如表所示:

字段名

字段类型

字段长度

小数位数

特殊要求

课号

C

4

 

主索引

课程名

C

10

 

不能为空

学分

N

2

 

 

CREATE TABLE 课程1 (课号 C(4) PRIMARY KEY,课程名 C(10) NOT NULL,学分 N(2))

4、在XSK数据库建立“选课1”表,其结构如表所示:

字段名

字段类型

字段长度

小数位数

特殊要求

学号

C

6

 

外索引与学生表建立关系

课号

C

4

 

外索引与课程表建立关系

成绩

N

5

2

 

CREATE TABLE 选课1 (学号 C(6) REFERENCE 学生,课号 C(4) REFERENCE 课程,成绩 N(5,2))

六、修改表结构

1、为“课程1”表添加一个开课学期字段,字段类型为数值型,长度为1。

ALTER TABLE 课程1 ADD COLUMN 开课学期 N(1)

2、修改开课学期字段为字符型,合法值为1或2。

ALTER TABLE 课程1 ALTER COLUMN 开课学期 C(1) CHECK 开课学期="1" OR 开课学期="2"

3、删除“课程1”表中对开课学期字段的合法值约束,设置默认值为1。

ALTER TABLE 课程1 ALTER 开课学期 DROP CHECK

ALTER TABLE 课程1 ALTER 开课学期 SET DEFAULT "1"

4、删除“课程1”表中的开课学期字段。修改课程名字段为“课名”字段。

ALTER TABLE 课程1 DROP 开课学期 RENAME 课程名 TO 课名

5、在“学生1”表的“年龄”字段上建立候选索引。

ALTER TABLE 学生1 ADD UNIQUE 年龄 TAG 年龄

6、在“学生1”表中添加一个出生日期字段,删除年龄字段。

ALTER TABLE 学生1 ADD 出生日期 D

ALTER TABLE 学生1 DROP UNIQUE TAG 年龄 DROP 年龄

七、补充练习

利用订货管理数据库中表数据,用SQL完成查询。

1、检索在北京的供应商的名称。

SELECT 供应商名 FROM 供应商 WHERE 地址="北京"

2、检索出向供应商S3发过订购单的职工的职工号和仓库号。

方法一(嵌套查询):

SELECT 职工号,仓库号 FROM 职工 WHERE 职工号 IN;

(SELECT 职工号 FROM 订购单 WHERE 供应商号="S3")

方法二(连接查询):

SELECT 职工.职工号,仓库号 FROM 职工,订购单 ;

WHERE 职工.职工号=订购单.职工号 AND 供应商号="S3"

3、检索出和职工E1、E3都有联系的北京的供应商信息。

SELECT * FROM 供应商 WHERE 地址="北京" AND 供应商号 IN;

(SELECT 供应商号 FROM 订购单 WHERE 职工号="E1") AND 供应商号 IN;

(SELECT 供应商号 FROM 订购单 WHERE 职工号="E3")

4、检索出向S4供应商发出订购单的仓库所在的城市。

SELECT 城市 FROM 仓库,职工,订购单 WHERE 仓库.仓库号=职工.仓库号 ;

AND 职工.职工号=订购单.职工号 AND 供应商号="S4"

5、检索出由工资多于1230元的职工向北京的供应商发出的订购单号。

SELECT 订货单号 FROM 职工,订购单,供应商 WHERE 职工.职工号=订购单.职工号;

AND 订购单.供应商号=供应商.供应商号 AND 工资>1230 AND 地址="北京"

6、检索出所有仓库的平均面积。

SELECT AVG(面积) AS 面积 FROM 仓库

7、检索出每个仓库中工资多于1220元的职工个数。

SELECT 仓库号,COUNT(*) 职工个数 FROM 职工WHERE工资>1220 GROUP BY 仓库号

8、检索工资低于本仓库平均工资的职工信息。

SELECT * FROM 职工 AA WHERE 工资<(SELECT AVG(工资) FROM 职工 BB WHERE AA.仓库号=BB.仓库号)

 

 

 

CREAT VIEW viewName 

as 

SELECT AVG(column1FROM table1 

as c1,

SELECT AVG(column2) FROM table2 

as c2,

SELECT AVG(column3) FROM table3 

as c3




1.一道SQL语句面试题,关于group by
表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负

如果要生成下列结果, 该如何写sql语句?

            胜 负
2005-05-09 2 2
2005-05-10 1 2
------------------------------------------
create table #tmp(rq varchar(10),shengfu nchar(1))

insert into #tmp values('2005-05-09','胜')
insert into #tmp values('2005-05-09','胜')
insert into #tmp values('2005-05-09','负')
insert into #tmp values('2005-05-09','负')
insert into #tmp values('2005-05-10','胜')
insert into #tmp values('2005-05-10','负')
insert into #tmp values('2005-05-10','负')

select * from #tmp
select rq, shengfu from #tmp group by rq,shengfu
select rq, shengfu from #tmp group by shengfu,rq
select rq, shengfu,sum(shengfu) from #tmp group by shengfu,rq

 

1)select rq,

sum(case when shengfu='胜' then 1 else 0 end)'胜',

sum(case when shengfu='负' then 1 else 0 end)'负'

from #tmp

group by rq

 

2) select N.rq,N.勝,M.負 from (
select rq,勝=count(*) from #tmp where shengfu='胜'group by rq)N inner join
(select rq,負=count(*) from #tmp where shengfu='负'group by rq)M on N.rq=M.rq
3)select a.col001,a.a1 胜,b.b1 负 from
(select col001,count(col001) a1 from temp1 where col002='胜' group by col001) a,
(select col001,count(col001) b1 from temp1 where col002='负' group by col001) b
where a.col001=b.col001

 

2.请教一个面试中遇到的SQL语句的查询问题
表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
------------------------------------------
select (case when a>b then a else b end ),
(case when b>c then b esle c end)
from table_name

 

3.面试题:一个日期判断的sql语句?
请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)
------------------------------------------
select * from tb where datediff(dd,SendTime,getdate())=0

 

4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路): 
   大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 
       显示格式: 
       语文              数学                英语 
       及格              优秀                不及格    
------------------------------------------
select
(case when 语文>=80 then '优秀'
        when 语文>=60 then '及格'
else '不及格') as 语文,
(case when 数学>=80 then '优秀'
        when 数学>=60 then '及格'
else '不及格') as 数学,
(case when 英语>=80 then '优秀'
        when 英语>=60 then '及格'
else '不及格') as 英语,
from table

 

5.在sqlserver2000中请用sql创建一张用户临时表和系统临时表,里面包含两个字段ID和IDValues,类型都是int型,并解释下两者的区别?
------------------------------------------
用户临时表:create table #xx(ID int, IDValues int)
系统临时表:create table ##xx(ID int, IDValues int)

区别:
用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.
当创建它的进程消失时这个临时表就自动删除.

全局临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失的时候,它也自动删除.

 

6.sqlserver2000是一种大型数据库,他的存储容量只受存储介质的限制,请问它是通过什么方式实现这种无限容量机制的。
------------------------------------------
它的所有数据都存储在数据文件中(*.dbf),所以只要文件够大,SQL    Server的存储容量是可以扩大的.

SQL Server 2000 数据库有三种类型的文件:

主要数据文件
主要数据文件是数据库的起点,指向数据库中文件的其它部分。每个数据库都有一个主要数据文件。主要数据文件的推荐文件扩展名是 .mdf。

次要数据文件
次要数据文件包含除主要数据文件外的所有数据文件。有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。

日志文件
日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是 .ldf。

 

7.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
如使用存储过程也可以。

table1

月份mon 部门dep 业绩yj
-------------------------------
一月份      01      10
一月份      02      10
一月份      03      5
二月份      02      8
二月份      04      9
三月份      03      8

table2

部门dep      部门名称dname
--------------------------------
      01      国内业务一部
      02      国内业务二部
      03      国内业务三部
      04      国际业务部

table3 (result)

部门dep 一月份      二月份      三月份
--------------------------------------
      01      10        null      null
      02      10         8        null
      03      null       5        8
      04      null      null      9

------------------------------------------
1)
select a.部门名称dname,b.业绩yj as '一月份',c.业绩yj as '二月份',d.业绩yj as '三月份'
from table1 a,table2 b,table2 c,table2 d
where a.部门dep = b.部门dep and b.月份mon = '一月份' and
a.部门dep = c.部门dep and c.月份mon = '二月份' and
a.部门dep = d.部门dep and d.月份mon = '三月份' and
2)
select a.dep,
sum(case when b.mon=1 then b.yj else 0 end) as '一月份',
sum(case when b.mon=2 then b.yj else 0 end) as '二月份',
sum(case when b.mon=3 then b.yj else 0 end) as '三月份',
sum(case when b.mon=4 then b.yj else 0 end) as '四月份',
sum(case when b.mon=5 then b.yj else 0 end) as '五月份',
sum(case when b.mon=6 then b.yj else 0 end) as '六月份',
sum(case when b.mon=7 then b.yj else 0 end) as '七月份',
sum(case when b.mon=8 then b.yj else 0 end) as '八月份',
sum(case when b.mon=9 then b.yj else 0 end) as '九月份',
sum(case when b.mon=10 then b.yj else 0 end) as '十月份',
sum(case when b.mon=11 then b.yj else 0 end) as '十一月份',
sum(case when b.mon=12 then b.yj else 0 end) as '十二月份',
from table2 a left join table1 b on a.dep=b.dep

 

8.华为一道面试题
一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。
------------------------------------------
select id, Count(*) from tb group by id having count(*)>1
select * from(select count(ID) as count from table group by ID)T where T.count>1


已标记关键词 清除标记
相关推荐
SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。 它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。    结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、DB2、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。    美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。    SQL语言包含4个部分:    数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。    数据查询语言(DQL),例如:SELECT语句。    数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。    SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页