mysql 01 刷题
Mysql训练
第2章
1.单选
1.不知道 考数据范围-忘记了
2.d 不知道没学过
3.a
4.c
5.c
6.c
7.d
8.b
Alter table grade change name username varchar(20);
9.b
字符串数据类型的不同 VARCHAR CHAR
10
11c

12.c
13 d
14.b
primary key 主键约束
15.c
数据类型的保留-比如坐标
DECIMAL(6,4)
16
drop database name;
17c
varchar
text-大文本数据
18 a
固定字符串varchar

19c
create table student(
id int primary key,
)
20 d
create table student(
id int default 0
)
21 c
修改数据库便编码
C、CREATE DATABASE itcast DEFAULT CHARACTER SET gbk COLLATE gbk_bin;
22 b
drop table name;
23 c
C、CREATE DATABASE itcast DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
24.修改表名 b
alter table name rename newname;
25.b

26 b
primary key(z1,z2,z3)
27 b
fulltext
28
int MEDIUMINT
29d
spatial
SPATIAL INDEX sp(space)
30d
31 D
二进制类型 blob
32C
33 C
ALTER TABLE ADD NAME VARCHAR(255);
34 B
DROP
35 B
CREATE
36
CHAR
37
SHOW INDEX FROM NAME;
EXPLAIN
38
CREATE TABLE STUDENT(
STU_ID INT,COURSE_ID,PRIMARY KEY(STU_ID ,COURSE_ID)
);
39
NAME 数据类型 not null;
40
blob
41 c
DECIMAL(6,2)
42
name sjlx AUTO_INCREMENT;
43.c
索引范围
44
drop index name on table;
45c
int
46
alter table name change oldname newname varchar(255);
B、UNIQUE INDEX unique_id(id ASC)
- a
show databse name;
49 a
show table name
50d
51d
blob
VARBINARY
52
text
53
varchar
54
字段 类型 unique;
55
不知道-日期类型
56
字段 类型 not null;
57
定点数据类型
58
DECIMAL(6,2)
6代表最多的整数位数,2代表小数点后的长度
59
show database itcast;
60
create table book(
id int primary key,
title varchar(50)
);
61
62
63
fullext index filltext_text(name);
UNIQUE
DEFAULT
1 | |
gender ENUM(‘male’, ‘female’, ‘other’),
约束性强:
ENUM限制了字段的取值范围,保证数据的有效性。节省空间:相比于存储字符串,
ENUM在数据库内部实际上以整数存储,占用的空间比直接存储字符串小。方便管理:通过
ENUM类型,可以轻松在数据库层面统一管理有限的值范围。
如果你的枚举值是非常稳定的(比如性别、状态等不常变动的值),使用
ENUM是个好选择。如果枚举值经常需要修改或扩展,建议将这些值存储在单独的表中,通过外键关联来管理,这样在系统的扩展性和维护性上会更灵活。
数据类型
唯一索引
2.多选
66
DESCRIBE执行结果 不知道
67
TIMESTAMP 不知道-系统的时间-数据类型
68
int
69 a b d
主键
70
time类型不知道
71
72
MySQL中表示日期和时间的数据类型

YEAR 数据类型占用 1 个字节, YEAR 值的范围为从 1901 到 2155, 还有 0000
74

75
C、DESC 表名
D、Show CREATE TABLE 表名
76

80
81
D、DROP INDEX 索引名 ON 表名;
A、ALTER TABLE 表名 DROP INDEX 索引名;
3.判断题
100
ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin;
106
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX
110
普遍索引是由KEY或INDEX定义的索引,它是MySQL中的基本索引类型,可以创建在任何数据类型中。
112
enum类型使用
117
多字段主键的语法格式是:PRIMARY KEY (字段名1,字段名2,……字段名n),其中“字段名1,字段名2,……字段名n”指的是构成主键的多个字段的名称。
122

