MySQL-数据表的创建和管理
一、数据存储过程
存储数据是处理数据的第一步
在 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 语句删除数据,可以回滚
存储数据是处理数据的第一步
在 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 语句删除数据,可以回滚