Mysql学习总结七:创建和管理数据库、创建表、修改表、删除表

1、创建和管理数据库

1.1 创建数据库

判断数据库是否已经存在,不存在则创建数据库:

CREATE DATABASE IF NOT EXISTS 数据库名;

1.2 使用数据库

查看当前所有的数据库:

SHOW DATABASES; #有一个S,代表多个数据库

查看当前正在使用的数据库:

SELECT DATABASE();  #使用的一个 mysql 中的全局函数

查看指定库下所有的表:

SHOW TABLES FROM 数据库名;

查看数据库的创建信息:

SHOW CREATE DATABASE 数据库名;

使用/切换数据库:

USE 数据库名;

1.3 修改数据库

更改数据库字符集

ALTER DATABASE 数据库名 CHARACTER SET 字符集;  #比如:gbk、utf8等

1.4 删除数据库

删除指定的数据库:

DROP DATABASE IF EXISTS 数据库名;

2、创建表

2.1 创建方式1:自定义创建

必须具备:

  • CREATE TABLE权限
  • 存储空间
    语法格式如下:
CREATE TABLE [IF NOT EXISTS] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
......
[表约束条件]
);

2.2 创建方式2:使用已有表创建

  • 使用 AS subquery 选项,将创建表和插入数据结合起来
  • 指定的列和子查询中的列要一一对应
  • 通过列名和默认值定义列

eg:把员工表employees备份一份:

CREATE TABLE employees_backup AS SELECT * FROM employees;

2.3 查看数据表结构

在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用 DESCRIBE/DESC 语句查看数据表结构,也支持使用 SHOW CREATE TABLE 语句查看数据表结构。

SHOW CREATE TABLE 表名\G

使用SHOW CREATE TABLE语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码

3、修改表

3.1 追加一个列

语法格式如下:

ALTER TABLE 表名 ADDCOLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;

3.2 修改一个列

可以修改列的数据类型,长度、默认值和位置,语法格式如下:

ALTER TABLE 表名 MODIFYCOLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名
2;

3.3 重命名一个列

ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;

3.4 删除一个列

ALTER TABLE 表名 DROPCOLUMN】字段名

4、重命名表

方式一:使用RENAME

RENAME TABLE emp
TO myemp;

方式二:

ALTER table dept
RENAME [TO] detail_dept;  -- [TO]可以省略

5、删除表

DROP TABLE 语句不能回滚

DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, ..., 数据表n];

6、清空表

TRUNCATE TABLE语句:删除表中所有的数据+释放表的存储空间。

TRUNCATE TABLE detail_dept;

TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚

SET autocommit = FALSE;  #先将自动提交关闭
 
DELETE FROM emp2;  #使用delete清空表
 
SELECT * FROM emp2;  #此时数据应为空
 
ROLLBACK;  #回滚
 
SELECT * FROM emp2;  #此时数据会恢复

阿里开发规范:
【参考】TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但 TRUNCATE 无事务且不触发 TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句
说明:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值