MySQL数据库和表的管理
数据库
创建数据库
创建数据库并指定字符集,mysql强烈建议utf8mb4
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集;
# 例子
# CREATE DATABASE IF NOT EXISTS db CHARACTER SET "utf8mb4";
注意:DATABASE 不能改名。一些可视化工具可以改名,它是通过建新库,把所有表复制到新库,再删除旧库完成的。
使用数据库
- 查看当前所有的数据库
# 有一个S,代表多个数据库
SHOW DATABASES;
- 查看当前正在使用的数据库
# 使用的一个mysql中的全局函数
SELECT DATABASE();
查看指定库下所有的表
SHOW TABLES FROM 数据库名;
查看数据库的创建信息
SHOW CREATE DATABASE 数据库名;
或者:
SHOW CREATE DATABASE 数据库名\G
使用/切换数据库
USE 数据库名;
注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上“数据库名.”。
修改数据库
- 更改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集;
删除数据库
DROP DATABASE IF EXISTS 数据库名;
表
创建表
- 必须具备
- CREATE TABLE 权限
- 存储空间
- 语法格式
CREATE TABLE [IF NOT EXISTS] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
);
- 必须指定
- 表名
- 列名,数据类型,长度
查看表结构
DESC 表名;
查看创建表的语句
SHOW CREATE TABLE 表名;
修改表
修改表指的是修改数据库中已经存在的数据表的结构。
使用 ALTER TABLE 语句可以实现:
- 向已有的表中添加列
- 修改现有表中的列
- 删除现有表中的列
- 重命名现有表中的列
添加一列
ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;
修改一列
ALTER TABLE 表名 MODIFY 【COLUMN】 字段名1 字段类型,字段名2 字段类型.... 【DEFAULT 默认值】【FIRST|AFTER 字段名
2】;
重命名一列
ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
删除一列
ALTER TABLE 表名 DROP 【COLUMN】字段名;
重命名表
RENAME TABLE 表名 TO 新表名;
# 或者
ALTER TABLE 表名 RENAME [TO] 新表名;
删除表
- 在MySQL中,当一张数据表没有与其他任何数据表形成关联关系时,可以将当前数据表直接删除。
- 数据和结构都被删除
- 所有正在运行的相关事务被提交
- 所有相关索引被删除
- DROP TABLE 语句不能回滚
DROP TABLE IF EXISTS 表名;
清空表
- 只删除表的数据,保留表的结构字段
- TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚
TRUNCATE TABLE 表名;