MySQL创建和管理表

database

创建和管理表

基础知识

一条数据的存储

标识符命名规则

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 NOT 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:表不存在)则该语句回滚

以上是 MySQL创建和管理表 的全部内容, 来源链接: utcz.com/z/536336.html

回到顶部