创建和管理表

目录

一、基础知识

1.一条数据存储的过程

2.标识符的命名规则

3.MySAQL中的数据类型

​常用的几类类型

二、创建和管理数据库

1.如何创建数据库

方式一:创建数据库

方式二:创建数据库并指定字符集

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

2.管理数据库

①查看当前连接中的数据库都有哪些

② 切换数据库

③查看当前数据库中保存的数据表

④查看当前使用的数据库

⑤查看指定数据库下保存的数据表

⑥查看创建数据库的结构

3.修改数据库

更改数据库字符集

4.删除数据库

方式一

方式二  (推荐使用)

三、创建数据表 

方式一

#查看表的结构

#查看创建表的语句结构 

#查看表数据

方式二:基于现有的表创建新的表,同时导入数据

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

练习2:创建一个表employees_blank,实现对employees表的复制,不包括表数据 

四、管理数据表

1.修改表 —— ALTER TABLE

①添加一个字段

②修改一个字段:数据类型、长度、默认值

③重命名字段

④删除一个字段

2.重命名表:RENAME

3.删除表:DROP

4.清空表 :TRUNCATE & DELETE FROM 

🐟 对比TRUNCATE TABLE和DELECT FROM

5.DCL中的COMMIT和ROLLBACK的使用

①COMMIT:提交数据

②ROLLBACK:回滚数据

③DDL和DML的说明

拓展1:阿里巴巴《Java开发手册》之MySQL字段命名

拓展2:如何理解清空表、删除表等操作需谨慎?


一、基础知识

1.一条数据存储的过程

2.标识符的命名规则

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

3.MySAQL中的数据类型

常用的几类类型

二、创建和管理数据库

1.如何创建数据库

方式一:创建数据库

CREATE DATABASE mytest1;

创建的此数据库使用的是默认的字符集 

方式二:创建数据库并指定字符集

CREATE DATABASE mytest2 CHARACTER SET 'gbk';

显式的指明了要创建的数据库的字符集 

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

CREATE DATABASE IF NOT EXISTS mytest3 CHARACTER SET 'utf8';
SHOW CREATE DATABASE mytest3;

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

2.管理数据库

①查看当前连接中的数据库都有哪些

SHOW DATABASES;

② 切换数据库

USE + 需要使用的数据库

③查看当前数据库中保存的数据表

SHOW TABLES;

④查看当前使用的数据库

SELECT DATABASE();

⑤查看指定数据库下保存的数据表

SHOW TABLES FROM atguigudb;

⑥查看创建数据库的结构

SHOW CREATE DATABASE mytest1;

3.修改数据库

更改数据库字符集

ALTER DATABASE mytest2 CHARACTER SET 'utf8';

4.删除数据库

方式一

DROP DATABASE mytest1;

如果要删除的数据库存在,则删除成功。如果不存在,会报错 

方式二  (推荐使用)

DROP DATABASE IF EXISTS mytest1;

如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错

三、创建数据表 

方式一

CREATE TABLE IF NOT EXISTS myemp1(
id INT,
emp_name VARCHAR(15),
#使用VARCHAR来定义字符串,必须在使用VARCHAR时指明其长度
hire_date DATE
);

#查看表的结构

DESC myemp1;

#查看创建表的语句结构 

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

#查看表数据

SELECT * FROM myemp1;

方式二:基于现有的表创建新的表,同时导入数据

CREATE TABLE myemp2
AS 
SELECT employee_id,last_name,salary
FROM employees;

1.查询语句中字段的别名,可以作为新创建的表的字段的名称 

2.此时的查询语句可以结构比较丰富,使用前面章节讲过的各种SELECT

CREATE TABLE myemp3
AS 
SELECT e.employee_id emp_id,e.last_name lname,d.department_name dept_name
FROM employees e JOIN departments d
ON e.department_id = d.department_id;

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

CREATE TABLE employees_copy
AS 
SELECT *
FROM employees;

练习2:创建一个表employees_blank,实现对employees表的复制,不包括表数据 

CREATE TABLE employees_copy
AS 
SELECT *
FROM employees
#WHERE department_id > 10000;
WHERE 1 = 2;#山无棱,天地合,乃敢与君绝

四、管理数据表

1.修改表 —— ALTER TABLE

①添加一个字段

#默认添加到表中的最后一个字段的位置
ALTER TABLE myemp1
ADD salary DOUBLE(10,2)#小数位2位,整数位8位,共10位
#添加到表中第一个位置
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST;
#添加到指定字段后
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name;

②修改一个字段:数据类型、长度、默认值

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';

③重命名字段

ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2);

ALTER TABLE myemp1
CHANGE email my_email VARCHAR(50);
#在改名称的同时可以修改长度

④删除一个字段

ALTER TABLE myemp1
DROP COLUMN my_email;

2.重命名表:RENAME

RENAME TABLE myemp1
TO myemp11;

3.删除表:DROP

DROP TABLE IF EXISTS myemp2;

4.清空表 :TRUNCATE & DELETE FROM 

TRUNCATE TABLE employees_copy;

DELETE FROM employees_copy;

🐟 对比TRUNCATE TABLE和DELECT FROM

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

不同点:

TRUNCATE TABLE:一旦执行此操作,表数据全部清除。同时,数据是不可以回滚的

DELECT FROM:一旦执行此操作,表数据可以全部清除,(不带WHERE),同时,数据可以实现回滚

5.DCL中的COMMIT和ROLLBACK的使用

①COMMIT:提交数据

一旦执行COMMIT,则数据就被永久的保存在了数据库中,意味着数据不可以回滚(撤销)

②ROLLBACK:回滚数据

一旦执行ROLLBACK,可以实现数据的回滚。回滚到最近的一次COMMIT之后

③DDL和DML的说明

Ⅰ.DDL的操作一旦执行,就不可回滚。指令SET autocommit = FALSE对DDL失效(因为在执行完DDL操作之后,一定会执行一次COMMIT,而此COMMIT操作不受SET autocommit = FALSE的影响的)

Ⅱ.DML的操作默认情况下一旦执行,也是不可回滚的,但是,如果在执行DML之前,执行了SET autocommit = FALSE,则执行的DML操作就可以实现回滚了

拓展1:阿里巴巴《Java开发手册》之MySQL字段命名

拓展2:如何理解清空表、删除表等操作需谨慎?

1.表删除操作将把表的定义和表中的数据一起删除,并且MySQL在执行删除操作时,不会有任何的确认信息提示,因此执行删除操时应当慎重。在删除表前,最好对表中的数据进行备份 ,这样当操作失误时可 以对数据进行恢复,以免造成无法挽回的后果。

2.同样的,在使用 ALTER TABLE 进行表的基本修改操作时,在执行操作过程之前,也应该确保对数据进行完整的备份 ,因为数据库的改变是无法撤销的,如果添加了一个不需要的字段,可以将其删除;相同的,如果删除了一个需要的列,该列下面的所有数据都将会丢失。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

elk-zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值