-- 注意:数据库名不得和已有的数据库重名
-- 一、创建数据库
-- create database [if not exists] 数据库名;
-- 创建一个名为A1的数据库;
create database if not exists A1;
-- 创建一个名为B1的数据库;
create database if not exists B1;
-- 单纯建一个名为A1的数据库语句是:
-- create database A1;
-- 加 if not exists 是因假如单纯建数据库A1
-- 的语句在第二次运行数据库语句的时候会报错,
-- 比如:电脑桌面已经有文件命名为A1了,但是创建再
-- 一个名为A1的文件会发生冲突,但是不要进入误区了,
-- 只是同类型的文件不能同名,不同类型还是可以同名的。
-- 二、查看数据库建库语句
-- show create database 数据库名;
show create database A1; -- 查看数据库A1的建库语句。
-- 会得到以下内容
-- 第一列列名是database,第二列列名是Create Database;
-- 第一列列名database下方内容是:
-- A1
-- 意思是:
-- 数据库名为 A1
-- 第二列列名Create Database下方内容是:
-- CREATE DATABASE `A1`
-- /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */
-- /*!80016 DEFAULT ENCRYPTION='N' */
-- 意思是:
-- 创建数据库A1,默认字符集合(default character set)为:utf8mb4
-- 排序规则(collate)为:utf8mb4_0900_ai_ci
-- 默认不加密
show create database B1; -- 查看数据库B1的建库语句
-- 会得到以下内容
-- 第一列列名是database,第二列列名是Create Database;
-- 第一列列名database下方内容是:
-- B1
-- 意思是:数据库名为 B1
-- 第二列列名Create Database下方内容是:
-- CREATE DATABASE `B1`
-- /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */
-- /*!80016 DEFAULT ENCRYPTION='N' */
-- 意思是:
-- 创建数据库B1,默认字符集合(default character set)为:utf8mb4
-- 排序规则(collate)为:utf8mb4_0900_ai_ci
-- 默认不加密
-- 三、修改数据库字符集和排序方式
-- alter database A1 default character set 字符集合 collate 排序规则名;
-- MYSQL 8.0 默认的字符集是 'utf8mb4',而排序规则名使用的则是'utf8mb4_0900_ai_ci'。
-- 当前数据库查询字符集和排序规则名的方法:show create database A1;
-- 点击表格列名为Create Database下方的内容,按ctrl+c复制再ctrl+v粘贴在文本上进行查看,
-- 会得到以下内容
-- CREATE DATABASE `A1`
-- /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */
-- /*!80016 DEFAULT ENCRYPTION='N' */
-- 字符集的种类:
-- utf8 / utf8mb4:支持多语言,包括中文(推荐使用utf8mb4,完全支持emoji)
-- gbk / gb2312:主要用于简体中文
-- latin1:西欧语言字符集
-- ascii:基本的英文字符集
-- 常用排序规则:
-- utf8mb4_general_ci:通用规则,不区分大小写
-- utf8mb4_unicode_ci:基于Unicode标准,更准确的多语言排序
-- utf8mb4_bin:二进制比较,区分大小写
-- gbk_chinese_ci:中文排序规则
-- 创建数据库的同时设置默认字符集以及排序规则;
create database if not exists C1 default character set gbk collate gbk_bin;
-- 查看数据库C1的建库语句:show create database C1;
-- 结果如下:
-- CREATE DATABASE `C1`
-- /*!40100 DEFAULT CHARACTER SET gbk COLLATE gbk_bin */
-- /*!80016 DEFAULT ENCRYPTION='N' */
-- 四、查看所有数据库
-- show databases;
-- 查看所有数据库会有六行内容
-- 1.a1 (创建的数据库A1)
-- 2.b1 (创建的数据库B1)
-- 3.c1 (创建的数据库C1)
-- 4. information_schema
-- 作用:元数据库,存储所有数据库、表、列、权限等结构信息
-- 用途:查询数据库结构,如查看表结构、列信息等
-- 示例:查看所有表信息
-- SELECT * FROM information_schema.tables;
-- 5. mysql
-- 作用:存储MySQL系统信息,包括用户账户、权限、插件等
-- 用途:用户管理和权限控制
-- 示例:查看用户列表
-- SELECT user, host FROM mysql.user;
-- 6. performance_schema
-- 作用:性能监控数据库,收集服务器性能指标
-- 用途:性能分析和优化
-- 示例:查看性能相关表
-- SHOW TABLES FROM performance_schema;
-- 五、指定数据库
-- 使用原因:执行 "use A1;"后,后续的建表、查询等操作默认都在该数据库中执行。
-- use 数据库名
use A1;
use B1;
-- 六、删除数据库
-- drop database [if exists] 数据库名;
drop database if exists A1;
drop database B1;
-- drop database if exists A1 : 如果有数据库A1则删除,
-- 如果没有则不影响下一行的运行。
-- drop database B1 : 单独第一次运行则删除数据库B1,
-- 单独第二次运行则报错,报错会停止进行下一行代码的运行。
-- 习题(看完可以自己练练手)
-- 1,创建数据库,数据库名为自己的博客名
-- 2,查看所有系统数据库
-- 3,查看自己创建的数据库的建库语句
-- 4,创建数据库test2,设置默认字符集为gbk,排序规则为gbk_bin;
-- 5, 修改数据库test2 ,将字符集和编码方式(排序规则)修改为utf8mb4和utf8mb4_0900_ai_ci;
-- 6,删除数据库test2
-- 7,使用以创建日期为命名的数据库
-- 课外思考1:4个系统数据库的作用是什么?
-- 课外思考2:MYSQL数据库支持的存储引擎类型有哪些?特点分别是?