MySQL表的管理

目录

1.mysql中,数据存储过程分为四步

2.数据库命名规则

3.创建数据库

4.管理数据库的方法

5.修改数据库(一般不改,最多改字符集)

6.删除数据库

7.如何创建数据表

8.修改表

9.重命名表

10.删除表(注意⚠️无法撤销)

11.清空表

12.DCL中commit 和 rollback

13.对比 truncate table 和 delete from

14.DDL 和 DML 的说明

15.在删除时选择truncate table还是delete?


1.mysql中,数据存储过程分为四步

        创建数据库、确认字段、创建数据表、插入数据

2.数据库命名规则

       1. 数据库名、表名不得超过30个字符,变量名限制为29个
       2.必须只能包含 A–Z, a–z, 0–9, _共63个字符
       3.数据库名、表名、字段名等对象名中间不要包含空格
       4.同一个MySQL中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
       5.必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来      

3.创建数据库

1.create database 数据库名

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

2.create database 数据库 character set ‘字符集’

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

3.create database if not exists 数据库名 character set ‘utf8’(推荐使用这种)

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

CREATE DATABASE IF NOT EXISTS test01_office CHARACTER SET 'utf8';

4.管理数据库的方法

1.查看当前连接的数据库:show databases

2.切换数据库:use 数据库名

3.查看当前数据库表:show tables

4.查看当前使用的数据库:select database() from dual

5.查看置顶数据库下的保存表:show tables from 数据库名

SHOW DATABASES;
USE mydata;
SHOW TABLES;
SELECT DATABASE() FROM DUAL;
SHOW TABLES FROM mydata;

5.修改数据库(一般不改,最多改字符集)

1.alter database 数据库名 character set

2.查看数据库字符集:show create database 数据库名

ALTER DATABASE mydata CHARACTER SET 'utf8';
SHOW CREATE DATABASE mydata;

 

6.删除数据库

1.drop database 数据库名

2.推荐:drop database if exists 数据库名

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

DROP DATABASE IF EXISTS mydata;

7.如何创建数据表

前提:需要用户具备创建表的权限

方式一:

1.create table if not exists 表名

2.使用varchar时需要指明长度,用以定义字符

3.查看表结构:desc 表名

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

CREATE TABLE IF NOT EXISTS employees(
					empNum INT,
					lastName VARCHAR(50),
					firstName VARCHAR(50),
					mobile VARCHAR(25),
					`code` INT,
					jobTitle VARCHAR(50),
					birth DATE,
					note VARCHAR(255),
					sex VARCHAR(5)
					);

DESC employees;

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

1.create table 表名 as 查询语句

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

3.此时查询语句结构比较丰富,使用前面各种select

CREATE TABLE IF NOT EXISTS dept02
AS
SELECT *
FROM atguigudb.departments;

DESC emp02;

 

8.修改表

1.添加一个字段:alter table 表名 add 字段名

此时:first/after 等可以指定位置

ALTER TABLE emp02
ADD salary2 DOUBLE(10,2) AFTER email;

 

2.修改一个字段:数据类型、长度:alter table 表名 modify 字段名 数据类型

ALTER TABLE emp02
MODIFY salary2 DOUBLE(20,4);

3.重命名一个字段:alter table 表名 change 字段名 修改名 数据类型

ALTER TABLE emp02
CHANGE salary2 my_salary DOUBLE(20,4);

4.删除一个字段:after table 表名 drop column 字段名

ALTER TABLE emp01 DROP COLUMN department_id;
DESC emp01;

9.重命名表

1.rename table 表名 to 新表名——推荐

RENAME TABLE emp02
TO emp22;

2.alter table 表名 rename to 新表名

10.删除表(注意⚠️无法撤销)

删除表结构+表数据,释放表空间:drop table if exists 表名

DROP DATABASE IF EXISTS mydata;

11.清空表

清空表,清空表中数据,但保留表结构:truncate table 表名;

TRUNCATE TABLE mydata;

12.DCL中commit 和 rollback

1.commit:提交数据;一旦执行commit,数据就被永久的保存在了数据库中,无法回滚

2.rollback:回滚数据;一旦执行rollback,就可以实现数据的回滚,回滚到最近的一次commit之后

13.对比 truncate table 和 delete from

相同点:

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

不同点:

        truncate table:一旦执行此操作,表数据全部清除;数据不可以回滚

        delete from:一旦执行此操作,表数据全部清除(不带where);数据可以实现回滚

14.DDL 和 DML 的说明

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

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

15.在删除时选择truncate table还是delete?

使用delete:因为truncate table比delete速度快,且使用的系统和事务日志资源少,但Truncate无事务且不触发trigger,有可能造成事故,因此在开发中不建议使用此语句。

另外:truncate在功能上与不带where子句的delete语句相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值