加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2022-11-02 15:01:53 所属栏目:MySql教程 来源:网络
导读: 目录
数据库基础知识
1.1 标识符命名规则
2.创建和管理数据库
2.1创建数据库
2.2管理数据库的语句们
2.2.1查看当前连接中的数据库
2.2.2 切换当前使用的数据库
2.2.3查看当前数据库中都有哪

目录

数据库基础知识

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修改表ALTERTABLE

3.2.1添加一个字段

3.2.2修改一个字段MODIFY

3.2.3重命名一个字段 CHANGE

3.2.4删除一个字段 DELETE

3.3 重命名表

3.4 删除表

3.5 清空表

DCL 之 COMMIT 和 ROLLBACK

4.1COMMIT 提交

4.2ROLLBACK 回滚,撤销

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语句中使用

1`

(着重号)引起来

6. 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了

2.创建和管理数据库2.1创建数据库

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

方式1:创建数据库

1CREATE DATABASE 数据库名; 2

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

***SHOW CREATE DATABASE 数据库名;***

目前使用的是 *utf8 *类型

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

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

方式3:(推荐)

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

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

2.2管理数据库的语句们2.2.1查看当前连接中的数据库

1SHOW DATABASES; 2

2.2.2 切换当前使用的数据库

1USE 数据库名; 2

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

1SHOW TABLES; 2

2.2.4查看当前使用的数据库

1SELECT DATABASE() FROM DUAL; 2

2.2.4查看指定数据库下的表

1SELECT TABLES FROM 数据库名; 2

2.3修改数据库

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

2.3.1 更改数据库字符集

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

* 注意:DATABASE不能改名*

2.4删除数据库

方式1:

1DROP DATABASE 数据库名; 2

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

1DROP DATABASE IF EXISTS 数据库名; 2

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

3.创建表和管理表3.1创建一个表

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

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

方式1:白手起家法

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

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

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

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

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

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

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

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

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

***WHERE 1=2 ;***

3.2修改表ALTERTABLE3.2.1添加一个字段

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

1ALTER TABLE 表名 2ADD 字段名 字段类型; 3

方法2:

1ALTER TABLE 表名 2ADD 字段名 类型 AFTER 已有字段 / FIRST 3 4

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

3.2.2修改一个字段MODIFY

字段类型一般不修改

修改字段长度

3.2.3重命名一个字段 CHANGE

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

3.2.4删除一个字段 DELETE

1ALTER TABLE 表名 2DELETE COLUMN 字段; 3

*一次只能删除一个字段*

3.3 重命名表

1RENAME TABLE 原表名 TO 新名; 2

3.4 删除表

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

1DROP TABLE IF EXISTS 表名 ; 2

3.5 清空表

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

1TRUNCATE TABLE 表名; 2

4. DCL 之 COMMIT 和 ROLLBACK4.1COMMIT 提交

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

4.2ROLLBACK 回滚,撤销

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

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

4.2.1 对比一下 TRUNCATE TABLE 和 DELETE FROM

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

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

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

**DDL 和 DML 的说明**

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

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

SET autocommit = FALSE

则执行的DML可以回滚

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!