MySQL操作
数据库操作
创建数据库
CREATE DATABASE
# impact为数据库名
# if not exists可选,防止mysql报错
CREATE DATABASE (if not exists) impact;
列出 MySQL数据库列表
SHOW DATABASES
show databases;
+--------------------+
| Database |
+--------------------+
| impact |
| information_schema |
| mysql |
| performance_schema |
| run |
| runoob |
| sys |
+--------------------+
7 rows in set (0.00 sec)
使用数据库
USE 数据库名
use impact;
Database changed
判断当前所处的数据库
SELECT DATABASE()
SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| impact |
+------------+
1 row in set (0.00 sec)
删除数据库
DROP DATABASE 数据库名
# runoob为数据库名,IF EXISTS可选,防止mysql报错
DROP DATABASE (IF EXISTS) runoob;
Query OK, 0 rows affected (0.03 sec)
数据库表操作
数据库中的所有表
SHOW TABLES
show tables;
+---------------+
| Tables_in_run |
+---------------+
| charact_tb |
| charact_tbl |
| runoob_tbl |
+---------------+
3 rows in set (0.00 sec)
创建数据表
CREATE TABLE 表名()
# 第一列为表字段名,第二列为数据类型
# 表字段用','隔开
# comment '说明' 可选,字段的属性 可选
create table charact_tbl(
id int comment '编号',
name varchar(10) comment '姓名',
country varchar(10) comment '国家',
sex varchar(1) comment '性别'
) comment '角色表';
查询表结构
desc 表名
# 可查询多个表,用逗号隔开
desc charact_tb;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
查询指定表的建表语句
SHOW CREATE TABLE 表名
show create table charact_tb;
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| charact_tb | CREATE TABLE `charact_tb` (
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`country` varchar(10) DEFAULT NULL COMMENT '国家',
`sex` varchar(1) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='角色表' |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
修改表名
ALTER TABLE 表名 RENAME TO 新表名
ALTER TABLE charact_tb RENAME TO alter_tbl;
Query OK, 0 rows affected (0.03 sec)
# 表名已修改成功
mysql> desc charact_tb;
ERROR 1146 (42S02): Table 'run.charact_tb' doesn't exist
mysql> desc alter_tbl;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
删除表单
DROP TABLE (IF EXISTS) 表名
DROP TABLE IF EXISTS charact_tb;
Query OK, 0 rows affected, 1 warning (0.01 sec)
删除该表并重新再创建(格式化)
TRUNCATE TABLE 表名
TRUNCATE TABLE charact_tbl;
Query OK, 0 rows affected (0.06 sec)
添加表字段
ALTER TABLE 表名 ADD 字段名 类型
会添加到表单的末尾
alter table charact_tb add age int;
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
# 查询表单信息是否添加成功
mysql> desc charact_tb;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
| age | tinyint | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
修改字段类型及名称
ALTER TABLE 表名 MODIFY 字段名 类型 ;
只修改数据类型
alter table charact_tb modify age tinyint;
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
# 查询表单信息是否修改成功
mysql> desc charact_tb;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
| age | tinyint | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
ALTER TABLE 表名 MODIFY 字段名 新字段名 类型
alter table charact_tb change age school varchar(10);
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0
# 查询表单信息是否修改成功
mysql> desc charact_tb;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
| school | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
删除表字段
ALTER TABLE 表名 DROP 表字段名 ;
如果数据表中只剩一个字段则无法使用DROP来删除字段
alter table charact_tb drop school;
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
# 查询表单信息是否删除成功
mysql> desc charact_tb;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| country | varchar(10) | YES | | NULL | |
| sex | varchar(1) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
从表中查询数据
SELECT 列名称 FROM 表名称
# 查询多个列可以用逗号隔开
select name from alter_tbl;
+-----------+
| name |
+-----------+
| 琪亚娜 |
+-----------+
1 row in set (0.00 sec)
SELECT * FROM 表名称
'*'代表表中的所有列
select * from alter_tbl;
+-----------+---------+------+
| name | country | sex |
+-----------+---------+------+
| 琪亚娜 | impact | 1 |
+-----------+---------+------+
在表单中插入数据
INSERT INTO 表名 ( 表字段 )VALUES( 插入的数据 );
insert into user(name,age,school,grade,gender,date)
-> VALUES
-> ("小何",17,"xx大学","大一","女",now());
Query OK, 1 row affected (0.01 sec)
# 判断一下数据是否插入成功
mysql> select * from user;
+--------+-----+----------+--------+--------+----+---------------------+
| name | age | school | grade | gender | id | date |
+--------+-----+----------+--------+--------+----+---------------------+
| 小明 | 17 | xx大学 | 大一 | 男 | 1 | 2022-02-18 20:59:51 |
| 小红 | 18 | xx大学 | 大一 | 女 | 2 | 2022-02-18 21:00:17 |
| 小张 | 17 | xx大学 | 大一 | 男 | 3 | 2022-02-18 21:00:26 |
| 小璃 | 17 | xx大学 | 大一 | 女 | 4 | 2022-02-18 21:00:35 |
| 小晴 | 17 | xx大学 | 大一 | 女 | 5 | 2022-02-18 21:00:49 |
| 小方 | 17 | xx大学 | 大一 | 男 | 6 | 2022-02-18 21:00:56 |
| 小宋 | 17 | xx大学 | 大一 | 男 | 7 | 2022-02-18 21:01:03 |
| 小滢 | 19 | xx大学 | 大一 | 女 | 8 | 2022-02-19 10:19:09 |
| 小夏 | 16 | xx大学 | 大一 | 女 | 9 | 2022-02-19 10:22:03 |
| 小胡 | 19 | xx大学 | 大二 | 女 | 10 | 2022-02-19 12:14:26 |
| 小何 | 17 | xx大学 | 大一 | 女 | 11 | 2022-02-21 16:19:42 |
+--------+-----+----------+--------+--------+----+---------------------+
11 rows in set (0.01 sec)