0
点赞
收藏
分享

微信扫一扫

MySQL(一)——基本操作

蓝哆啦呀 2022-02-21 阅读 22

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)
举报

相关推荐

0 条评论