MySQL学习笔记-创建与管理表

全部笔记🔗
本文记录了学习MySQL的笔记,其中课件资源全部来源于尚硅谷,详细信息请移步b站

MySQL数据库、数据表的创建、修改、删除

1.1 数据存储的过程
  1. 创建数据库
  2. 确认字段
  3. 创建数据表
  4. 插入数据
1.2 标识符号命名规则
  • 数据库名、表名不能够超过30个字符,变量名不能超过29
  • 使用字母和数字
  • 中间不能包含空格
  • 保证字端名和类型的一致性
1.3 创建数据库

方式1:

  • CREATE DATABASE mytest1; 创建数据使用的是默认的字符集

方式2:

  • CREATE DATABASE mytest CHARACTER SET 'gbk' 显示的指明了要创建的数据库的字符集,这里用gbk为🌰

方式3:

  • CREATE DATABASE IF NOT EXISTS mytest CHARACTER SET 'utf8' 如果要创建的数据库已经存在了就不会创建了(即使字符集不同),但是不会报错
1.4 管理数据库
  • 查看当前连接中的数据库都有哪些SHOW DATABASES
  • 切换数据库USE 数据库名
  • 查看当前的数据库中保存的表SHOW TABLES
  • 查看指定数据库下保存的数据表SHOW TABLES FROM 数据库名
1.5 修改数据库

一般的修改数据库都是更改字符集,因为修改数据库的成本是很高的:将旧库中的内容都要复制到新的库中

ALTER DATABASE mytest CHARACTER SET 'utf8'

1.6 删除数据库

重点来了:删库跑路的第一步

  • DROP DATABASE 数据库名
  • DROP DATABASE IF EXISTS 数据库名

2、如何创建数据表

方式1

创建的基本方式同上述的创建数据库 IF NOT EXITS,注意指定好类型

同时需要有创建表的权限,我们现在没有使用Linux,默认的都是有root权限的

CREATE TABLE IF NOT EXISTS myemp1(
id INT,												#int 类型
emp_name VARCHAR(15),					#字符串类型 15长度的VARCHAR
hire_date DATE								#日期类型
)

#使用 DESC 表名看一下内容
DESC myemp1

#表查询的演示
id	int	YES			
emp_name	varchar(15)	YES			
hire_date	date	YES			

查看创建表的语句的结构

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

方式2:基于现有的表进行创建表

#会将查询的表的数据导入新建的表
CREATE TABLE myemp2
AS
SELECT employee_id, last_name, salary
FROM employees

#基于以前创建的表 employees 通过SELECT创建新的表

🌰1:创建一个表employees_copy,实现对于employees表的复制,包括表的数据

CREATE TABLE employees_copy
AS
SELECT *
FROM employees

🌰2:创建表employees_blank,实现对于employees表的复制,不要表的数据

CREATE TABLE employees_blank
AS
SELECT *
FROM employees
#WHERE department_id > 1000000; #在过滤条件上面写上一个不可能的表达式子
WHERE 1 = 2;

3、管理数据表

1.修改表

添加一个字段:

#默认添加到最后一个字段
ALTER TABLE myemp1
ADD salary DOUBLE (10, 2)
#通过FIRST关键字可以将添加的数据加入到表的前面
ALTER TABLE myemp1
ADD phone_number  VARCHAR(20) FIRST
#使用AFTER显示的设置插入数据的位置,添加到emp_name的后面
ALTER TABLE myemp1
ADD email  VARCHAR(45) AFTER emp_name

修改一个字段

#修改名称的长度
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25) DEFAULT 'aaa'

重命名一个字段

#将表中的salary重新命名
ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2)

删除一个字段

#将表中的id字段删除掉
ALTER TABLE myemp1
DROP COLUMN id

4.重命名表

方式1:

RENAME TABLE myemp1
TO myemp11

方式2:

ALTER TABLE myemp1
RENAME TO myemp2

5.删除表

不光将表结构删除掉,同时表中的数据也全部删除掉,释放表空间

DROP TABLE IF EXISTS myemp2 

6.清空表

清空表:清空表中的所有的数据,但是表的结构保留

TRUNCATE TABLE employees_copy
#将上述的表中数据删除、但是表的结构还是存在的

7.DCL中COMMIT和ROLLBACK

  • COMMIT:提交数据。 一旦执行了COMMIT,数据就永久保存了,不能数据回滚

  • ROLLBACK:回滚数据,回滚到最后一次COMMIT之后

对比TRUNCATE TABLE 和 DELETE FROM

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

  • 不同点:

    TRUNCATE TABLE:一旦执行表中数据全部清除,不支持回滚

    DELETE FROM:可以全部清除,数据可以实现回滚

请添加图片描述

创建和管理表的练习题目

🌰1:创建数据库test01_office,指明字符集为utf8,在此数据库下执行:

CREATE DATABASE IF NOT EXISTS test01_office CHARACTER SET 'utf8'

🌰2:创建表dept0

字段 类型

id INT(7)

NAME VARCHAR(25)

CREATE TABLE IF NOT EXISTS dept01(
id INT(7),
`name` VARCHAR(25)
)

🌰3:将表departments中的数据插入新表dept02中

CREATE TABLE dept02
AS
SELECT * FROM atguigudb.departments

🌰4:创建表emp01

字段 类型

id INT(7)

first_name VARCHAR(25)

last_name VARCHAR(25)

dept_id INT(7)

CREATE TABLE emp01(
id INT(7),
first_name VARCHAR(25),
last_name VARCHAR(25),
dept_id INT(7)
)

🌰5:将last_name长度增加到50

ALTER TABLE emp01
MODIFY last_name VARCHAR (50)

🌰6:根据表employees创建emp02

CREATE TABLE emp02
AS 
SELECT *
FROM atguigudb.employees

🌰7:删除表emp01

DROP TABLE emp01				#不能够进行回滚

🌰8:将表emp02重命名为emp01

RENAME TABLE emp02 TO emp01

🌰9:在表dept02中和emp01中添加新列test_column,检查操作

ALTER TABLE emp01 ADD test_column VARCHAR(10)

DESC emp01

ALTER TABLE dept02 ADD test_column VARCHAR(10)
DESC dept02
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值