SQL Statements SQL语句的学习 之 DDL针对数据库的基本操作
什么是database
在 MySQL 中,Database(数据库)是一组有组织的数据集合,可以存储和管理相关数据的容器。一个数据库可以包含多个表(Table),每个表可以包含多个数据行(Row),每行可以包含多个数据列(Column),用于存储数据的字段。通过对数据库进行操作,可以轻松地对其中存储的数据进行添加、删除、更新和查询等操作。
MySQL 中的数据库还有一些其他的特性,例如可以创建索引来优化查询性能,可以创建视图来方便查询和使用,可以创建存储过程和触发器来执行复杂的业务逻辑等。
MySQL 中的 Database 是一个非常重要的概念,它是存储和管理数据的基本单位,为开发人员和数据库管理员提供了非常方便的工具和功能来处理数据。
总之,一个安装好的MySQL里可以创建多个Database,一个Database里面有多个表,一个表里有多行数据。database除了有表之外还有视图、存储过程、触发器等。
什么是DDL
DDL代表数据定义语言(Data Definition Language),是用于管理数据库结构和模式的语言。DDL命令允许您创建、修改、删除数据库对象,如表、索引、约束等。常见的DDL命令包括CREATE(创建)、ALTER(修改)和DROP(删除)等。
查看自己的数据库并切换到指定数据库中
查看自己有哪些数据库: show databases;
切换到指定数据库中:use [指定数据库]
比如我想切换到taskplatform数据库中
use taskplatform
提示Database changed 表示切换成功
如果我想要切换到一个不存在的数据库呢?
抛出 ERROR 1049 (42000): Unknown database ‘study6666’ 异常
DATABASE 相关语句
在下面的语句中 {|}表示内部的多个选一个,[]表示可选项
创建数据库语句
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [相关操作] ...
相关操作: [默认] {
CHARACTER SET [=] charset_name | COLLATE [=] collation_name | ENCRYPTION [=] {'Y' | 'N'}
}
创建数据库将创建具有给定名称的数据库。要使用此语句,您需要使用数据库的创建权限。 create schema 和 create database 是一个意思。
如果数据库存在且您没有指定IF NOT EXISTS,则会发生错误。
不允许在具有存在LOCK表语句的会话中创建数据库。
相关参数
字符集和排序规则参数
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
字符集选项将更改默认的数据库字符集。一般会将字符集编码设置为 utf8 或者 utf8mb4
排序规则选项会更改默认的数据库排序规则。一般情况下不会修改这个排序规则,用默认的。
要查看可用的字符集和排序规则,请分别使用SHOW字符集和SHOW排序规则语句。
例如: SHOW COLLATION WHERE Charset = 'latin1'
加密参数
在MySQL 8.0.16中引入的加密选项定义了默认的数据库加密,该加密将由数据库中创建的表继承。允许的值为“Y”(启用加密)和“N”(禁用加密)。只有新创建的表才会继承默认的数据库加密。对于与数据库关联的现有表,它们的加密将保持不变。
MySQL中的数据库被实现为一个包含与数据库中的表对应的文件的目录。因为在最初创建数据库时没有表,所以创建数据库语句只在MySQL数据目录下创建一个目录。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本。
在MySQL 8.0中,不支持通过手动创建数据目录下的目录(例如,使用mkdir)来创建数据库目录。
在创建数据库时,请允许服务器管理该目录和其中的文件。直接操作数据库目录和文件可能会导致不一致和意外的结果。
MySQL对数据库的数量没有限制。底层文件系统可能对目录的数量有限制。
举例
创建一个名为"mydatabase"的MySQL数据库,并将其编码集设置为"utf8mb4"
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
解释一下:
CREATE DATABASE
是用来创建数据库的命令;mydatabase
是要创建的数据库的名称;CHARACTER SET utf8mb4
指定了编码集为 utf8mb4,这是一种支持更广泛的字符集和表情符号的编码集;COLLATE utf8mb4_unicode_ci
是用于排序和比较字符数据的规则,这里采用了基于 Unicode 的 utf8mb4_unicode_ci 规则。
更改数据库语句
ALTER {DATABASE | SCHEMA} [db_name] alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1}
}
更改数据库允许您更改数据库的总体特征。这些特征被存储在数据字典中。此语句需要对数据库的更改权限。
如果省略了该数据库名称,则该语句将应用于默认数据库。在这种情况下,如果没有默认的数据库,就会发生一个错误.
对于从语句中省略的任何alter_option ,数据库将保留其当前的选项值,但更改字符集可能会更改排序规则,反之亦然。
相关参数
除了创建时提到的参数外还新增了只读选项
只读选项
故名思意,该数据库只读,在MySQL8.0.22中引入只读属性来控制是否允许修改数据库和数据库中的内容,0(非只读)和1(只读)
举例
修改一个名为"mydatabase"的MySQL数据库编码集为"utf8mb4"的SQL命令
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
解释一下:
ALTER DATABASE
是用来修改数据库的命令;mydatabase
是要修改的数据库的名称;CHARACTER SET utf8mb4
指定了要将数据库的编码集修改为 utf8mb4,这是一种支持更广泛的字符集和表情符号的编码集;COLLATE utf8mb4_unicode_ci
是用于排序和比较字符数据的规则,这里采用了基于 Unicode 的 utf8mb4_unicode_ci 规则。
删除数据库语句
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP数据库将删除该数据库中的所有表,并删除该数据库。要使用DROP数据库,您需要使用该数据库上的DROP权限。DROP模式是DROP数据库的同义词。
执行这句的时候一定一定要非常小心,确保数据库名称一定是正确的,也务必确保你就是要删掉该数据库!!!
请注意,一旦数据库被删除,其中的所有数据都将被永久删除且不可恢复。因此,在执行删除操作之前,请确保您已经备份了重要的数据或者已经确认不再需要这个数据库中的任何数据。
IF EXISTS ,用于防止在数据库不存在时发生错误。
举例
删除一个名为"mydatabase"的MySQL数据库的SQL命令:
DROP DATABASE mydatabase;
解释一下:
DROP DATABASE
是用来删除数据库的命令;
据。
IF EXISTS ,用于防止在数据库不存在时发生错误。
举例
删除一个名为"mydatabase"的MySQL数据库的SQL命令:
DROP DATABASE mydatabase;
解释一下:
DROP DATABASE
是用来删除数据库的命令;mydatabase
是要删除的数据库的名称。
对于在窗口中输入命令时,需要注意,切勿忘写;
不然不知道这个语句是否结束