去评论
海欣资源

MySQL-数据表的创建和管理

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

二、数据库
    创建数据库
    方式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 数据库名;‘

三、表
   创建表
   方式一:常规
    必须具备:
    ●CREATE TABLE权限
    ●存储空间
    语法格式:
CREATE TABLE [IF NOT EXISTS] 表名(
        字段1, 数据类型 [约束条件] [默认值],
        字段2, 数据类型 [约束条件] [默认值],
        字段3, 数据类型 [约束条件] [默认值],
        ……
        [表约束条件]
);
    必须指定:
    ●表名
    ●列名(或字段名),数据类型,长度
    可选指定:
    ●约束条件
    ●默认值
方式二:使用
    使用AS subquery选项,将创建表和插入数据结合起来
    指定的列和子查询中的列要一一对应
    通过列名和默认值定义列
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 表名
TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