MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)



 

创建数据库和表操作

MySQL创建数据库的操作相对直接明了。以下是详细步骤和示例:

首先,您需要具有适当的权限才能在MySQL中创建数据库。通常,这意味着您需要以具有创建数据库权限的用户身份登录到MySQL服务器。

1、登录MySQL服务器

通过命令行登录到MySQL服务器。您可能需要提供用户名(例如“root”)和密码。

mysql -u root -p

系统会提示您输入密码。输入后,按Enter键继续。

2、创建数据库

一旦登录,您就可以使用SQL命令来创建数据库。以下是一个简单的示例,演示如何创建一个名为“mydatabase”的数据库。

CREATE DATABASE mydatabase;

这条命令将创建一个新的数据库,名为“mydatabase”。

3、选择数据库

创建数据库后,您可以使用以下命令来选择或切换到该数据库:

USE mydatabase;

4、设置数据库字符集

在创建数据库时,您还可以为其设置字符集。例如,如果要使用UTF-8字符集,可以使用以下命令:

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这将使用UTF-8字符集创建一个数据库,并使用utf8mb4_unicode_ci排序规则,这对于支持多种语言(包括表情符号)非常有用。

5. 查看所有数据库

要查看MySQL服务器上存在的所有数据库,可以使用以下命令:

SHOW DATABASES;

6、删除数据库

如果您需要删除数据库,可以使用以下命令:

DROP DATABASE mydatabase;

这将删除名为“mydatabase”的数据库及其所有内容。请小心使用此命令,因为它会永久删除数据。

7、修改数据库

您还可以使用ALTER DATABASE命令来修改数据库的属性。例如,要更改数据库的字符集,可以使用以下命令:

ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这将更改现有数据库的字符集和排序规则。

8、创建数据库用户并设置权限

您可能还想为新的数据库创建一个用户并设置适当的权限。以下是一个示例:

首先,创建一个新用户:

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';

9、为该用户授予对数据库的访问权限

GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';

10、刷新权限

最后,刷新权限使更改生效:

FLUSH PRIVILEGES;

这允许新用户从任何主机连接到数据库并具有完全权限。您可以根据需要调整权限和主机设置。例如,如果您只想允许从本地主机连接,可以将'%'替换为'localhost'。同时,请确保选择一个强密码以提高安全性。

修改表结构(ALTER TABLE)

MySQL中的ALTER TABLE语句用于修改现有表的结构。使用此语句,您可以添加、删除或修改列,更改表的字符集或排序规则,重命名表,以及进行其他结构更改。以下是ALTER TABLE语句的一些常见用法和示例:

1、添加新列

您可以使用ADD子句向表中添加新列。例如,要向名为students的表中添加一个名为birthdate的日期列,可以使用以下语句:

ALTER TABLE students ADD birthdate DATE;

2、删除列

如果您不再需要表中的某个列,可以使用DROP COLUMN子句将其删除。例如,要从students表中删除birthdate列,可以使用以下语句:

ALTER TABLE students DROP COLUMN birthdate;

3、修改列

您可以使用MODIFY COLUMNALTER COLUMN子句更改现有列的属性。例如,要更改students表中name列的数据类型,将其从VARCHAR(50)更改为VARCHAR(100),可以使用以下语句:

ALTER TABLE students MODIFY COLUMN name VARCHAR(100);

或者,如果您只想重命名该列,可以使用:

ALTER TABLE students CHANGE COLUMN old_name new_name VARCHAR(50);

4、重命名表

如果您想更改表的名称,可以使用RENAME TO子句。例如,要将students表重命名为pupils,可以使用以下语句:

ALTER TABLE students RENAME TO pupils;

5、添加主键

如果您需要向表中添加主键约束,可以使用ADD PRIMARY KEY子句。例如,要在students表中将id列设置为主键,可以使用以下语句:

ALTER TABLE students ADD PRIMARY KEY (id);

6、删除主键

要删除表中的主键约束,可以使用DROP PRIMARY KEY子句。例如:

ALTER TABLE students DROP PRIMARY KEY;

7、添加索引

您可以使用ADD INDEX子句向表中添加索引以提高查询性能。例如,要在students表的lastname列上添加索引,可以使用以下语句:

ALTER TABLE students ADD INDEX (lastname);

8、修改表的字符集和排序规则

如果您需要更改表的字符集或排序规则,可以使用CONVERT TO CHARACTER SETCOLLATE子句。例如:

ALTER TABLE students CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这将更改表的字符集为utf8mb4,并使用utf8mb4_unicode_ci排序规则。

9. 修改表的存储引擎

您还可以使用`ENGINE`子句更改表的存储引擎。例如,要将表从InnoDB更改为MyISAM,可以使用以下语句:

ALTER TABLE students ENGINE = MyISAM;

请注意,在执行此操作之前,请确保了解不同存储引擎之间的差异和限制。

10、添加外键约束

您可以使用`ADD CONSTRAINT`子句向表中添加外键约束以维护引用完整性。例如:

ALTER TABLE orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(id);

这将在名为orders的表中添加一个名为fk_customer的外键约束,该约束引用customers表中的id列。删除外键约束使用类似的语法。使用ALTER TABLE语句时,请确保在执行任何结构更改之前备份数据库或表。这些更改可能会影响数据完整性或查询性能,并且在某些情况下可能需要重新构建表或重新索引数据。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
81 15
|
6天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
13天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
17天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
25天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
39 1
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
52 4
|
2月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
72 3
Mysql(4)—数据库索引
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
248 1
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
140 2

推荐镜像

更多
下一篇
DataWorks