创建和管理表

本文详细介绍了如何在MySQL中创建和管理数据库,包括创建、使用和修改数据库,创建表的语法及示例,以及如何修改表结构、重命名和删除表。此外,还讨论了DCL中的COMMIT和ROLLBACK操作,以及TRUNCATETABLE与DELETEFROM的区别。最后,提到了DDL和DML操作的回滚特性。
摘要由CSDN通过智能技术生成

1. 创建和管理数据库

1.1 创建数据库

  1. 方式1:创建数据库
    • create database 数据库名
  2. 方式2:创建数据库并指定字符集
    • create database 数据库名 character set 字符集
  3. 方式3:判断数据库是否已经存在,不存在则创建数据库(推荐>)
    • create database if not exists 数据库名

1.2 使用数据库

  1. 查看当前所有数据库
    • show databases;
  2. 查看当前正在使用的数据库
    • show database();
  3. 查看指定库下的所有表
    • show tables from 数据库名;
  4. 查看数据库的创建信息
    • show create database 数据库名;
  5. 使用/切换数据库
    • use 数据库名

1.3 修改数据库

  1. 更改数据库字符集
    • alter database 数据库名 character set 字符集
  2. 删除指定的数据库方式1:
    • drop database 数据库名
  3. 删除指定的数据库方式2
    • drop database if exists 数据库名

2. 创建表

# 语法格式1 
create table [if not exists] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
)
# 加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;
#如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。
# 必须指定:表名,字段名,数据类型,长度
# 可选指定:约束条件,默认值
#创建表举例1:
-- 创建表
CREATE TABLE emp (
-- int类型
emp_id INT,
-- 最多保存20个中英文字符
emp_name VARCHAR(20),
-- 总位数不超过15位
salary DOUBLE,
-- 日期类型
birthday DATE
);
#创建表举例2:
CREATE TABLE dept(
-- int类型,自增
deptno INT(2) AUTO_INCREMENT,
dname VARCHAR(14),
loc VARCHAR(13),
-- 主键
PRIMARY KEY (deptno)
);
#查看表结构
desc 表名;
# 查看创建表的语句结果
show create table 表名;#默认表使用数据库的字符集
# 查看表数据 
select * from 表名

# 方式2:基于现有的表
crate table 表名
as 
select 现有表需要的字段
from 现有表

3. 修改表

修改表指定是修改数据库中已经存在的数据表的结构

#3.1 追加一个列:
ALTER TABLE 表名 add  字段名1 字段类型 【DEFAULT 默认值】;
#举例
alter table dept80 add job_id varchar(15)

#3.2 修改一个列
#可以修改列的数据类型,长度,默认值和位置
ALTER TABLE 表名 MODIFYCOLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名
2;
# 举例1
ALTER TABLE dept80
MODIFY last_name VARCHAR(30);
# 举例2
ALTER TABLE dept80
MODIFY salary double(9,2) default 1000;

# 3.3 重命名一个列
ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
#举例
ALTER TABLE dept80
CHANGE department_name dept_name varchar(15);

# 3.4 删除一个列
alter table 表名 drop 字段名
#举例
alter table dept80 drop last_name

# 3.5 重命名一个表
-- 修改表名方式1 , TO 或AS都可以,也以省略掉
-- ALTER TABLE 表名 RENAME [TO|AS] 新表名
ALTER TABLE user10 RENAME TO user11;
-- 修改表名方式2
-- RENAME TABLE 表名 TO 新表名; 这里面的TO不可以省略
RENAME TABLE user11 TO user10;


4. 删除表

  1. 在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除。
  2. 数据和结构都被删除
  3. 所有正在运行的相关事务被提交
  4. 所有相关索引被删除
  5. 语法
    • drop table [if exists] 数据库表

5. 清空表

  1. 删除表中所有的数据
  2. 释放表的存储空间
  3. 表结构保留
  4. 语法
    • truncate table 表名

6. DCL中的COMMIT 和ROLLBACK

  1. DCL:数据控制语言,用来定义访问权限和安全级别
    • COMMIT:提交数据,一旦执行COMMIT,则数据就被永久的保存在数据库中,意味着数据不可以回滚
    • RLLBACK:回滚数据,一旦执行ROLLBACK,则可以实现数据的回滚,回滚到最近的一次COMMIT之后

7. 对比TRUNCATE TABLE 和DELETE FROM

  1. 相同点:都可以实现对表中所以数据的删除,同时保留表结构
  2. 不同点:
    • TRUNCATE TABLE:一旦执行此操作,表数据全部删除,同时,数据不哭回滚的
    • DELETE FROM;一旦执行此操作,表数据可以灵活删除,同时,数据是可以实现回滚的

8. DDL和DML的说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值