1. 创建和管理数据库
1.1 创建数据库
- 方式1:创建数据库
- create database 数据库名
- 方式2:创建数据库并指定字符集
- create database 数据库名 character set 字符集
- 方式3:判断数据库是否已经存在,不存在则创建数据库(推荐>)
- create database if not exists 数据库名
1.2 使用数据库
- 查看当前所有数据库
- show databases;
- 查看当前正在使用的数据库
- show database();
- 查看指定库下的所有表
- show tables from 数据库名;
- 查看数据库的创建信息
- show create database 数据库名;
- 使用/切换数据库
- use 数据库名
1.3 修改数据库
- 更改数据库字符集
- alter database 数据库名 character set 字符集
- 删除指定的数据库方式1:
- drop database 数据库名
- 删除指定的数据库方式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 表名 MODIFY 【COLUMN】 字段名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. 删除表
- 在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除。
- 数据和结构都被删除
- 所有正在运行的相关事务被提交
- 所有相关索引被删除
- 语法
- drop table [if exists] 数据库表
5. 清空表
- 删除表中所有的数据
- 释放表的存储空间
- 表结构保留
- 语法
- truncate table 表名
6. DCL中的COMMIT 和ROLLBACK
- DCL:数据控制语言,用来定义访问权限和安全级别
- COMMIT:提交数据,一旦执行COMMIT,则数据就被永久的保存在数据库中,意味着数据不可以回滚
- RLLBACK:回滚数据,一旦执行ROLLBACK,则可以实现数据的回滚,回滚到最近的一次COMMIT之后
7. 对比TRUNCATE TABLE 和DELETE FROM
- 相同点:都可以实现对表中所以数据的删除,同时保留表结构
- 不同点:
- TRUNCATE TABLE:一旦执行此操作,表数据全部删除,同时,数据不哭回滚的
- DELETE FROM;一旦执行此操作,表数据可以灵活删除,同时,数据是可以实现回滚的
8. DDL和DML的说明
DDL的操作一旦执行,则不可回滚
DML的操作默认情况,一旦执行,也是不可回滚,但是,如果在执行DML之前,执行了
SET autocommit = FALSE,则执行的DML操作就可以实现回滚。