MySQL数据库,创建和管理表

创建数据库:

方式一:创建数据库

CREATE DATABASE 数据库名;(使用的是默认的字符集)

方式二:创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

方式三:判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

(也可以指定字符集:CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集)

如果MySQL中已经存在相关的数据库,则忽略创建语句,不再创建此名称的数据库

管理数据库

查看当前连接中的数据库:

SHOW  DATABASES;

切换数据库:

USE 数据库名;

查看当前数据库中保存的数据表:

SHOW  TABLES;

查看当前使用的数据库:

SELECT  DATABASE( )  FROM  DUAL;

查看指定的数据库下保存的表:

SHOW  TABLE  FROM  数据库名;

修改数据库:

更改数据库字符集:

ALTER  DATABASE  数据库名  CHARACTER  SET  字符集;

删除数据库:

方式一:删除指定的数据库

DROP  DATABASE  数据库名;

方式二:删除指定的数据库(如果存在即删除,不存在即结束操作)

DROP  DATABASE  IF  EXISTS  数据库名;

数据类型:

其中,常见的数据类型介绍如下:

创建数据表:

创建数据表(方式一):

CREATE  TABLE  IF  NOT  EXISTS  表名(

字段名  数据类型  [约束条件] [默认值],

字段名  数据类型  [约束条件] [默认值],

……

[表约束条件]

); 

注:

[ ]中的内容表示约束,也可以没有

如果创建表时没有指明使用的字符集,则默认使用表所在的数据库的字符集。

IF  NOT  EXISTS可以没有,但是建议要有

查看表结构:

DESC  表名;

查看创建表的语句结构:

SHOW  CREATE  TABLE  表名;

创建数据表(方式二):基于现有的表

CREATE  TABLE  表名

AS

SELECT  字段……

FROM 现有的表的表名

……(查询的操作)

将查询现有的表的查询结果来创建一个新的表

注:若AS后面的查询操作中的字段起了别名,则该方法创建的表中的字段名即为相应的字段的别名

修改表:

修改表使用 ALTER  TABLE  表名  ……

添加字段

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件];

新字段默认添加到表中的最后一个字段的位置后

除此之外,还可以添加字段到指定位置:

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件]  FIRST;

表示添加新字段到首列

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件]  AFTER  字段名;

表示新字段在指定的字段名的位置后添加

修改一个字段

ALTER  TABLE  表名

MODIFY  字段名  数据类型  DEFAULT  默认值;

要将字段的位置进行修改,可以在末尾加上FIRST/AFTER 字段名

注:数据类型一般不会做大更改,一般是将VARCHAR一类的数据类型的长度做修改

若不涉及更改默认值,DEFAULT的语句可省略

重命名一个字段

ALTER  TABLE  表名

CHANGE  字段名  新字段名  数据类型;

注:可以在重命名时对字段的数据类型做修改。

删除一个字段

ALTER  TABLE  表名

DROP  COLUMN  字段名;

重命名表:

方式一:

RENAME  TABLE  表名

TO  新表名;

方式二:

ALTER  TABLE  表名

RENAME  TO   新表名;

删除表:

DROP  TABLE  IF  EXTSTS  表名;

清空表:

清空表中的所有数据,表本身还在。

TRUNCATE  TABLE  表名;

对比TRUNCATE  TABLE 和 DELETE  FROM

相同点:都可以实现对表中的所有数据的删除,同时保留表结构。

不同点:

TRUNCATE  TABLE:执行此操作,表中数据全部清除。同时,数据不能回滚。属于DDL。

DELETE  FROM:表中数据被指定删除,同时数据可以实现回滚。属于DML。

COMMIT 和 ROLLBACK

COMMIT:提交数据。执行COMMIT,数据就被永久的保存在数据库中,意味着数据不可回滚

ROLLBACK:回滚数据。一旦执行ROLLBACK,则可以实现数据的回滚

关于DDL和DML的说明:

DDL的操作一旦执行,就不可回滚。执行完后,会自动执行一次COMMIT,不受SET  autocommit  =  false的影响

DML的操作默认情况下,一旦执行,也是不可回滚的。但是若在执行DML之前,执行了SET  autocommit  =  false的操作,则执行的操作就可以实现回滚

TRUNCATE  TABLE 比 DELETE  FROM速度快,且使用的系统和事务日志资源少,但TRUNCATE无事务且不触发TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句

相关推荐

  1. MySQL创建管理数据库

    2023-12-11 11:10:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 11:10:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 11:10:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 11:10:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 11:10:02       18 阅读

热门阅读

  1. React学习笔记

    2023-12-11 11:10:02       35 阅读
  2. 线程组、线程切换、线程异常

    2023-12-11 11:10:02       44 阅读
  3. scheduleatfixedrate详解

    2023-12-11 11:10:02       39 阅读
  4. Presto集群安装部署

    2023-12-11 11:10:02       44 阅读
  5. springboot自定义cron定时任务执行

    2023-12-11 11:10:02       37 阅读
  6. 第三十一章 控制到 XML 模式的映射 - %ListOfDataTypes

    2023-12-11 11:10:02       23 阅读
  7. SAP ABAP 对象ALV的一些功能(ALV资料五)

    2023-12-11 11:10:02       29 阅读
  8. # C语言——预处理(#define,#if..)

    2023-12-11 11:10:02       28 阅读
  9. TS条件类型、断言及名义类型

    2023-12-11 11:10:02       36 阅读
  10. Electron[5] 渲染进程和主进程

    2023-12-11 11:10:02       42 阅读