MySQL提供了大量的SQL语句用于管理。虽然可以使用MySQL Workbench图形界面来直接管理MySQL,但是,很多时候,通过SSH远程连接时,只能使用SQL命令,所以,了解并掌握常用的SQL管理操作是必须的。
数据库
在一个运行MySQL的服务器上,实际上可以创建多个数据库(Database)。要列出所有数据库,使用命令:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| shici |
| sys |
| test |
| school |
+--------------------+
复制
其中,information_schema
、mysql
、performance_schema
和sys
是系统库,不要去改动它们。其他的是用户创建的数据库。
要创建一个新数据库,使用命令:
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.01 sec)
复制
要删除一个数据库,使用命令:
mysql> DROP DATABASE test;
Query OK, 0 rows affected (0.01 sec)
复制
注意:删除一个数据库将导致该数据库的所有表全部被删除。
对一个数据库进行操作时,要首先将其切换为当前数据库:
mysql> USE test;
Database changed
复制
表
列出当前数据库的所有表,使用命令:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_test |
+---------------------+
| classes |
| statistics |
| students |
| students_of_class1 |
+---------------------+
复制
要查看一个表的结构,使用命令:
mysql> DESC students;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| class_id | bigint(20) | NO | | NULL | |
| name | varchar(100) | NO | | NULL | |
| gender | varchar(1) | NO | | NULL | |
| score | int(11) | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
复制
还可以使用以下命令查看创建表的SQL语句:
mysql> SHOW CREATE TABLE students;
+----------+-------------------------------------------------------+
| students | CREATE TABLE `students` ( |
| | `id` bigint(20) NOT NULL AUTO_INCREMENT, |
| | `class_id` bigint(20) NOT NULL, |
| | `name` varchar(100) NOT NULL, |
| | `gender` varchar(1) NOT NULL, |
| | `score` int(11) NOT NULL, |
| | PRIMARY KEY (`id`) |
| | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 |
+----------+-------------------------------------------------------+
1 row in set (0.00 sec)
复制
创建表使用CREATE TABLE
语句,而删除表使用DROP TABLE
语句:
mysql> DROP TABLE students;
Query OK, 0 rows affected (0.01 sec)
复制
修改表就比较复杂。如果要给students
表新增一列birth
,使用:
ALTER TABLE students ADD COLUMN birth VARCHAR(10) NOT NULL;
复制
要修改birth
列,例如把列名改为birthday
,类型改为VARCHAR(20)
:
ALTER TABLE students CHANGE COLUMN birth birthday VARCHAR(20) NOT NULL;
复制
要删除列,使用:
ALTER TABLE students DROP COLUMN birthday;
复制
退出MySQL
使用EXIT
命令退出MySQL:
mysql> EXIT
Bye
复制
注意EXIT
仅仅断开了客户端和服务器的连接,MySQL服务器仍然继续运行。
文章转载自快易开发学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2797次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
821次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
475次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
419次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
368次阅读
2025-04-15 14:48:05
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
269次阅读
2025-04-15 15:27:53
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
262次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
246次阅读
2025-05-06 14:40:00
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
221次阅读
2025-04-18 20:21:32
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
216次阅读
2025-04-30 12:17:54