1.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是()
A. SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE FROM S
WHERE SN=“王华”)

B. SELECT SN,AGE,SEX
FROM S
WHERE SN="王华"
C. SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE
WHERE SN=“王华”)
D. SELECT SN,AGE,SEX FROM S
WHERE AGE>王华.AGE

先找到王华的年龄:
SELECT AGE FROM S WHERE SN="王华"
然后在遍历表,选出年龄比他大者:
SELECT SN,AGE,SEX FROM S
WHERE AGE > (SELECT AGE FROM S WHERE SN="王华")

2.已知在某期刊在线投稿审稿平台投稿,需要先注册作者信息,作家信息表author(作者编号aid,作者姓名aname,作者笔名ausername,作者地址aaddress,作者邮箱aemail)则下列语句正确的是()
A. INSERT INTO author (aid,aname,ausername,aaddress,aemail)
VALUES (‘D770’,‘张三’,‘西泽梦路’,‘123456@126.com’)
B. INSERT INTO author
VALUES (‘D770’,‘张三’,‘西泽梦路’,‘123456@126.com’)
C. INSERT INTO author (aid,aname,ausername,aemail)
VALUES (‘D770’,‘张三’,‘西泽梦路’,‘123456@126.com’)

D. INSERT INTO author (aname,ausername,aid,aemail)
VALUES (‘D770’,‘张三’,‘西泽梦路’,‘123456@126.com’)

1.插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(1,'张三','男','2020-4-23','1898888888',NULL,2);2.不可以为null的列必须插入值。可以为null的列可插入NULL值、也可直接忽略不管不写
写法一:写列名与NULL值
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(1,'张三','男','2020-4-23','1898888888',NULL,2);
写法二:列名与值皆忽略,自动加null
INSERT INTO beauty(id,NAME,sex,phone)
VALUES(2,'李四','女','1388888888');3.列的顺序可以在语句内调换,但要上下对应
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('王五','女',20,'1874561236');4.列数和值的个数必须一致,写了列名必须写值
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('赵武','男',22,'1385624521');5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
INSERT INTO beauty
VALUES(18,'张飞','男',NULL,'119',NULL,NULL);

3.SQL中,下面对于数据定义语言DDL描述正确的是()
A. DDL关心的是数据库中的数据
B. 联盟链
C. 控制对数据库的访问
D. 定义数据库的结构

DDL(Data Definition Language)数据库定义语言用于定义SQL模式、基本表、视图和索引的创建和撤消操作DDL不需要commit. eg. CREATE ALTER DROP TRUNCATE COMMENT RENAME
DML(Data Manipulation Language)数据操纵语言数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。DML需要commit. eg. SELECT INSERT UPDATE DELETE MERGE CALL EXPLAIN PLAN LOCK TABLE
DCL(Data Control Language)数据库控制语言  授权,角色控制等包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。GRANT 授权, REVOKE 取消授权
TCL(Transaction Control Language)事务控制语言定义数据库的访问控制权限和安全级别;SAVEPOINT 设置保存点, ROLLBACK  回滚, SET TRANSACTION

4.下列选项中关于数据库事务的特性描述正确的是()
A. 事务允许继续分割
B. 多个事务在执行事务前后对同一个数据读取的结果是不同的
C. 一个事务对数据库中数据的改变是暂时的
D. 并发访问数据库时,各并发事务之间数据库是独立的

事务是最小的执行单位,不允许分割;
执行事务前后,数据保持一致,对同一数据读取的结果相同;
一个事务被提交后对数据库中数据的改变是持久的。

5.要将employee 的表名更改为 employee_info,下面MySQL语句正确的是:
A. ALTER TABLE employee RENAME employee_info;
B. ALTER TABLE employee MODIFY employee_info;
C. ALTER TABLE employee ALTER employee_info;
D. ALTER TABLE employee CHANGE employee_info;

RENAME用于表的重命名:RENAME  <NAME> 或  RENAME  TO  <NAME>
MODIFY用于字段类型的修改:MODIFY  COLUMN   <列名>  <类型>
ALTER用于对字段类型、默认值的修改:ALTER  COLUMN  <列名>  <类型>    SET  DEFAULT  <默认值>
CHANGE用于对列名及类型的修改:CHANGE  COLUMN  <旧列名>  <新列名>  <类型>表重新命名:ALTER TABLE 旧表名 to 新表名;
列重新命名:ALTER TABLE 表名 CHANGE 旧字段 新字段 列数据类型;

