MySQL期末复习题(大三上学期)

MySQL期末复习题(大三上学期)

焦虑烧麦 66 2022-12-11

写在前面

本文由:我的代码好助手!但随着未来技术进步有可能一心会想替代我的人工智能机器人ChatGPT编写!(bushi)
openai-avatar

知识点

  1. 数据库是长期存储在计算机内、有组织、可共享大量数据的集合
  2. InnoDB存储引擎支持外键和事务以及全文检索
  3. SQL语句又称结构化定义语言mysql是一种关系型数据库管理系统
  4. 数据的连接种类包含左外连接、右外连接、内连接
  5. 死锁发生的原因是 并发控制
  6. 如果要回滚一个事务,则要使用rollback transaction语句。
  7. 数据模型的3要素不包括数据类型。
  8. select是DML语句。
  9. 索引可以提高select操作的效率。
  10. 存储过程的优点是创建时可以引用一个不存在的对象;
    1. 存储过程可以输入多个参数,也可以带多个输出参数;
    2. 使用存储过程可以减少网络流量;
    3. 在存储过程中可以调用其他存储过程。
  11. 可以用 DECLARE CURSOR 来声明游标
  12. 可以在视图上更新视图。
  13. 设置外键能够实现实体完整性。
  14. 在会话变量前面的字符为@
  15. 可以像查询表一样查询视图。(错误)

问答

1 选择当前工作数据库使用什么命令?

答:使用USE命令来选择当前工作数据库。

例如,如果要选择名为mydatabase的数据库作为当前工作数据库则使用以下命令

USE mydatabase;

2 删除表与快速清空表的命令。DELETE DROP 的用法。

DELTET用于删除表中的数据;例如,如果要删除名为mytable的表中的所有数据,可以使用以下命令:

这将清空表中的数据,但表本身仍然存在。

DELETE FROM mytable;

想彻底删除表,必须使用DROP命令。例如,如果要删除名为mytable的表,可以使用以下命令:

DROP TABLE mytable;

3 创建视图的命令是什么?创建索引的命令是什么?唯一索引的关键字是什么?

使用CREATE VIEW命令来创建视图。例如,如果要创建名为myview的视图,可以使用以下命令:

该命令将创建一个名为myview的视图,该视图是mytable表的一个副本。

CREATE VIEW myview AS
SELECT * FROM mytable;

要创建索引,可以使用CREATE INDEX命令。例如,如果要为名为mytable的表创建索引,可以使用以下命令:

该命令将为mytable表中的column1column2列创建索引。

CREATE INDEX myindex ON mytable (column1, column2);

要创建唯一索引,可以在CREATE INDEX命令中使用UNIQUE关键字。例如,如果要为mytable表创建唯一索引,可以使用以下命令:

这将创建一个唯一索引,它将确保表中的column1column2列中的值是唯一的。

CREATE UNIQUE INDEX myindex ON mytable (column1, column2);

4 函数round(58.3049,2)的返回值?

MySQL的ROUND()函数接受两个参数:要舍入的数字和要保留的小数位数。因此,在上面的例子中,ROUND(58.3049,2)的返回值将是58.30。

该函数将根据下列规则舍入数字:

  • 如果小数部分的第n+1位(其中n是指定的小数位数)大于或等于5,则将第n位加1。
  • 如果小数部分的第n+1位(其中n是指定的小数位数)小于5,则第n位不变。

因此,对于上面的例子,由于小数部分的第3位(049)大于或等于5,所以第2位(30)将加1,并舍入为58.30。

请注意,如果指定的小数位数超过了原始数字的小数位数,则该函数将在数字的末尾添加零。例如,ROUND(58.3049,3)的返回值将是58.305。

5 限制显示行数使用的关键字是什么?

MySQL使用LIMIT关键字来限制显示行数。例如,如果要查询名为mytable的表中的前10行,可以使用以下语句:

SELECT * FROM mytable LIMIT 10;

还可以使用LIMIT关键字来跳过查询的前n行,并仅显示其余的行。例如,如果要查询名为mytable的表中的第11行到第20行,可以使用以下语句:

这将返回mytable表中的第11行到第20行。

SELECT * FROM mytable LIMIT 10, 10;

6 删除数据库的命令。

DROP DATABASE databasename;

7 修改表结构的命令。

修改表结构的命令是 ALTER TABLE。例如,如果你想添加一个新的字段 email 到表 users 中,你可以使用下面的语句:

ALTER TABLE users ADD email VARCHAR(255);

请注意,在使用 ALTER TABLE 命令时,你需要具有相应表的修改权限。

8 各个聚合函数的作用。

MySQL提供了多种聚合函数,用于对一组数据进行统计。这些函数包括:

  • AVG():求平均值
  • COUNT():求行数
  • MAX():求最大值
  • MIN():求最小值
  • SUM():求和

例如,如果你想求出表 sales 中销售额最高的那个产品的销售额,你可以使用以下语句:

这条语句会返回表 products 中销售额最高的那个产品的销售额。

SELECT MAX(sales) FROM products;

9 主键的建立有几种方法?

1 在创建表时设置主键。例如,下面的语句会在创建表时设置 id 字段为主键:

CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(255)
);

2 使用 ALTER TABLE 命令添加主键。例如,下面的语句会将表 usersid 字段设置为主键:

ALTER TABLE users ADD PRIMARY KEY (id);

10 简述创建表时有哪些约束?各类约束对表中数据的作用?

  • 主键约束(PRIMARY KEY):主键约束用于定义表中的主键,该字段的值必须唯一,并且不能为 NULL。
  • 唯一约束(UNIQUE):唯一约束用于定义字段的值必须唯一,但允许为 NULL。
  • 非空约束(NOT NULL):非空约束用于限制字段的值不能为 NULL。
  • 外键约束(FOREIGN KEY):外键约束用于限制表中的字段值必须与另一个表中的值匹配,以便在两个表之间建立关联。

11 MySQL中普通索引、主键索引和唯一性索引的区别是什么?

答:

  1. 普通索引是mysql中的基本索引类型,允许在定义索引的列中插入重复值和空值。
  2. 主键索引是一种特殊的索引,不允许有空值。
  3. 一般是在建表的时候同时创建主键索引。
  4. 一个表只能有一个主键索引。
  5. 唯一索引中索引列的值必须唯一,允许有空值。
  6. 如果有组合索引,则列值得组合必须唯一。
  7. 在一个表上可以创建多个unique索引。