124
在MySQL中,查看数据表的方式有两种,分别是SHOW CREATE TABLE语句和DESCRIBE语句。
4.填空题
1. 在MySQL中,删除数据表的语法格式是【drop table 表名;】。
在MySQL中,删除字段的基本语法格式是【alter table 表名 drop 字段名;】。
在MySQL中,浮点数的类型有两种,分别是单精度浮点数类型(FLOAT)和【double】。
在MySQL中,SHOW CREATE TABLE语句不仅可以查看创建表时的定义语句,还可以查看表的【字符编码】
在MySQL中,设置表字段值自动增加的基本语法格式是【字段名 数据类型 auto_increment;】。
用于查看数据库中所有表的SQL语句是【show tables;】。
1. 在MySQL中,整数类型可分为5种,分别是TINYINT、SMALLINT、MEDIUMINT、【int】和BIGINT。
1. 在MySQL中,为了加快数据表的查询速度,可以建立【索引】来实现。
1. 在MySQL中,定义默认值约束的基本语法格式是【属性名 数据类型 default 默认值】。
1. 若想为表中插入的新记录自动生成唯一的ID,可以使用【唯一】约束来实现。-auti_increnment
空间索引是由【index】关键字定义的索引,它只能创建在空间数据类型的字段上。
1. 数据表中字段的唯一性约束是通过【unique】关键字定义的。
1. 在MySQL中,创建单字段主键的语法格式是【字段名 数据类型 primary key[默认值];】。
非空约束指的是字段的值不能为【null】。
1. 在MySQL中,将数据表grade的username字段修改为表第一个字段的语法格式是【alter table 表名 change username first; 】。P55
1.
在MySQL中,修改字段数据类型的基本语法格式是【alter table 表名 modify 字段名 新数据类型;】
在MySQL中,使用DESCRIBLE查看表字段信息的语法格式是【describe 数据表名】。
在MySQL中,修改字段名的基本语法格式是【alter table 表名 change 旧字段名 新字段名 新数据类型;
1. 在MySQL中,删除数据库名为itcast的命令是【drop database itcast;】。
数据表中的字段默认值是通过【default】关键字定义的
在MySQL中,查看创建好的数据库信息的语法格式是【show create database 数据库名;】。
1. 若想在book表中的authors和info字段上建立一个名称为mulitidx的索引,则SQL语句是【create index mulitidx on book (authors,info);】。
Create index 索引名 [索引类型] on 数据表名 (字段列表1,字段列表2);
1. 在MySQL中,存储的小数都是使用【浮点数】和定点数来表示的。
1. 在MySQL中,修改表名的基本语法格式【alter table 旧表名 rename 新表名;】。
MySQL中,查看已经存在数据库的基本语法格式是【show database;】。
1. 在MySQL的整数类型中,INT类型占用的字节数是【4】个。
若想在book表中的bookid字段上建立一个名称为uniqueidx的唯一性索引,则SQL语句是【alter table book add unique uniqueidx(bookid);】
1. 若想在book表的info字段上创建名称为fulltextidx的全文索引,则SQL语句是【alter table book add fulltext index fulltextidx(info);】。
5.简答题
168
唯一约束,数据库默认可以保存重复的值,唯一约束可以确保字段唯一性,如果字段设置唯一约束,那么它字段值不能重复
name 类型 unique;
169
char 不是变长。固定长度
varchar 变长
170
create table tb_qrade(
id int(11),
name varchar(20),
grade float
);
180
数据库默认允许字段空值,当你设置字段为非空约束。那么插入就不能是null值
属性名 字段类型 not null;
181
主键用于唯一标识表中每条记录,作为主键的字段值不能为空且是唯一的,可以是单一字段,也可以是多个字段的组合,每个表最多只能有一个主键约束。
182
单 由一个字段主从主键 primary key
多 多个字段组成主键 primary key
简述什么是索引
索引是数据库中为提高数据查询效率而常用的数据库对象,索引在数据表中一列或多列的值与记录行之间按照一定的顺序建立关系,以提高对数据表中数据的查询速度。
默认值约束用于给数据表中的字段指定默认值。即当在表中插入一条新纪录时,如果没有给这个字段赋值,那么数据库系统会自动为这个字段插入指定的默认值。
基本语法格式:属性名 数据类型 default 默认值;
6.总结
考察
数据库 数据表的查看方式
考察数据类型
例如
字符串数据类型
日期类型
二进制类型
浮点数类型
考察数据库的创建 删除 数据库编码方式更改
考察数据表-的
创建-(约束) -考察添加字段
修改表名
考察修改
修改字段数据类型
修改字段名和数据类型
考察删除
删除表 删除字段
考察约束
考察常用约束
not null
default
primary key
unique
分别考察建表指定约束和建表后指定约束
考察索引
mysql内的
1.考察索引的类型-和范围-作用
2.考察索引的创建 查看 删除