6.修改表test_tbl字段i的缺省值为1000,可以使用SQL语句( )
A. ALTER TABLE test_tbl ALTER i SET DEFAULT 1000;
B. ALTER TABLE test_tbl i SET DEFAULT 1000;
C. ALTER TABLE test_tbl MODIFY i SET DEFAULT 1000;
D. ALTER TABLE test_tbl CHANGE i SET DEFAULT 1000;

修改表:ALTER TABLE 表名 修改选项 。选项集合:
{ ADD COLUMN <列名> <类型> -- 增加列
| CHANGE [COLUMN] <旧列名> <新列名> <新列类型> -- 修改列名或类型
| ALTER [COLUMN] <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值
| MODIFY [COLUMN] <列名> <类型> -- 修改列类型
| DROP [COLUMN] <列名> -- 删除列
| RENAME TO <新表名> -- 修改表名
| CHARACTER SET <字符集名> -- 修改字符集
| COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

7.已知数据表STU,现需创建视图view_s,显示所有男同学的信息。下列SQL语句正确的是()
A. CREATE VIEW AS SELECT * FROM STU
B. CREATE VIEW view_s AS SELECT * FROM STU WHERE 性别=‘男’
C. CREATE view_s SELECT * FROM STU WHERE 性别=‘男’
D. CREATE view_s AS SELECT * FROM STU

创建视图: create view 视图名 as select * from 表名 where 条件

8.Mysql中表student_table(id,name,birth,sex),查询重复姓名、重复次数,并按重复次数降序排列,正确的是()?
A. select name,count(*) as c1 from student_table
group by name
having c1 > 1
order by c1 desc ;

B. select name,count() as c1 from student_table
group by name
having c1 > 1
order by c1;
C. select name,count(
) as c1 from student_table
where count(*) > 1
group by name
order by c1 desc ;

D. select name,count(*) as c1 from student_table
group by name
where c1 > 1
order by c1 desc;

正确的顺序是:where...group by ...having...order by ;
如果是对group by聚合后的结果做筛选,需要用having,where是在聚合前做筛选;
order by 时如果不写desc或asc则默认是按照asc升序排列。

9.下列选项关于函数的描述正确的是()
A. 用户定义函数可以用于执行修改数据库状态的操作
B. 用户定义函数属于数据库,可以在多个数据库下调用
C. 与系统函数一样,用户定义函数可以从查询中调用
D. 标量函数不可使用EXECUTE语句执行

A.用户定义函数不用于执行修改数据库状态的操作;
B.用户定义函数属于数据库,只能在该数据库下调用;执行修改数据库状态的操作,可以在多个数据库下调用;
D.标量函数和存储过程一样,可以使用EXECUTE语句执行。

10.确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新”是对下列选项哪一个事务隔离级别的描述()
A. Read uncommitted
B. Read committed
C. Repeatable Read
D. Serializable

在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。
● 未授权读取(Read Uncommitted):读未提交是事务隔离级别的最低级别;该隔离级别可以通过“排他写锁”实现。
● 授权读取(Read Committed):读已提交,可避免脏读情况发生;这可以通过“瞬间共享读锁”和“排他写锁”实现。
● 可重复读取(Repeatable Read):禁止不可重复读取和脏读取,但是有时可能出现幻影数据。这可以通过“共享读锁”和“排他写锁”实现。
● 序列化(Serializable):最严格的事务隔离级别,要求所有事物被串行执行,不能并发执行,可避免脏读、不可重复读,幻读情况的发生。
● 隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。优先考虑把Read Committed,它能够避免脏读取,具有较好的并发性能。

11.有一张persons表包含如下信息:

现要选取居住地址Address以’C’或’h’开头 或以 ‘et’ 结尾的所有数据,结果显示为:

下列MySQL查询语句正确的是:
A. SELECT * FROM persons WHERE Address REGEXP ‘[^Ch]|et$’;
B. SELECT * FROM persons WHERE Address REGEXP ‘^[Ch]et$’;
C. SELECT * FROM persons WHERE Address REGEXP ‘^[Ch]|et$’;
D. SELECT * FROM persons WHERE Address REGEXP ‘^[Ch]|[et]$’;

MySQL 中使用 REGEXP 来操作正则表达式的匹配,其中
^ 该符号表示匹配输入字符串的开始位置;
$ 表示匹配输入字符串的末尾位置;
[...] 表示匹配所包含的任意一个字符;
[^...]表示不能匹配括号内的任意单个字符;
x|y 这条竖线表示匹配 x 或匹配 y。

12.声明游标语法中的INSENSITIVE参数,表示声明一个静态游标。当发生下列选项中的哪一项时,游标将会自动设定INSENSITIVE选项()
A. 在SELECT语句中使用WHERE语句
B. 使用INNER JOIN
C. 所选取的任意表存在索引
D. 将实数值当作选取的列

当遇到以下情况发生时,游标将自动设定INSENSITIVE 选项。
● 在SELECT 语句中使用DISTINCT、 GROUP BY、 HAVING UNION 语句;
● 使用OUTER JOIN;
● 所选取的任意表没有索引;
● 将实数值当作选取的列。

13.在SQL中语法规范中,having子句的使用下面描述正确的是:( )
A. having子句即可包含聚合函数作用的字段也可包括普通的标量字段
B. 使用having的同时不能使用where子句
C. having子句必须于group by 子句同时使用,不能单独使用
D. 使用having子句的作用是限定分组条件
E. Having子句和where子句是等同的
F. 如果select语句中没有聚合函数的使用,就不能使用having子句

having是在分组后过滤,where在分组前过滤,不冲突,可以同时使用;
having是用来过滤的,group by是限定分组;
select语句中没有聚合函数的使用时也可以用having;

14.下面哪一个是MySQL查询语句的正确执行顺序:
A. SELECT —> FROM(including JOINs) —> WHERE —> GROUP BY —> HAVING —> DISTINCT —> ORDER BY —> LIMIT/OFFSET
B. SELECT —> DISTINCT —> FROM(including JOINs) —> WHERE —> GROUP BY —> HAVING —> ORDER BY —> LIMIT/OFFSET
C. FROM(including JOINs) —> WHERE —> GROUP BY —> HAVING —> SELECT —> DISTINCT —> ORDER BY —> LIMIT/OFFSET
D. FROM(including JOINs) —> WHERE —> GROUP BY —> HAVING —> DISTINCT —> SELECT —> ORDER BY —> LIMIT/OFFSET

form -join-on-where-group by-avg/sum-having-select-distinct-group by-limit

15.假设牛客网上有一份绝密文件存于某台机器的secretData数据库中的某个表里面,现在出于数据安全的考虑,对于新创建的用户都只能拥有该机器的登录权限,而不能拥有数据库的其他权限,那么新创建nkw用户满足这一要求的语句是()
A. grant usage on *.* with ‘nkw’@‘%’;
B. grant usage on secretData.* to ‘nkw’@‘%’;
C. grant usage on secretData.* with ‘nkw’@‘%’;
D. grant usage on *.* to ‘nkw’@‘%’;

给数据库赋予登录权限的语句: grant usage on ... to

16.有订单表orders,包含字段用户信息userid,字段产品信息productid,以下语句能够返回至少被订购过两次的productid?()
A. select productid from orders where count(productid)>1
B. select productid from orders where max(productid)>1
C. select productid from orders where having count(productid)>1 group by productid
D. select productid from orders group by productid having count(productid)>1

命令顺序为:select, from, where, group by, having, order by, limit

17.表结构如下:

CREATE TABLE `score` (`id` int(11) NOT NULL AUTO_INCREMENT,`sno` int(11) NOT NULL,`cno` tinyint(4) NOT NULL,`score` tinyint(4) DEFAULT NULL,PRIMARY KEY (`id`)) ;

以下查询语句结果一定相等的是()
A. SELECT sum(score) / count(*) FROM score WHERE cno = 2;
B. SELECT sum(score) / count(id) FROM score WHERE cno = 2;
C. SELECT sum(score) / count(sno) FROM score WHERE cno = 2;
D. SELECT sum(score) / count(score) FROM score WHERE cno = 2;
E. SELECT sum(score) / count(1) FROM score WHERE cno = 2;
F. SELECT avg(score) FROM score WHERE cno = 2;
正确答案:ABCE;DF

count(*)包括了所有列,相当于行数,在统计结果的时候,不会忽略某些列值为NULL的行。
count(1)用1代表代码行,忽略所有列的值,在统计结果的时候,统计所有行,效果同count(*)。
count(列名)只包括列名对应一列,在统计结果的时候,会忽略列值为空的行。
本题中只有score列可能为空,其他列均设置了NOT NULL,因此只有count(score)和avg(score)会忽略score为空的列

数据库SQL习题练习Day7相关推荐

  1. 数据库SQL习题练习Day4

    1.已知职员表employee(eno,ename,gender,birthday,salary),现有一张E表,表结构与职员表一致,要求将E表中没有在职员表中出现的女职员添加到职员表中.下列SQL语 ...

  2. 数据库SQL习题练习Day2

    1.需查看stu表中索引的索引信息时,应使用的存储过程是() A. sp_helpindex B. sp_help C. sp_helpdb D. sp_helptext B选项,报告有关数据库对象的 ...

  3. 数据库sql语句练习 基础篇

    学习数据库,做的练习题记录下来,方便那些想要练习的人 文章目录 数据库建表 1.customer表 2. product 3.order表 4.vendor表 5. recruit表 数据库习题单表查 ...

  4. 实验四 数据库SQL语言基础编程

    -- 实验四 数据库SQL语言基础编程 -- 实验目的: --  掌握数据库查询语句的编写方法 --  掌握利用查询语言完成基本查询 --  掌握利用SQL语句完成数据的添加.删除.修改操作 -- 实 ...

  5. oracle数据库----SQL语句的实践(应用实例)

    oracle数据库----SQL语句的实践(应用实例) 创建表工资表salary,包括员工号emp_id,员工名emp_name,员工月基本工资monthsal,员工月总发工资totalsal. cr ...

  6. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  7. 关于数据库SQL优化

    1.数据库访问优化 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬 ...

  8. 从痴迷数据库SQL语句逐渐走进面向对象化(系统的核心以处理对象为主、淡化数据库概念)...

    几年前写信息管理系统都要设计很多很多表,每个表都是自己建立的,然后喜欢用高   性能.高超的SQL语句搞定很多复杂的商业逻辑问题,那SQL语句又长又复杂,一般人   还读不懂,但是代码很少.性能很高, ...

  9. oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...

    风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...

最新文章

  1. TestNG 自动化测试入门教程--典型示例
  2. oracle更改字段名顺序的方法
  3. windows2008下 IIS7 HTTP 错误 404.2 - Not Found 解决方法(图文)
  4. dial up network
  5. 高效率人士的日常习惯
  6. 2017年度计算机科学各领域热点词汇
  7. AutoCAD2010云盘分享链接
  8. 高性能服务器设计——模块间通信(转载)
  9. 大纲2.1 计算机网络
  10. 51Nod 1274 - 最长递增路径(DP)
  11. 三转CHM文件故障解决
  12. 常识——CE修改器使用
  13. 1.Matlab图像的读取和显示
  14. 百度云盘Mac破解不限制下载速度-百度网盘客户端 - Go语言编写
  15. 《MonoIndoor:Towards Good Practice of Self-Supervised Monocular Depth Estimation...》论文笔记
  16. mummer基因组共线性分析详解
  17. Python:Numpy—rand、randn
  18. CSS尺寸与文本讲解。HTML、CSS笔记(四)。
  19. Semantic Segmentation: A thorough Review
  20. selenium之判断是否定位正确

热门文章

  1. 操作ChatGPT竟写出毁灭人类计划书!“AI正在指数级发展”
  2. Electron -- 编写第一个Eletron程序
  3. 7-10 拯救007 (25 分)
  4. 使用ExcelUtils导出Excel文件
  5. 吵醒猫猫+android7,萌到不行 Chillingo益智新游《吵醒猫猫》
  6. curses addstr()
  7. 新一代微服务全家桶AlibabaCloud+Docker+JDK11阿里云容器部署零基础到项目实战
  8. 国产手机再度比拼性价比,中高端手机都跌穿2000元了
  9. 2千万用户APP的开发运营流程
  10. 基于docker搭建redis哨兵模式