10_创建和管理表

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 10_创建和管理表

表操作基础


1.1 一条数据存储的过程


存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是 创建数据库、 确认字段、 创建数据表、 插入数据。

从系统架构的层次上看,MySQL 数据库系统从大到小依次是数据库服务器 、 数据库 、 数据表 、数据表的行与列 。MySQL 数据库服务器之前已经安装。所以,我们就从创建数据库开始。


1.2 标识符命名规则


数据库名、表名不得超过30个字符,变量名限制为29个


必须只能包含 A–Z, a–z, 0–9, _共63个字符


数据库名、表名、字段名等对象名中间不要包含空格


同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名


必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来


保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了


1.3 MySQL中的数据类型


a3184d975bcb48d4b7a75e4d9e837194_c14a84434ec744cd9998b38dda2fc542.png


其中,较常用的几类类型介绍如下:


0738e8f4b51737fe86092dc8dc6a2b88_299b9d848b384fa999368ede847732c2.png


2. 创建和管理数据库


2.1 创建数据库


方式1:创建数据库


CREATE DATABASE 数据库名;


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


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


方式3:判断数据库是否已经存在,不存在则创建数据库( 推荐 )


CREATE DATABASE IF NOT EXISTS 数据库名;


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


注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删

旧库完成的。


2.2 使用数据库


查看当前所有的数据库


SHOW DATABASES;

查看当前正在使用的数据库


SELECT DATABASE();


查看指定库下所有的表


SHOW TABLES FROM 数据库名;


查看数据库的创建信息


SHOW CREATE DATABASE 数据库名;
#或者:
SHOW CREATE DATABASE 数据库名\G
使用/切换数据库


USE 数据库名;


2.3 修改数据库


更改数据库字符集


ALTER DATABASE 数据库名 CHARACTER SET 字符集; #比如:gbk、utf8等


2.4 删除数据库


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


DROP DATABASE 数据库名;


方式2:删除指定的数据库( 推荐 )


DROP DATABASE IF EXISTS 数据库名;


3. 创建表


3.1 创建方式1


必须具备:


CREATE TABLE权限


存储空间


语法格式:


CREATE TABLE [IF NOT EXISTS] 表名(
字段1 数据类型 [约束条件] [默认值],
字段2 数据类型 [约束条件] [默认值],
字段3 数据类型 [约束条件] [默认值],
……
[表约束条件]
);


加上了 IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。

必须指定:


表名


列名(或字段名),数据类型,长度


可选指定:


约束条件


默认值


代码举例:


CREATE TABLE dept(
-- int类型,自增
deptno INT(2) AUTO_INCREMENT,
dname VARCHAR(14),
loc VARCHAR(13),
-- 主键
PRIMARY KEY (deptno)
);
DESCRIBE dept;


4d8595cc67463ffd2aaf41b2b29c0a12_f593beeea39443c69db8c4a660c72b02.png


3.2 创建方式2


使用 AS subquery 选项,将创建表和插入数据结合起来


指定的列和子查询中的列要一一对应


通过列名和默认值定义列


代码举例:


CREATE TABLE myemp2
AS
SELECT employee_id,last_name,salary
FROM employees;
SELECT * FROM myemp2;


404208fd57dbd28d5dca5a1063e71f11_89b45d6022ac47bb8872604d77bd2c4a.png


3.3 查看数据表结构


在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用 DESCRIBE/DESC 语句查看数据表结构,也支持使用 SHOW CREATE TABLE 语句查看数据表结构。


语法格式如下:


SHOW CREATE TABLE 表名\G;

#或

DESC 表名;

使用SHOW CREATE TABLE语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。


4. 修改表


修改表指的是修改数据库中已经存在的数据表的结构。


使用 ALTER TABLE 语句可以实现:


向已有的表中添加列


修改现有表中的列


删除现有表中的列


重命名现有表中的列


4.1 追加一个列


语法格式如下:


ALTER TABLE 表名 ADD  字段名 字段类型 【FIRST|AFTER 字段名】;


举例:


ALTER TABLE myemp1
ADD salary DOUBLE(10,2); #默认添加到表中的最后一个字段
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST;#添加到表中的第一个字段
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name;#添加到表中emp_name字段后面


4378f12d7eaf93c5c0d00e80da837671_946ff6d89533446b99262aec30e8ed42.png


4.2 修改一个列


可以修改列的数据类型,长度、默认值和位置


修改字段数据类型、长度、默认值、位置的语法格式如下:


ALTER TABLE 表名 MODIFY  字段名1 字段类型 【DEFAULT 默认值】;


代码举例:


ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';


4.3 重命名一个列


使用 CHANGE old_column new_column dataType子句重命名列。语法格式如下:


ALTER TABLE 表名 CHANGE  列名 新列名 新数据类型;


代码举例:


ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2);
ALTER TABLE myemp1
CHANGE email mt_email VARCHAR(50);


4.4 删除一个列


ALTER TABLE 表名 DROP 【COLUMN】字段名


代码举例:


ALTER TABLE myemp1
DROP COLUMN mt_email;


5. 重命名表


方式一:使用RENAME


RENAME TABLE emp
TO myemp;


方式二:


ALTER table dept
RENAME [TO] detail_dept; -- [TO]可以省略


6. 删除表


在MySQL中,当一张数据表没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除。


数据和结构都被删除


所有正在运行的相关事务被提交


所有相关索引被删除


语法格式:


DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];


注意:DROP TABLE 语句不能回滚


7. 清空表


TRUNCATE TABLE语句:


删除表中所有的数据


释放表的存储空间


代码示例:


TRUNCATE TABLE detail_dept;


注意!!TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用合集之使用临时查询创建的表,在表管理和公共表没有找到,是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
SQL 关系型数据库 MySQL
Mysql基础篇(创建、管理、增删改表)-2
Mysql基础篇(创建、管理、增删改表)
109 0
|
4月前
|
存储 SQL 关系型数据库
Mysql基础篇(创建、管理、增删改表)-1
Mysql基础篇(创建、管理、增删改表)
138 0
|
10月前
|
存储 SQL 关系型数据库
第10章_创建和管理表
第10章_创建和管理表
73 0
|
12月前
|
BI 数据处理 开发工具
【批量创建,删除工作表】
【批量创建,删除工作表】
|
存储 SQL 关系型数据库
创建管理表(上)
创建管理表(上)
44 0
|
关系型数据库 MySQL 数据库
如何创建数据表
如何创建数据表
|
SQL 数据库
数据表管理总结
数据表管理总结
|
存储 SQL 关系型数据库
|
存储 SQL 数据库
实验四 数据库表的创建和管理
1.掌握数据库表的两种创建方法; 2.掌握完整性约束的设置方法; 3.掌握导入导出数据的操作方法;
368 0