资阳市住房和城乡建设局网站,科技感网站,git做网站根目录,北京行业网站制作SQL Statements SQL语句的学习 之 DDL针对数据库的基本操作
什么是database
在 MySQL 中#xff0c;Database#xff08;数据库#xff09;是一组有组织的数据集合#xff0c;可以存储和管理相关数据的容器。一个数据库可以包含多个表#xff08;Table#xff09;…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_nameDROP数据库将删除该数据库中的所有表并删除该数据库。要使用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 是要删除的数据库的名称。 对于在窗口中输入命令时需要注意切勿忘写;不然不知道这个语句是否结束