写在前面
本文由:我的代码好助手!但随着未来技术进步有可能一心会想替代我的人工智能机器人ChatGPT编写!(bushi)
知识点
- 数据库是长期存储在计算机内、有组织、可共享的大量数据的集合。
- InnoDB存储引擎支持外键和事务以及全文检索。
- SQL语句又称结构化定义语言,mysql是一种关系型数据库管理系统。
- 数据的连接种类包含左外连接、右外连接、内连接。
- 死锁发生的原因是 并发控制。
- 如果要回滚一个事务,则要使用
rollback transaction
语句。 - 数据模型的3要素不包括数据类型。
- select是DML语句。
- 索引可以提高select操作的效率。
- 存储过程的优点是创建时可以引用一个不存在的对象;
- 存储过程可以输入多个参数,也可以带多个输出参数;
- 使用存储过程可以减少网络流量;
- 在存储过程中可以调用其他存储过程。
- 可以用
DECLARE CURSOR
来声明游标。 - 可以在视图上更新视图。
- 设置外键能够实现实体完整性。
- 在会话变量前面的字符为@
- 可以像查询表一样查询视图。(错误)
问答
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
表中的column1
和column2
列创建索引。
CREATE INDEX myindex ON mytable (column1, column2);
要创建唯一索引,可以在CREATE INDEX
命令中使用UNIQUE
关键字。例如,如果要为mytable
表创建唯一索引,可以使用以下命令:
这将创建一个唯一索引,它将确保表中的column1
和column2
列中的值是唯一的。
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
命令添加主键。例如,下面的语句会将表 users
的 id
字段设置为主键:
ALTER TABLE users ADD PRIMARY KEY (id);
10 简述创建表时有哪些约束?各类约束对表中数据的作用?
- 主键约束(PRIMARY KEY):主键约束用于定义表中的主键,该字段的值必须唯一,并且不能为 NULL。
- 唯一约束(UNIQUE):唯一约束用于定义字段的值必须唯一,但允许为 NULL。
- 非空约束(NOT NULL):非空约束用于限制字段的值不能为 NULL。
- 外键约束(FOREIGN KEY):外键约束用于限制表中的字段值必须与另一个表中的值匹配,以便在两个表之间建立关联。
11 MySQL中普通索引、主键索引和唯一性索引的区别是什么?
答:
- 普通索引是mysql中的基本索引类型,允许在定义索引的列中插入重复值和空值。
- 主键索引是一种特殊的索引,不允许有空值。
- 一般是在建表的时候同时创建主键索引。
- 一个表只能有一个主键索引。
- 唯一索引中索引列的值必须唯一,允许有空值。
- 如果有组合索引,则列值得组合必须唯一。
- 在一个表上可以创建多个unique索引。