MySQL学习笔记12———DDL,创建和管理表,DCL,提交和回滚

目录

1. 数据库基础知识

1.1 标识符命名规则

2.创建和管理数据库 

2.1 创建数据库

 2.2 管理数据库的语句们

2.2.1 查看当前连接中的数据库

2.2.2 切换当前使用的数据库

2.2.3 查看当前数据库中都有哪些表

2.2.4 查看当前使用的数据库

 2.2.4 查看指定数据库下的表

2.3 修改数据库 

2.3.1 更改数据库字符集

2.4 删除数据库

3. 创建表和管理表 

3.1 创建一个表

3.2 修改表 ALTER TABLE

3.2.1 添加一个字段

3.2.2 修改一个字段 MODIFY

3.2.3 重命名一个字段 CHANGE 

3.2.4 删除一个字段 DELETE

 3.3 重命名表

3.4 删除表

3.5  清空表 

4. DCL 之 COMMIT 和 ROLLBACK 

4.1 COMMIT 提交 

4.2  ROLLBACK 回滚,撤销

4.2.1 对比一下 TRUNCATE TABLE 和 DELETE FROM


1. 数据库基础知识

        1. 从系统架构上来看,MySQL数据库系统从大到小依次是 数据库服务器 - 数据库 - 数据表 - 数据表的行和列

        所以在下载完MySQL数据库系统之后,第一步就是创建数据库。所谓数据库就是下面这个:

数据库有一个专业名字,叫标识符

1.1 标识符命名规则

        1. 数据库名、表名不得超过30个字符,变量名限制为29个
        2. 必须只能包含 A–Z, a–z, 0–9, _共63个字符
        3. 数据库名、表名、字段名等对象名中间不要包含空格
        4. 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
        5. 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用 `(着重号)引起来
        6. 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了 

2.创建和管理数据库 

2.1 创建数据库

        CREATE 之后记得把光标放在 MySQL 处按一下 F5 

方式1:创建数据库

CREATE DATABASE 数据库名;

查看数据库目前使用的字符集

        SHOW CREATE DATABASE 数据库名;

        目前使用的是 utf8 类型 

方式2:创建数据库,用指定的字符集(8.0默认utf8,如果是5.7版本默认是拉丁,需要指明一下)

CREATE DATABASE 数据库名 CHARACTER SET '字符集';

 方式3:(推荐)

        如果要创建的数据库已经存在,则创建不成功,且不会报错;若不存在,则创建成功

CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET '字符集';

 2.2 管理数据库的语句们

2.2.1 查看当前连接中的数据库

SHOW DATABASES;

2.2.2 切换当前使用的数据库

USE 数据库名;

2.2.3 查看当前数据库中都有哪些表

SHOW TABLES;

2.2.4 查看当前使用的数据库

SELECT  DATABASE() FROM DUAL;

 2.2.4 查看指定数据库下的表

SELECT  TABLES FROM 数据库名;

2.3 修改数据库 

        数据库一般不会修改,尤其是当数据库里已经有大量的表的时候

2.3.1 更改数据库字符集

ALTER DATABASE 数据库名  CHARACTER SET '字符集名 ';

             注意:DATABASE不能改名 

2.4 删除数据库

        方式1:

DROP DATABASE 数据库名;

        方式2:(如果存在则删除成功,不存在就默默结束)

DROP DATABASE IF EXISTS 数据库名;

数据库的删除一般不可恢复...从删库到跑路 ,务必慎重

3. 创建表和管理表 

3.1 创建一个表

        与创建数据库不同的是,不仅需要创建一个表,还需要明确字段

如果创建表时没有指明字符集,则默认使用表所在的数据库的字符集

        方式1:白手起家法

CREATE TABLE IF NOT EXISTS 表名
( 
 字段1 类型,
 字段2 类型,
 字段3 类型
);

        创建之后  DESC 表名;  查看一下创建结果

         使用VARCHAR时必须指明长度,也就是字符最大数;INT就是4个字节

  方式2: (借鸡生蛋法) 基于现有的表去创建新的表

        就是在子查询上面加个CREATE AS 的帽,其余都不变,就会将查询结果生成一张新表

CREATE TABLE 表名
AS
SELECT 已有字段1,已有字段2
FROM 现有的表;

         用列的别名和多表连接生成一个新表表,肥肠好用!

        问题:创建一个表,和 employees 结构一样,但是 不包含表的数据

                   用 WHERE 添加一个永不满足的条件即可:

                        WHERE 1=2 ;

3.2 修改表 ALTER TABLE

3.2.1 添加一个字段

方法1:   这种写法默认把字段添加到最后

ALTER TABLE 表名
ADD 字段名 字段类型;

方法2:

ALTER TABLE 表名
ADD 字段名 类型  AFTER 已有字段 / FIRST

        AFTER 可以选择早某个字段的后面添加;FIRST后面没有参数,自动添加到第一位 

3.2.2 修改一个字段 MODIFY

        字段类型一般不修改

        修改字段长度

3.2.3 重命名一个字段 CHANGE 

ALTER TABLE 表名
CHANGE 字段原名 新名 类型(可以是原来的,也可以顺便改了)

3.2.4 删除一个字段 DELETE

ALTER TABLE 表名
DELETE COLUMN 字段; 

 一次只能删除一个字段 

 3.3 重命名表

RENAME TABLE 原表名 TO 新名;

3.4 删除表

        不光将表结构删除,表中数据也被删除了,释放表空间

DROP TABLE IF EXISTS 表名 ;

3.5  清空表 

        删除表中数据,但是表结构存在

TRUNCATE TABLE 表名;

4. DCL 之 COMMIT 和 ROLLBACK 

4.1 COMMIT 提交 

        COMMIT :提交数据。一旦执行COMMIT ,数据就被永久保存在数据库中,不能ROLLBACK了,可以理解为不能撤销了

4.2  ROLLBACK 回滚,撤销

        可以理解为撤销。回滚到最近的一次 COMMIT 之后 

         相当于第7行操作被撤销了 

4.2.1 对比一下 TRUNCATE TABLE 和 DELETE FROM

相同点:都可以实现对表中所有数据的删除,同时保留表结构

不同点: TRUNCATE 执行之后,数据不可以回滚 

                DELETE FROM 可以删除所有 / 部分数据(更加灵活),并且数据可以回滚

 DDL 和 DML 的说明

         TRUNCATE 是 DDL,一旦执行不可以回滚

         DELETE FROM 是 DML,默认情况下一旦执行不可回滚,但是如果在执行DML之前,执行:

SET autocommit = FALSE

        则执行的DML可以回滚


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值