Loading

Nosuchpgmr's Blog

博客园 首页 新随笔 联系 订阅 管理

数据库创建与管理

#创建数据库
CREATE DATABASES IF NOT EXISTS db_name CHARACTER SET 'utf8';
#查看所有数据库
SHOW DATABASES;
#切换数据库
USE db_name;
#查看当前数据库中保存的表
SHOW TABLES;
#查看当前使用的数据库
SHOW DATABASE() FROM DUAL;
#查看数据库信息
SHOW CREATE DATABASE db_name;
#更改数据库
ALTER DATABASE db_name CHARACTER SET 'xxx';
#删除数据库
DROP DATABASE IF EXISTS db_name;

数据表创建与管理

创建

#新创建
CREATE TABLE IF NOT EXISTS t_name(
col_1 INT.
col_2 VARCHAR(15),
col_3 DATE,
...;
)
#基于已有表创建
CREATE TABLE t_name
AS
SELECT xxx,xxx,xxx
FROM another_table;
#查看字段
DESC t_name;
#eg.基于tb_1创建新表,但不复制数据
CREATE TABLE tb_2
AS
SELECT xxx,xxx,xxx
FROM tb_1
WHERE 1 = 0;

修改

#添加字段
ALTER TABLE tb_1
ADD xxx INT;

ALTER TABLE tb_1
ADD xxx INT FIRST;
ALTER TABLE tb_1
ADD xxx INT AFTER yyy; #指定字段位置
#修改字段类型
ALTER TABLE tb_1
MODIFY xxx VARCHAR(15);
#重命名字段
ALTER TABLE tb_1
CHANGE name new_name VARCHAR(15);
#删除字段
ALTER TABLE tb_1
DROP COLUMN xxx;
#删除表
#重命名表
ALTER TABLE t_name
RENAME TO new_name;
#删除表(没有与其他数据表形成关联)(无法回滚)
DROP TABLE IF EXISTS t_name;
#清空表(可回滚)
TRUNCATE TABLE t_name;

COMMIT与ROLLBACK

COMMIT: 提交,意味着数据无法回滚

ROLLBACK: 回滚至上次COMMIT

· DDL(CREATE/ALTER/DROP): 一旦执行,就不能回滚,SET autocommit = FALSE无效

· DML(SELECT/UPDATE/DELETE): 默认情况不能回滚,若事先SET autocommit = FALSE,则可回滚

posted on 2022-04-22 20:34  nosuchpgmr  阅读(96)  评论(0)    收藏  举报