第三章
单选题
delete from name where id=1;
update student set grade=100 where id<4;
update student set grade=grade+20 ;
update stundent set grade=100 where grade>100;
delete
update name set id=100 where;
delete from user where id>5;
insert into student (id,name,grade) values(5,’boya’,99);
update student set name=youjun,grade=98.5 where id=1;
11.
TRUNCATE
考察数据库的操作-
错误考察
13
truncate考察-删除指定表 并重新创建表
truncate:通常被视为数据定义语句,只能删除表中的所有数据和直接删除表,再重新创建一个一模一样的表
14
delete from name where
15
insert into student (id,name)values (1,”小王);
16
insert into student values(1,”小王)
17
insert into student values(1,2,3)(2,3,4);
21
能用于删除表中的所有数据
B、TRUNCATE比DELETE语句效率更高
update student set grade=80 ;
23
update
多选题
update account set money=money +50 where money>=100 and money <=200;
update account set money=money +50 where money between 100 and 200
判断题
使用TRUNCATE删除表中的记录,它是先删除数据表,然后重新创建表,所以效率更高。(√ )
填空题
写出UPDATE语句的语法格式:【update 数据表名 set 字段名1=值1[,字段名2=值2,…][where 条件表达式];】。
delete from name where;
insert into name values(),();
truncate table name;
insert into ()values(),();
简答题
create database chapter03;
use chapter-3;
create table student (
id int(6) prim****ary key,
name varechar(255) not null,
grade float
);
insert into student (id,name,grade)values(1,”zhangsan”,98.5);
update student set grade=grade+100;
update student set grade=100 where gade>100;
delete from student;
truncate table studnet;
简述DELETE语句与TRUNCATE语句的区别
(1)delete语句是数据操纵语句,truncate语句是数据定义语句;
(2)delete语句后面跟where子句,通过指定where子句中的条件表达式只删满足条件的部分数据,而truncate语句只能删除表中的所有数据;
3)delete语句是逐行删除记录,而truncate语句是直接删除数据表,再创建一个一模一样的数据表,truncate语句效率比delete语句效率高;
(4)使用truncate语句删除表中数据后,再次向表中添加数据时,自动增加字段的默认初始值重新由1开始,而delete语句删除删除表中所有数据后,再次向表中添加数据时,自动增加字段的值为删除时该字段的最大值加1。
总结
考察对数据库数据的操作-
增加 单条 多条 insert into table ()values();
更新 修改 update table set id=id where id=1;
删除 -
1.delete删除 delete from name where id=1;
truncate删除 truncate from table;
3.区别
4.约束的作用
第四章
1.单选题
1.b
select *from student where not between 2and5;
- d
- 考察函数
TRIM(str)
4.a
select *from test limit 10,20;
select *from test limit 11,20;
- 分页考察
- c
select *from srudent order by grade desc;
- 排序
6.b
- 聚合函数
7.b
- 分组统计
8.b
- 通配符考察
9.A
分组-部门编号分组-部门平均工资-工资小于3000
select deptno,avg(sal) from emp group by depton where having avg(sal)<3000;
- 分组查找
10
order by
2.多选题
select id.name from student;
SELECT name,id FROM student;
- b a
- like考察匹配
13 b
14
select name as a from user;
如果您省略
AS关键字,某些数据库系统可能也会接受使用空格来指定别名,像这样:SELECT name a FROM user;
select *from table as u;
select *from table u;
- 设置别名
15
a b c
- 逻辑运算符号
16 a d
- 关键字LIMIT
3.判断题
- 7x
18.1
- DISTINCT
- 当DISTINCT作用多个字段时,只有DISTINCT关键字后指定的多个字段值都相同,才会被认作是重复记录
19.1
20.1
- BETWEEN AND
21.1
- 字符串排序
22.x
23 1
24 x
25不知道
4.填空题
26.Having
27.AVG
28AES
29 LIMIT
30LIKE
31DISTINCT
32
ORDER BY
33 TRIM(str)
34 group by
35 DISTINCT
5.总结
自己看
第五章
单选
ps:先复习多表查询
1.a
- 内链接 子查询
2.b
3.c
4.b
- 外键
foringn key
5.c
外键输出
alter table from drop foreign key name;
7
drop
8
20
9
inner join on条件
1 | |
10 b
11 a
12 in
any
in
all
13
多选
14
alter table name add constraint wjname
foreign key (zbname) references fname(fzdname);
C.ALTER TABLE 从表名 ADD CONSTRAINT FOREIGN KEY (外键字段名) REFERENCES 主表名(主键字段名);
15
a
b
c
d
16
可以在子查询中使用的比较运算符有
= !=
17
a c
判断题
省
填空题、1.any
2.exists-判断子查询的结果集是否为空
3.笛卡尔积
4.主键
5.匹配条件
6.left join
请简述左连接查询和右连接查询的区别。
左 left join
右right join
左-返回左表所有结果和右表符合的结果
右 右表所有结果和左表返回的结果
第六章
单选
fulltext
3.b
alter table name add index name_index(zdmz);
- 索引
查看试图
show create view name;
DESCRIBE stu_glass;
5.a
update view_stu set chinese=100;
b
7.d
show index from tablename;
create view view_stu as setlect *from student;
create index name on table(ziduan1);
- 索引失效问题
11
show create view name;
视图状态
DESCRIBE stu_glass
C.SHOW TABLE STATUS LIKE ‘视图名’;
12
show index from name;
1.需要数据表内数据的有from 更新 插入查看
2.非数据基本数据的 show展示 视图
多选
13
abcd
14
show index from emp;
15
- 视图的优点
create unique index stu_name on table(name)
p index name on;
判断题
EXPAIN
DESCRIBE
第八章
考察存储过程
单选
02 not found -考察02报错
- 条件处理程序
- close 游标
3.c
4.c
5.d
6.c
存储过程参数传递
7.b
set select user into user from name;
call
declare @num;
call name(20,@num);
10
- 不知道
declare val;
if val is null
then
select ‘val is null’;
else
select ‘val not null’;
end if;
了解一下if快,跟lua脚本一样
12
drop procedure if exists name;
- 存储过程的删除1
13
累加10
declare i int default 0;
while i<10
do
set i=i+1;
end while;
14 alter
- 修改存储过程
15 d
select
drop
16 b
声明 打开 使用 关闭
17
dropp 记不到 if exists nbame;
PROCEDURE
18
do while循环配套
repeat
until 条件
end repeat
语句回快
19 a
- 删除存储过程警告
20
loop死循环必备-无条件
21
- 不知道
22
所有存储过程的信息存放在下列哪个数据库中
- information_schema
- information_schema数据库下的Routines表存储所有存储过程的定义
23
存放在哪个表
- information_schema. Routines
24
- 代码阅读
- c 异常捕获后进行的操作
25
fetch name into a,n;
26
跳过本轮循环
、LEAVE语句(终止当前循环,跳出循环体)
ITERATE语句(结束本次循环,开始下一轮循环的执行)
loop
27
错误处理
sqlwarnih
28
声明游标
declare name cursor for 查询语句;
29
1. 一个流程控制语句(如 IF、CASE、LOOP、REPEAT、WHILE 等)可以保护或包含任意数量的SQL语句
30a
CREATE PROCEDURE Myproc () BEGIN SELECT * FROM student; END;
31 b
32d
D、UNDO
指的是撤销或回滚操作,它允许你撤销之前执行的事务所做的更改。
33d
34 a
leave
45
declare name int default 1;
36declare
37
declare name cursor for select;
38
create procedure
39
exit
40
open
41a
in
out
42
inout
43
exit
44
A、SHOW PROCEDURE STATUS LIKE’C%’\G
45
delimiter //
多选
46
不知道、INVOKER
DEFINER
47
查看存储过程
A、SHOW PROCEDURE STATUS name
B、SHOW CREATE PROCEDURE name
48-50
光标的定义位置
光标操作关键字
51
错误类型
52
流程控制语句
53
1. 在MySQL中,存储过程要修改的部分的取值包括
A、CONTAINS SQL - 这通常指的是存储过程包含SQL语句,但不一定修改数据。
B、NO SQL - 表示存储过程不包含任何SQL语句
C、READS SQL DATA - 表示存储过程包含读取数据的SQL语句,但不包含修改数据的语句
D、MODIFIES SQL DATA 表示存储过程包含修改数据的SQL语句,如INSERT、UPDATE、DELETE等。
54
create procedure name
begin
语句;
end
55
case month
when 1 then
;
when 2 then
;
else
;
ebd case;
CASE case_expr WHEN when_value THEN statement_list [WHEN when_value THEN statement_list]… [ELSE statement_list] END CASE
CASE WHEN expr_condition THEN statement_list [WHEN expr_condition THEN statement_list] [ELSE statement_list] END CASE;
case case_expt when when value then ;when when_value then end case;
56
loop
while
if
case
repeat
57
declare cmd_not_allow condition for SQLSTATE’42000’;
DECLARE cmd_not_allow CONDITION FOR 1148;
58
59
exit
continue
undo 不处理
60
if case
61
存储过程优点
效率高
安全性号 增强程序的可重用性
减少网络链接次数
62
1. LOOP 循环 repeat,while
63
1 2 3 4 5 6 10
64
if case
判断题
简答题
都可以用于创建一个带有条件判断的循环过程
While在语句执行时,先对指定的表达式进行判断,符合条件在执行循环体;
而repeat先执行循环体,然后在进行条件判断。
2. 简述什么是存储过程。
存储过程是一条或多条SQL语句的集合,他可以将常用或复杂的操作封装成一个代码块存储在数据库服务器中,以便重复使用,大大减少了数据库开发人员的工作量。
简述调用存储过程的优点有哪些?(写出至少3点)
A、使程序执行效率更高
B、安全性更好
C、增强程序的可重用性和维护性
D、实现了一次编写存储过程,多次调用的目标
简述存储过程中流程控制语句的作用?
流程控制语句用于将多个SQL语句划分或组成符合业务逻辑的代码块,用来根据条件控制语句的执行
.简述操作光标的基本步骤。(写出四个步骤)
定义光标、打开光标、利用光标、关闭
简述存储过程中的定义条件和处理程序分别是什么。
定义条件是事先定义程序执行过程中遇到的问题,处理程序定义了在遇到这些问题应当采取的处理方式,并且保证存储过程在遇到警告或错误时能继续执行。
declare id int default 0;
while id<=10
set id=id+1;
select id;
end while;
create procedure d()
begin
declare p1 int default 0;
My_loop;LOOP
SET P1=P1+1;
If P1<10 THEN ITERATE my_loop;
ElSECT p1>20 then leave my_loop;
End if;
Select ‘pl is between 10 AND 20’;
End LOOP my_loop;
end;
触发器
掌握触发器的创建删除
1.创建
create trigger test age
before/after insert/update/delete
on name for each row
begin
-sel;
end
drop trigger name;
show trigger name;
触发器中的SQL语句不能出现 SELECT * FROM TABLE 形式的查询 ,因为其会返回一个结果集 ,使用时会抛出错误Not allowed to return a result set from a trigger,可以使用SELECT INTO 为变量设置值
create trigger user_insert
after insert onuser for each row
begin
//插入日志表
insert into user_logs(id, operation, operate_time, operate_id, operate_params)
valies
(null, ‘insert’, now(), new.id, concat(‘插入的数据内容为: id=’,new.id,’,name=’,new.name, ‘, phone=’,NEW.phone, ‘, email=’, NEW.email, ‘, profession=’, NEW.profession))
end
**new **
获取数据
数据库的管理和维护
选择题
- a
show grants for ‘root‘@’’localhost’’
2.c
mysqldump -u root -p1234 mydata1 mydata2 > backup_file.sql;
mysqldump -uroot -pitcast mydb1 mydb2>d:/chapter08.sql
3.a
create user ‘username‘@’host’ identified by ‘123’;
4.c
5.c
6.d
7.b
revoke
8.a
show grants for ‘root‘@’localhost’;
9.d
10 a
11.b
12 c
13 c B
多选题
14
a d
15 A b
16 a b c d
17 a b c d
判断题
1
1
1
1
0
1
0
0
填空题
26.mysql_user
27.source
28.show
29.mysqldump
30 GRANT
31 * . *
32 revoke
33 空格
简答题
1.关闭mysql服务
2.使用–skip=grant-tables登录mysql服务
3.登录mysql
4.加载权限表
5.修改密码
6.启动mysql服务登录