MySQL创建和管理表

创建和管理表

基础知识

一条数据的存储

标识符命名规则

MySQL中的数据类型

常用

创建和管理数据库

删除后,除非有备份,否则,不能恢复

创建数据库

  • 方式一:直接创建
CREATE DATABASE mytest1;

  • 方式二:指明字符集
CREATE DATABASE mytest2 CHARACTER SET 'gbk';

  • 方式三:判断数据库是否存在(推荐)
CREATE DATABASE IF NOT EXISTS mytest3  CHARACTER SET '字符集';

如果要创建的数据库已经存在,则创建不成功;反之,创建成功

使用数据库(管理)

  • 查看当前连接的数据库有哪些
SHOW DATABASES;
  • 切换数据库
USE mytest1;
  • 查看当前数据库中保存的表
SHOW TABLES;
  • 查看当前使用的数据库
SELECT DATABASE() FROM DUAL;
  • 查看指定数据库下保存的表
SHOW TABLES FROM mysql;

修改数据库(一般不改)

  • 更改数据库的字符集
ALTER DATABASE mytest2 CHARACTER SET 'utf8';

删除数据库

  • 直接删除指定数据库
DROP DATABASE mytest1;
  • 判断数据库是否存在(推荐)
DROP DATABASE IF EXISTS mytest1;

如果要删除的数据库存在,则删除成功;如果不存在,也不会报错

创建表

需要用户具备创建表的权限

前提:先要选好表创建的位置

USE 数据库
SHOW TABLES;

SHOW TABLES FROM 数据库;

方式一:直接创建

CREATE TABLE IF NOT EXISTS myemp1(
#字段
id INT,
emp_name VARCHAR(15),
hire_date DATE;
)

查看表结构和查看创建的表的语句的结构

DESC myemp1;
SHOW CREATE TABLE myemp1;

方式二:基于现有的表创建

同时导入数据,并且可以使用别名,两表互不影响

CREATE TABLE myemp1
AS
SELECT eemploye_id,last_nmae,salary
FROM employees;
#不要其中的数据
CREATE TABLE myemp1
AS
SELECT eemploye_id,last_nmae,salary
FROM employees
WHERE 1 =2;#1不可能等于2

修改表

——>ALTER TABLE

添加字段

默认添加到表中最后的字段
ALTER TABLE myemp1
ADD salary DOUBLE(10,2);#一个10为,小数位2位

添加到第一位
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST#此字段为表中的第一列

指定位置
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name#在emp_name的后面

修改字段

改长度
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);

重命名字段

ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(12,2);
      #久名字   新名字          新范围

删除字段

ALTER TABLE myemp1
DROP COLUMN email;

重命名表

  • 方式一:RENAME(推荐)
RENAME TABLE mytemp1
TO my_emp1;
  • 方式二:
ALTTER TABLE myemp2
TO em_emp2;

删除表

表的结构和数据都删除了,释放表空间

DROP TABLE IF EXISTS my_emp2;

清空表

清空数据,保留表结构

TRUNCATE TABLE employees_copy;

对比TRUNCATE TABLE和DELETE FROM

  • 相同:

都可以对表进行删除,同时保留表结构

  • 不同:

TRUNCATE TABLE:一旦操作,表数据全部清除,同时,数据不回滚

DELETE FROM:一旦执行,表数据可以全部删除(可以指定删除),数据可以回滚

拓展1

DCL中COMMIT和ROLLBACK的使用

  • COMMIT:提交数据,一旦执行,则数据永久保留,不可以回滚

  • ROLLBACK:回滚数据,一旦执行,可以回滚,到最近的一次COMMIT使用

DDL和DML 的说明

  • DDL:一旦执行,不可以回滚(执行完DDL后会自动进行提交,不受任何的影响)

  • DML:一旦执行,也是不可以回滚,但是可以在执行DML前执行SET autocommit = false,则执行DML 操作可以回滚

拓展2

阿里巴巴《Java开发手册》之MySQL字段命名

如何理解清空、删除表等操作要谨慎

MySQL新特性—DDL的原子化

如果操作成功,则执行;如果语句中有一项不合格(eg:表不存在)则该语句回滚

posted @ 2022-03-08 19:40  T,a,o  阅读(252)  评论(0编辑  收藏  举报