sql a 表 若包含b表 则a 表 列显示_牛客网题库|SQL

这里主要记录刷到的容易错的数据库习题,所以代码都在mysql环境中实现。

1、

95c46fef72e257fe7bdd5990c9468fd2.png

【答案解析】SQL语言主要分为四类:

-----数据定义语言DDL----

  • create table、alter table、drop table
  • create index、drop index
  • create view、drop view
  • create trigger、drop trigger

----数据查询语言 DQL----

  • select...from...where...

----数据操纵语言DML----

  • select...from...
  • insert
  • delete
  • update

----数据控制语言DQL----

  • grant (赋予用户权限)
  • revoke (收回权限)
  • deny (禁止权限)

2、

af29482500df2e55c61b4a3fa54b5f8a.png

【答案解析】向表中插入数据有以下方法:

#向表中插入新数据
INSERT INTO 表名 VALUES (值1, 值2,....)
INSERT INTO 表明 (字段1, 字段2,...) VALUES (值1, 值2,....)

#选取表1的数据插入表2中
SELECT 字段1, 字段2,...
INTO 表2
FROM 表1

5cb749cf4e7110ed8567fc32ed5ff0d0.png

【答案解析】修改字段默认值的语句:

alter table 表名 alter column 字段名 set default 默认值;

3、

a921d903106788771973b3a518962c2a.png

【答案解析】不同删除操作的比较:

1、处理效率:drop>truntcate>delete;

2、drop是完全删除表,包括表结构;delete是删除表数据,保留表结构,而且可以加where,可删除指定行;truncate是删除表数据,保留表结构,不能加where,只能删除全部数据;

3、delete不影响所用extent,高水线保持原位置不动;truntcate会将高水线复位。

4、

acfca11ed6f926d8d381353fa4f84699.png

d75f1bda5711c4989721a8588caa1aa0.png

【答案解析】这题在最旧版本的mysql中,B和D都可以运行出正确结果,但在最新版本中,B和D会出现语法错误。这是因为在最新版本中,select后只能跟分组字段和聚合函数。若想要实现,需要将sql_mode中的only_full_group_by除去。

对于组内比较查询,可以用到关联子查询和等值连接完成。

#关联子查询
select * from
(select app_id,version_code,sum(download_count) as download_sum from app group by app_id,version_code) as a
where download_sum>=(select max(download_sum) from
(select app_id,version_code,sum(download_count) as download_sum from app group by app_id,version_code) as b
where a.app_id=b.app_id and a.version_code=b.version_code group by app_id,version_code)

#等值连接
select a.app_id,a.version_code,max(download_sum) from
app as a 
inner join 
(select app_id,version_code, sum(download_count) as download_sum 
from app group by app_id,version_code) as b
on a.app_id=b.app_id and a.version_code=b.version_code group by app_id,version_code

5、

077c72aa24d2736b6b494cd27a1d380c.png

【答案解析】部门和性别数据类型为字符串,而基本工资为数值,因此需要将基本工资的数据类型转为字符串形式。

6、

1979f575a0a145bfd79bd5297b310899.png

【答案解析】关系R中,属性或属性组X能唯一地标识一条记录,则X称为关系R的候选码,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非属性。

7、

64ad97af65bde943dd4b187696a42e79.png

【答案解析】

首先了解什么是投影查询:

使用 SELECT * FROM <表名> WHERE <条件> 可以选出表中的若干条记录。

我们注意到返回的二维表结构和原表是相同的,即结果集的所有列与原表的所有列都一一对应。

如果我们只希望返回某些列的数据,而不是所有列的数据,我们可以用 SELECT 列1, 列2, 列3 FROM ...,让结果集仅包含指定列。

这种操作称为投影查询。

在优化查询中,一般是这样操作的:

先选择运算,

  • 1.比较运算:>,>=,<,<=,=,<>(或!=);
  • 2.范围查询:BETWEEN...AND
  • 3.集合查询:IN;
  • 4.空值查询:IS NULL;
  • 5.字符串匹配查询:LIKE;
  • 6.逻辑查询:AND,OR,NOT。

然后再进行投影查询。

8、

a3e41e40b8aa99ad1e625f41253b2461.png

【答案解析】sql一种是独立的交互使用数据查询、数据更新等操作,称为自含语言。另一种是嵌入到某种高级语言中,作为高级语言的一种扩充,是程序员编程时既可使用数据库语言又可使用常规的程序设计语言,这时高级语言叫宿主语言。

9、

f8b374f2e1d935e1c9f067dc70d0454f.png

【答案解析额】基本的封锁类型有两种:排它锁和共享锁。

排它锁也称为独占或写锁(eXclusive lock)。一旦事务T对数据对象A加上排它锁,则只允许T读取和修改A,其它任何事务既不能读取或修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。

共享锁又称读锁(share locks)。如果事务T对数据对象A加上共享锁,其它事务只能再对A加S锁,不能加X锁,直到事务T释放A上的S锁为止。

10、

faea5a3997f9c75e910e7504e31dc680.png

【答案解析】

A、B错误。对于表数据量少,插入,更新操作多的表,添加索引可能会使查询速度变慢。

11、

55adcfcbe1983f659009b93dd6f9ff39.png

【答案解析】主键和外键建立索引是因为相对的这两个值比较能确定一些数据,所以比较适合建立索引;where条件中的字段适合建立索引是因为要在查询过程中减少数据检索,需要使用索引;

12、

871a19e91b7cac9cfc3e860ce8383d8b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值