数据库学习2024/3/17
第十章_创建和管理表
1.创建和管理数据库
1.1
CREATE DATABASE 数据库名;#创建的数据库是默认的字符集
1.2
CREATE DATABASE 数据库名 CHARACTER SET '字符集'
1.3
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET '字符集'
2管理数据库
SHOW DATABASES;(查看所以数据库)
USE 数据库;(使用数据库)
TABLE 数据库;(查看当前数据库中保存的数据表)
SELECT DATABASE() FROM DUAL;(查看当前数据库)
SHOW TABLE FROM 数据库;(查看指定数据库中保存的数据表)
SHOW CREATE DATABASE 数据库(查看数据库字符集)
3修改数据库
3.1更改数据库的字符集
ALTER DATABASE 数据库名 CHARACTER SET '字符集'
3.2删除数据库
DROP DATABASE 数据库名;
DROP DATABASE mysql1;
4如何创建数据表
方式1:直接创建
CREATE TABLE IF NOT EXISTS 表名();#没有指明字符集则和数据库字符集相同
DESC 表名;(查看表) DESC employees;
方式二:基于现有表创建,同时导入了数据
案例:
CREATE TABLE mysql3
AS
SELECT last_name 名字,salary
FROM employees;
DESC mysql3
结论:1.查询语句中的别名可以成为新表的名称
2.查询语句丰富,可以用各种select
3.当不需要数据时可以加where 1 = 2 ;
5修改表 alter table
5.1添加一个字段
ALTER TABLE 表名 ADD 字段
拓展:字段后加FIRST可将添加字段派在最前面,AFTER+字段 可将添加字段派在字段后面
5.2修改一个字段:数据类型、长度、默认值
数据类型一般不修改
ALTER TABLE 表名 MODIFY 字段 数据类型(修改默认值是后面加 DEFAULT '字符串')
5.3删除一个字段
ALTER TABLE 表名 DROP COLUMN 字段;
5.4重命名一个字段:改名时也可以修改长度
ALTER TABLE 表名
CHANGE 字段 数据类型
6.重命名表
RENAME TABLE 表名
TO 新表名;
7删除表
即删除了表结构,也删除了表数据
DROP TABLE 表名; #或 DROP TABLE IF EXISTS 表名;
8清空表
清空表数据,保留表结构
TRUNCATE TABLE 表名
8.DCL中COMMIT和ROLLBACK
#commit:提交数据。一旦执行了COMMIT,则数据永久保存在了数据库中,意味着不可以回滚。
#ROLLBACK:回滚数据.一旦执行ROLLBACK,则可以实现数据的回滚(撤销)。不一定成功 回滚到最近一次的commit操作
9.对比 TRUNCATE TABLE 和 DELETE FROM
相同点:都可以清空表数据,保留表结构
不同点:
TRUNCATE TABLE:一旦执行此操作,表数据全部清空。同时数据是不可以回滚的。
DELETE FROM:一旦执行此操作,表数据可以全部清空(不带WHERE)。同时数据是可以回滚的。
10.DDL 和DML的说明
① DDL的操作一旦执行,就不可以回滚。指令
SET autocommit = FALSE对DLL操作无效 在执行完操作后一定会执行COMMIT,不受
SET autocommit = FALSE影响
② DML的操作默认情况,一旦执行,也是不可以回滚的。但是,如果在执行DML之前,执行
SET autocommit = FALSE,则执行的DML操作就可以回滚
演示 DELETE FROM
COMMIT;
SELECT * FROM MYSQL3;
SET autocommit = FALSE;
DELETE FROM MYSQL3;
SELECT * FROM MYSQL3;
ROLLBACK;
SELECT * FROM MYSQL3;