MySQL8.0基础学习|【MySQL】 表的必备知识●创建和管理

MySQL8.0基础学习|【MySQL】 表的必备知识●创建和管理
文章图片


目录

  • 一、数据存储过程
    • 标识符命名规则
  • 二、数据库
    • 创建数据库
    • 使用数据库
    • 修改数据库
    • 删除数据库
  • 三、表
    • 创建表
      • 方式一:常规
      • 方式二:使用
    • 修改表
      • 追加一个列
      • 修改一个列
      • 重命名一个列
      • 删除一个列
    • 重命名表
    • 删除表
    • 清空表

一、数据存储过程 存储数据是处理数据的第一步
在 MySQL中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据
MySQL8.0基础学习|【MySQL】 表的必备知识●创建和管理
文章图片

存储过程为此顺序原因:
因为从系统架构的层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数据表的 行与列
标识符命名规则
  1. 数据库名、表名不得超过30个字符,变量名限制为29个
  2. 必须只能包含 A–Z, a–z, 0–9, _共63个字符
  3. 数据库名、表名、字段名等对象名中间不要包含空格
  4. 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  5. 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使
    用`(着重号)引起来
  6. 保持字段名和类型的一致性
二、数据库 创建数据库
  • 方式1:创建数据库
CREATE DATABASE 数据库名;

  • 方式2:创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

  • 方式3:判断数据库是否已经存在,不存在则创建数据库(荐)
CREATE DATABASE IF NOT EXISTS 数据库名;

注:DATABASE 不能改名
一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的
使用数据库
  • 查看当前所有的数据库
SHOW DATABASES; #有一个S,代表多个数据库

  • 查看当前正在使用的数据库
SELECT DATABASE(); #使用的一个 mysql 中的全局函数

  • 查看指定库下所有的表
SHOW TABLES FROM 数据库名;

  • 查看数据库的创建信息
SHOW CREATE DATABASE 数据库名;

SHOW CREATE DATABASE 数据库名\G

  • 使用/切换数据库
USE 数据库名;

修改数据库
  • 更改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集

删除数据库
  • 方式1:删除指定的数据库
DROP DATABASE 数据库名;

  • 方式2:删除指定的数据库(荐)
DROP DATABASE IF EXISTS 数据库名;

三、表 创建表 方式一:常规
  1. 必须具备:
    ●CREATE TABLE权限
    ●存储空间
  2. 语法格式
CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], …… [表约束条件] );

  1. 必须指定:
    ●表名
    ●列名(或字段名),数据类型,长度
  2. 可选指定:
    ●约束条件
    ●默认值
方式二:使用
  1. 使用AS subquery选项,将创建表和插入数据结合起来
  2. 指定的列和子查询中的列要一一对应
  3. 通过列名和默认值定义列
CREATE TABLE table [(column, column...)] AS subquery;

修改表 修改表指的是修改数据库中已经存在的数据表的结构
ALTER TABLE 语句可以实现:
●向已有的表中添加列
●修改现有表中的列
●删除现有表中的列
●重命名现有表中的列
追加一个列
语法格式:
ALTER TABLE 表名 ADD字段名 字段类型 【FIRST|AFTER 字段名】;

修改一个列
可以修改列的数据类型,长度、默认值和位置
语法格式:
ALTER TABLE 表名 MODIFY 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名2】;

重命名一个列
使用 CHANGE old_column new_column dataType子句重命名列
语法格式:
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除一个列
语法格式:
ALTER TABLE 表名 DROP 【COLUMN】字段名

重命名表 方式一:使用RENAME
RENAME TABLE emp TO myemp;

方式二:
ALTER table dept RENAME [TO] detail_dept;

删除表 在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除
语法格式:
DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];

注:IF EXISTS 的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作
DROP TABLE 语句不能回滚
清空表 TRUNCATE TABLE语句:
●删除表中所有的数据
●释放表的存储空间
语法格式:
TRUNCATE TABLE 表名

【MySQL8.0基础学习|【MySQL】 表的必备知识●创建和管理】TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚

    推荐阅读