前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)

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

作者头像
红目香薰
发布2023-12-01 08:37:56
4260
发布2023-12-01 08:37:56
举报
文章被收录于专栏:CSDNToQQCode

创建数据库和表操作

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

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

1、登录MySQL服务器

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

代码语言:javascript
复制
mysql -u root -p

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

2、创建数据库

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

代码语言:javascript
复制
CREATE DATABASE mydatabase;

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

3、选择数据库

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

代码语言:javascript
复制
USE mydatabase;

4、设置数据库字符集

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

代码语言:javascript
复制
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

5. 查看所有数据库

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

代码语言:javascript
复制
SHOW DATABASES;

6、删除数据库

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

代码语言:javascript
复制
DROP DATABASE mydatabase;

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

7、修改数据库

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

代码语言:javascript
复制
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

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

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

首先,创建一个新用户:

代码语言:javascript
复制
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';

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

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';

10、刷新权限

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

代码语言:javascript
复制
FLUSH PRIVILEGES;

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

修改表结构(ALTER TABLE)

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

1、添加新列

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

代码语言:javascript
复制
ALTER TABLE students ADD birthdate DATE;

2、删除列

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

代码语言:javascript
复制
ALTER TABLE students DROP COLUMN birthdate;

3、修改列

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

代码语言:javascript
复制
ALTER TABLE students MODIFY COLUMN name VARCHAR(100);

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

代码语言:javascript
复制
ALTER TABLE students CHANGE COLUMN old_name new_name VARCHAR(50);

4、重命名表

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

代码语言:javascript
复制
ALTER TABLE students RENAME TO pupils;

5、添加主键

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

代码语言:javascript
复制
ALTER TABLE students ADD PRIMARY KEY (id);

6、删除主键

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

代码语言:javascript
复制
ALTER TABLE students DROP PRIMARY KEY;

7、添加索引

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

代码语言:javascript
复制
ALTER TABLE students ADD INDEX (lastname);

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

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

代码语言:javascript
复制
ALTER TABLE students CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

9. 修改表的存储引擎

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

代码语言:javascript
复制
ALTER TABLE students ENGINE = MyISAM;

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

10、添加外键约束

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

代码语言:javascript
复制
ALTER TABLE orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(id);

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建数据库和表操作
    • 1、登录MySQL服务器
      • 2、创建数据库
        • 3、选择数据库
          • 4、设置数据库字符集
            • 5. 查看所有数据库
              • 6、删除数据库
                • 7、修改数据库
                  • 8、创建数据库用户并设置权限
                    • 9、为该用户授予对数据库的访问权限
                      • 10、刷新权限
                      • 修改表结构(ALTER TABLE)
                        • 1、添加新列:
                          • 2、删除列
                            • 3、修改列
                              • 4、重命名表
                                • 5、添加主键
                                  • 6、删除主键
                                    • 7、添加索引
                                      • 8、修改表的字符集和排序规则
                                        • 9. 修改表的存储引擎
                                          • 10、添加外键约束
                                          相关产品与服务
                                          云数据库 MySQL
                                          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档