1.数据库相关操作
-- 1 创建数据库
-- 1.1 创建一个保存员工信息的数据库
CREATE DATABASE employees;
-- 1.2 其他相关指令
-- 1.2.1 查看当前所有数据库
SHOW DATABASES;
-- 1.2.2 “使用”一个数据库,使其作为当前数据库
USE employees;
-- 2 命名规则
-- 见ppt
2.表相关操作
-- 3 创建表:CREATE TABLE XXXX
-- 3.1 创建一个dept表
CREATE TABLE dept(
deptno INT(2),
dname VARCHAR(14),
loc VARCHAR(13)
);
-- 3.2 查看表结构
DESC dept;
-- 或
DESCRIBE dept;
-- 更改编码方式
ALTER TABLE emp CHARACTER SET utf8mb4;
3.常用数据类型
-- 4 常用数据类型
CREATE TABLE emp(
#int 类型,自增
emp_id INT AUTO_INCREMENT,
#最多保留20个中英文字符
emp_name CHAR(20),
#总位数不超过15位
salary DOUBLE,
#日期类型
birthday DATE,
#主键
PRIMARY KEY(emp_id)
);
-- 插入数据
INSERT INTO emp(emp_name, salary, birthday)
VALUES("恩泽", 2088, "2000-01-01"),("洪恩", 3099, "1999-12-11");
4.使用子查询创建表
-- 5 使用子查询创建表:将创建表和插入数据结合起来
CREATE TABLE emp1 AS SELECT * FROM emp;
CREATE TABLE emp2 AS SELECT * FROM emp WHERE emp_id = 1;
5.alter table
-- 6. 更改表:ALTER TABLE XXXX
-- 6.1 追加一个新列
ALTER TABLE emp ADD job_id VARCHAR(15);
-- 6.2 修改列的数据类型、尺寸、默认值等
-- 6.2.1 修改emp_name字段类型
ALTER TABLE emp MODIFY emp_name VARCHAR(15);
-- 6.2.2 修改salary字段精度和默认值
ALTER TABLE emp MODIFY salary DOUBLE(9,2) DEFAULT 1000;
-- 测试
INSERT INTO emp(emp_name, birthday)
VALUE("轮回","2023-05-08");
-- 6.2.3 删除一个列
ALTER TABLE emp DROP COLUMN job_id;
-- 6.2.4 重命名一个列
ALTER TABLE emp CHANGE emp_name employee_name VARCHAR(15);
6.删除表操作集合
-- 7.1 DROP TABLE:数据和结构都被删除,不能回滚
DROP TABLE emp;
-- 7.2 TRUNCATE TABLE:删除表中所有数据,释放表的存储空间;不能回滚
TRUNCATE TABLE emp;
-- 7.3 DELETE:删除数据;可以回滚
DELETE FROM emp;
演示:
-- 测试
-- 删除操作之前查看数据
SELECT * FROM emp;
-- 删除数据
DELETE FROM emp;
-- 查询删除结果
SELECT * FROM emp;
-- 回滚
ROLLBACK;
-- 查询回滚结果
SELECT * FROM emp;
执行结果:
补充说明:
要想回滚成功,需要关闭自动提交!如下是查看和更改自动提交的方式:
-- ************补充知识:自动提交************
-- 查询自动提交 ON:是自动提交,即commit ;OFF:不是自动提交,需要commit
show variables like 'autocommit';
-- 关闭自动提交
set autocommit = 0;
-- 打开自动提交
set autocommit = 1;
7.更改表的名字
-- 8 改变对象的名称:必须是对其的拥有者
ALTER TABLE emp RENAME TO emp001;
参考:
1.Navicat自动提交的开和关_navicat设置自动提交_人……杰的博客-CSDN博客