MySQL数据库习题(选择题)
- 以下哪项不属于 DML 操作( D )
A.insert
B.update
C.delete
D.create
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作
insert:添加数据,可以向表结构当中来插入数据
update:修改数据,可以修改表中的数据
delete:删除数据,可以来删除表中的记录
-
返回字符串长度的函数是( B )
A.len()
B.length()
C.left()
D.long() -
从数据表中查找记录用以下哪一项( C )
A.UPDATE
B.FIND
C.SELECT
D.CREATE
select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数
SQL:Structured Query Language 标准结构化查询语言 简称
-
SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREATE、 DROPALTER语句是实现哪种功能( C )
A. 数据操纵(DML-Manipulation)insert、update、delete
B. 数据控制(DCL- Control)用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。比如常见的授权、取消授权、回滚、提交等等操作。
创建用户:CREATE USER 用户名@地址 IDENTIFIED BY '密码';
用户授权:GRANT 权限1, … , 权限n ON 数据库.对象 TO 用户名;
撤销授权:REVOKE权限1, … , 权限n ON 数据库.对象 FORM 用户名;
查看用户权限:SHOW GRANTS FOR 用户名;
删除用户:DROP USER 用户名;
修改用户密码:UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ and Host=’IP’; FLUSH PRIVILEGES;
C. 数据定义(DDL-Definition)定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器等等。CREATE、ALTER、DROP、TRUNCATE
D. 数据查询(DQL-Query) :数据查询语言,使用SQL语句实现对数据表的查询select
-
按照姓名升序排列( A )
A. ORDER BY NAME ASC
B. ORDER BY ASC NAME
C. ORDER BY NAME DESC
D. ORDER BY DESC NAME
升序:asc(ascend),默认
降序:desc (descend)
6. 更新数据表中的记录用以下哪一项( C )
A.DELETE
B.ALTRE
C.UPDATE
D.SELECT
-
使用 SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是( D )
A. 在 LIMIT 子句中使用 RAND() 函数指定行数,并用 ORDER BY 子句定义一个排序规则
B. 只要使用 LIMIT 子句定义指定的行数即可,不使用 ORDER BY子句
C. 只要在 ORDER BY 子句中使用 RAND() 函数,不使用 LIMIT 子句
D. 在 ORDER BY子句中使用 RAND() 函数(随机地)
,并用 LIMIT(指定数量的行)
子句定义行数 -
进入要操作的数据库 TEST用以下哪一项( D )
A. IN TEST(错误语法)
B. SHOW TEST(错误语法)
C. USER TEST(错误语法)
D. USE TEST -
例如数据库中有 A表,包括学生,学科,成绩三个字段,数据库结构为学生学科成绩
张三 语文 80
张三 数学 100
李四 语文 70
李四 数学 80
李四 英语 80
如何统计每个学科的最高分( B )
A. select 学生 max(成绩) from A group by 学生;
B. select 学生 max(成绩) from A group by 学科;
C. select 学生 max(成绩) from A order by 学生;
D. select 学生 max(成绩) from A group by 成绩;
分组查询:
select 字段,聚合函数 from 表名 [ where 条件 ] group by 字段 [ having 分组后过滤条件 ];
排序查询:
order by 字段1 asc/desc, 字段2 asc/desc....
- 视图是一种常用的数据对象,它是提供( C )操作
A. 插入,更新
B. 查看,检索
C. 查看,存放
D. 检索,插入
MySQL中的视图(view)是一种虚拟表,其内容由查询定义,视图本身并不包含数据,是一种数据库对象,其内没有存储任何数据,它只是对表的一个查询
作用:
- 控制安全
- 保存查询数据
-
删除数据表中的一条记录用以下哪一项( B )
A. DELETED
B. DELETE(DML- 数据操纵)只删除数据不删除表的结构,会走事务,执行时会触发trigger
C. DROP(DDL- 数据定义)同truncate,执行后立即生效,无法找回(删除数据库、表、)
D. UPDATE
Truncate(DDL- 数据定义)不走事务,原数据不放到 rollback segment 中,操作不触发 trigger -
delete from employee 语句的作用是( B )
A. 删除当前数据库中整个 employee表,包括表结构
B. 删除当前数据库中 employee 表内的所有行
C. 由于没有 where 子句,因此不删除任何数据
D. 删除当前数据库中 employee 表内的当前行 -
以下哪项用于左连接( C )
A. JOIN
B. RIGHT JOIN(右连接)— 右边的表为主表,展示右边表的所有数据,根据条件查询join左边表的数据,若满足则展示,若不满足则以NULL显示
C. LEFT JOIN
D. INNER JOIN(内连接)— 查询两个表的交差部分
左连接(left join):以左边的表为主表,展示主表的所有数据,根据条件查询连接右边表的数据,若满足条件则展示,若不满足则以NULL显示
- SQL语言是( D )的语言,轻易学习。
A.导航式
B.过程化
C.格式化
D.非过程化
SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。
SQL 通过一系列的语句和命令来执行数据定义、数据查询、数据操作和数据控制等功能,包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制
- 在正则表达式中,匹配任意一个字符的符号是( A )
A. .
B. *
C. ?
D. -
正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。
正则表达式可以在文本中查找、替换、提取和验证特定的模式。
-
条件 “ BETWEEN 20 AND 30” 表示年龄在20 到 30 之间,且( D )
A. 包括 20 岁不包括 30 岁
B. 不包括 20 岁包括 30 岁
C. 不包括 20 岁和 30 岁
D. 包括 20 岁和 30 岁 -
创建视图的命令是( D )
A. alter view(修改视图)
B. alter table
C. create table
D. create view
create [or replace] [algorithm = {undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option]
# 说明:
1、or replace:如果要创建的视图名称已存在,则替换已有视图。
2、algorithm:可选参数,表示视图选择的算法,默认算法是 undefined
(1)undefined:未定义指定算法
(2)merge:更新视图表数据的同时会更新真实表的数据
(3)temptable:只能查询不能更新
3、view_name:新建的视图名称。
4、column_list:可选,表示视图的字段列表。若省略,则使用 select 语句中的字段列表。
5、as select_statement:创建视图的 select 语句。
6、with check option:表示更新视图时要保证该视图的 where 子句为真。
比如定义视图:create view v1 as select * from salary > 5000;
如果要更新视图,则必须保证 salary 字段的值在 5000 以上,否则报错。
(1)cascaded:必须满足所有针对该视图的条件才可以更新
(2)local:只需满足本视图的条件就可以更新
- 以下哪项用来分组( C )
A. ORDER BY(排序查询)
B. ORDERED BY
C. GROUP BY(分组查询)
D. GROUPED BY
分组查询:
select 字段,聚合函数 from 表名 [ where 条件 ] group by 字段 [ having 分组后过滤条件 ];
排序查询:
order by 字段1 asc/desc, 字段2 asc/desc....
- 按照姓名降序排列()
A. ORDER BY DESC NAME
B. ORDER BY NAME DESC
C. ORDER BY NAME ASC
D. ORDER BY ASC NAME
升序:asc(ascend),默认
降序:desc (descend)
- 可以在创建表时用( )来创建唯一索引,也可以用()来创建唯一索引
A. Create table, Create index
B. 设置主键约束,设置唯一约束
C. 设置主键约束, Create unique index
D. 以上都可以
- 主键约束 primary key:数据库存储数据不是唯一的目的,还要考虑到提取数据,一般要求 数据库表中的记录要有一个特定的唯一标识 ,来表示唯一性,这个唯一的特定标识就是主键
- 唯一性约束 uqique:限制某个字段/某列的值不能重复
- 在 SELECT语句中,使用关键字( D )可以把重复行屏蔽
A. TOP
B. ALL
C. UNION
D. DISTINCT
select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数
22. 以下聚合函数求平均数的是( C )
A. COUNT
B. MAX
C. AVG
D. SUM
聚合函数:将一列数据作为一个整体,进行纵向计算,本质也是分组函数
-
用来插入数据的命令是(),用于更新的命令是( A )
A. INSERT, UPDATE
B. CREATE,INSERT INTO
C. DELETE, UPDATE
D. UPDATE,INSERT -
从 GROUP BY 分组的结果集中再次用条件表达式进行筛选的子句是( C )
A. FROM
B. ORDER BY
C. HAVING
D. WHERE
分组查询(group by):该列具有相同值的多条记录当成一组记录处理,最后只输出一条记录
select 字段,聚合函数 from 表名 [ where 条件 ] group by 字段 [ having 分组后过滤条件 ];
- 为数据表创建索引的目的是( A )
A. 提高查询的检索性能
B. 归类
C. 创建唯一索引
D. 创建主键!
mysql表建立索引的本质是为了避免查询时走全表扫描,减少时间开销
-
在 MySQL 中,建立数据库用( D )
A. CREATE TABLE 命令(表)
B. CREATE TRIGGER 命令()触发器
C. CREATE INDEX命令
D. CREATE DATABASE 命令 -
SQL语言中,删除一个视图的命令是( D )
A. REMOVE
B. CLEAR
C. DELETE
D. DROP
drop view [if exists] view_name;
- 修改数据库表结构用以下哪一项()
A. UPDATE
B. CREATE
C. UPDATED
D. ALTER
- 修改表名:
# 法1:
alter table 表名 rename 新表名;
# 法2:
rename table 表名 to 新表名;
#添加新列:
alter table 表名 add 新列名 列类型 [after|first] 列名;
# after:在指定列之后插入新列
# first:在第一列插入新列
# 注意:无before关键字
# 删除列:
alter table 表名 DROP 列名;
# 修改列名:
alter table 表名 change 旧列名 新列名 列类型;
# 修改列类型:
alter table 表名 modify 列名 列类型;
#修改列位置:
alter table 表名 modify 列名 列类型 after 某列;
-
SELECT语句的完整语法较复杂,但至少包括的部分是( B )
A. 仅 SELECT
B. SELECT,FROM
C. SELECT, GROUP
D. SELECT,INTO -
UNIQUE 唯一索引的作用是( A )
A. 保证各行在该索引上的值都不得重复
B. 保证各行在该索引上的值不得为NULL
C. 保证参加惟一索引的各列,不得再参加其他的索弓
D. 保证惟一索引不能被删除 -
查找条件为:姓名不是 NULL的记录( C )
A. WHERE NAME !NULL
B. WHERE NAME NOT NULL
C. WHERE NAME IS NOT NULL
D. WHERE NAME != NULL -
SQL语言的数据操纵语句(DML)包括SELECT、INSERT、 UPDATE、 DELETE等。其中最重要的,也是使用最频繁的语句是( B )
A. UPDATE
B. SELECT
C. DELETE
D. INSERT -
现有学生表,课程表和成绩表,三表中的字段如下:
student表:id,student_name
course表:id,course_name
score表:student_id,course_id,score
前提:每个学生都会参加多门课程的考试,每门课程的成绩在score表中都是一条数据,现若要查询出平均分在60分以上的学生id和学生姓名以及平均分,以下哪个sql语句是正确的?( D )
A. select student id,student name,avg(score) av from student s join score sc on s.id=sc.student id;
B. select student id,student name,avg(score) av from student s join score sc on s.id=sc.student id where av>60:
C. select student id,student name,avg(score) av from student s join score sc on s.id=sc.student id where av>60 group by student id;
==D. select student id,student name,avg(score) av from student s join score sc on s.id=sc.student id group by student id having av>60; == -
在 select 语句的 where 子句中,使用正则表达式
过滤数据
的关键字是( D )
A. like
B. against
C. match
D. regexp
正则表达式的作用是匹配文本,将一个模式与一个文本串进行比较。MySQL中的where子句对正则表达式提供支持,需要关键字regexp(regular expression)配合使用。
LIKE匹配整个列, REGEXP在列值内进行匹配。
-
删除数据表用以下哪一项( A )
A. DROP
B. UPDATE
C. DELETE(删除表内容)
D. DELETED -
redis默认端口号是?( C )
A. 6377
B. 6378
C. 6379
D. 6380
Redis的IP地址和端口号可以通过配置文件或命令行参数进行设置。默认情况下,Redis会监听127.0.0.1(本地回环地址)的6379端口。我们可以通过在命令行中输入以下命令来启动Redis服务:
redis-server
- 在 select 语句中,实现选择操作的子句是( C )
A. select
B. group by
C. where
D. from
select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数
-
redis中那个命令给出特定pattern的所有key?( A )
A. keys
B. del
C. expire
D. exists -
以下那个命令是检查redis的key是否存在?( D )
A. get
B. set
C. Put
D. exists -
redis的string类型的value值最大存储容量( C )
A. 500M
B. 1024M
C. 512M
D. 2^32-1 -
对于删除操作以下说法正确的是( ABCD )
A. drop database 数据库名:删除数据库
B. delete from 表名: 删除表中所有记录条
C. delete from 表名 where 字段名值:删除符合条件的记录条
D. drop table 表名:删除表 -
关于主键下列说法正确的是( ABCD )
A. 可以是表中的一个字段
B. 是确定数据库中的表的记录的唯一标识字段
C. 该字段不可为空也不可以重复
D. 可以是表中的多个字段组成的 -
MySQL支持哪些逻辑运算符( ABCD )
A. &&(AND)
B. ||(OR)
C. NOT( !)
D. AND
- 下列是 MySQL比较运算符的是( ABD )
A. !=
B. <>
C. ==
D. >=
-
下面语句中,表示过虑条件是 vend_id=1002 或 vend_id=1003 的是( AB )
A. select * from products where vend_id=1002 or vend_id=1003;
B. select * from products where vend_id in (1002,1003);
C. select * from products where vend_id not in (1004,1005);
D. select * from products where vend_id=1002 and vend_id=1003; -
以下给定语句搭配正确的是( ABD )
A. not in
B. in not
C. not between and
D. is not null -
关于 CREATE语句下列说法正确的是( AD )
A. create table 表名(字段名 1 字段类型,字段名 2 字段类型…)
B. create table 表名(字段类型 字段名 1,字段类型,字段名 2…)
C. create tables 表名(字段名1 字段类型 ,字段名 2 字段类型 ….)
D. create table 表名 like 表名 -
“ show databases like’student%’ ”命令可以显示出以下数据库( ABD )
A. student_my
B. studenty
C. mystudent
D. student -
视图一般不用于下列哪些语句( ACD )
A. DELETE
B. SELECT
C. INSERT
D. UPDATE -
查询出学生表(student)中,数学(math)成绩最高的学生姓名(name),以下正确的是( CD )
A. select name from student where math is (select max(math) from student);
B. select name from student where math(select max(math) from student);
C. select name from student where math = (select max(math) from student);
D. select name from student where math in (select max(math) from student);