mysql数据库入门手册

常见的数据库

当前主流的数据库系统包括关系型数据库管理系统(RDBMS)和一些主要的NoSQL数据库。以下是几个主流的数据库系统:

关系型数据库管理系统 (RDBMS)

MySQL / MariaDB:(本文详细介绍该数据库的命令使用)
MySQL是一个流行的开源关系型数据库管理系统,被广泛应用于Web应用开发中。
MariaDB是MySQL的一个分支,保持与MySQL高度兼容,并添加了一些新的特性。

PostgreSQL:
PostgreSQL是一个强大的开源关系型数据库管理系统,以其功能丰富和可扩展性而闻名。
它支持复杂的查询、事务、触发器等高级数据库特性。

Oracle Database:
Oracle Database是一种商业的关系型数据库管理系统,广泛用于企业级应用。
它以其高可用性、强大的管理功能和丰富的特性集合而著称。

NoSQL非关系型数据库

MongoDB:
MongoDB是一个流行的开源NoSQL数据库,采用文档存储模型,适合处理大量的非结构化数据。
它支持高度灵活的数据模型和分布式部署。

Redis:
Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息代理。
它支持多种数据结构(如字符串、哈希表、列表等),并提供高性能的读写操作。

ubuntu2404安装mariadb数据库

apt install -y mariadb-server
systemctl enable --now mariadb

查看当前用户及其权限

查看用户语法

SELECT user, host FROM mysql.user;

查看用户权限语法

SHOW GRANTS FOR 'username'@'host';
MariaDB [(none)]> SELECT user, host FROM mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
4 rows in set (0.001 sec)

MariaDB [(none)]> SHOW GRANTS FOR 'mysql'@'localhost';
+------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for mysql@localhost
                   |
+------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `mysql`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'mysql'@'localhost' WITH GRANT OPTION
                   |
+------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

创建用户

语法格式

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username: 要创建的用户名。
host: 允许访问数据库的主机名或IP地址。可以使用通配符 % 表示任意主机,或者具体的IP地址或主机名。
password: 用户的密码。

MariaDB [(none)]> CREATE USER 'huhy'@'localhost' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SELECT user, host FROM mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| huhy        | localhost |
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
4 rows in set (0.001 sec)

授权用户访问数据库

语法格式

GRANT privileges ON database_name.table_name TO 'username'@'host';

privileges: 用户需要的权限,例如 SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES 等。
database_name.table_name: 数据库和表名,可以使用通配符 * 表示所有数据库或表。
username 和 host: 已创建用户的用户名和主机。

例:

GRANT SELECT, INSERT ON database1.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON database2.* TO 'user1'@'%';
GRANT DELETE ON database1.table1 TO 'user1'@'192.168.1.100';

赋予huhy用户所有权限

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'huhy'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SHOW GRANTS FOR 'huhy'@'localhost';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for huhy@localhost                                                                                            |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `huhy`@`localhost` IDENTIFIED BY PASSWORD '*032197AE5731D4664921A6CCAC7CFCE6A0698693' |
+----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

撤销用户权限

语法格式

REVOKE privileges ON database_name.table_name FROM 'username'@'host';

撤销huhy所有权限

MariaDB [(none)]> REVOKE ALL PRIVILEGES ON *.* FROM 'huhy'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SHOW GRANTS FOR 'huhy'@'localhost';
+-------------------------------------------------------------------------------------------------------------+
| Grants for huhy@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `huhy`@`localhost` IDENTIFIED BY PASSWORD '*032197AE5731D4664921A6CCAC7CFCE6A0698693' |
+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]>

如果只需要撤销单个权限;可按照如下

REVOKE SELECT, INSERT ON *.* FROM 'huhy'@'localhost';

修改用户密码

语法格式

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

修改用户密码为111111

MariaDB [(none)]> ALTER USER 'huhy'@'localhost' IDENTIFIED BY '111111';
Query OK, 0 rows affected (0.001 sec)

删除用户

语法格式

DROP USER 'username'@'host';

删除huhy

MariaDB [(none)]> drop user 'huhy'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SELECT user, host FROM mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
3 rows in set (0.001 sec)

MariaDB [(none)]>

以下操作使用mysql数据库

创建一个数据库

语法格式
create database 数据库名;

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| studentdb          |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql>

创建完后可以用show databases;查看所有数据库,注意databases是复数形式的

创建表

创建表时注意要指定在那个数据库下创建表,用use来选择

创建表语法格式
create table 表名(字段名 数据类型 primary key,字段名 数据类型,字段名 数据类型);

primary key表示该字段不为空且值不能重复

mysql> use test;
Database changed
mysql> create table info(id int primary key,name varchar(255),age varchar(100));
Query OK, 0 rows affected (0.00 sec)

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql>
表中插入数据

语法格式
insert into 表名 (字段1,字段2,字段3) values (值1,值2,值3);

mysql> insert into info(id,name,age) values ("1","张三","19");
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | 张三   | 19   |
+----+--------+------+
1 row in set (0.00 sec)

mysql>

这里先提前学习一个查询所有信息命令select * from info

表中添加字段(三种方式)

第一种方式,末尾添加字段
alter table 表名 add 新字段名 数据类型 约束条件(可选);

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table info add sex varchar(50);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql>

第二种方式,开头创建字段
alter table 表名 add 新字段名 数据类型 约束条件(可选) first;

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> alter table info add num int(10) first;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(10)      | YES  |     | NULL    |       |
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql>

第三种方式,中间添加字段
alter table 表名 add 新字段名 数据类型 约束条件(可选) after 已经存在的字段名;

MySQL 除了允许在表的开头位置和末尾位置添加字段外,还允许在中间位置(指定的字段之后)添加字段,此时需要使用 after 关键字

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(10)      | YES  |     | NULL    |       |
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table info add sno varchar(50) after name;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(10)      | YES  |     | NULL    |       |
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| sno   | varchar(50)  | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

删除表记录

语法格式如下
delete from 表名 where 字段 = 值;

注;如果不加上where条件语句的话,就会把整张表给删除了

mysql> delete from info where id = 1;
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;
Empty set (0.00 sec)

mysql>

删除表字段

命令格式
alter table 表名 drop column 字段名;

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table info drop column age;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql>

删除表(三种方式)

第一种方式;
drop table 表名;

删除内容和定义,删除的是整个表(结构和数据),将表所占用的空间全释放掉。无法回滚,所以删除是不能恢复的,如果再次使用的话需要新建表

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| info           |
+----------------+
1 row in set (0.00 sec)

mysql> select * from info;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | 张三   | 19   |
+----+--------+------+
1 row in set (0.00 sec)

mysql> drop table info;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
Empty set (0.00 sec)

mysql>

第二种删除方式
truncate table 表名;

只是清空表,删除内容,释放空间,但不删除定义(保留表的数据结构)。且不会把删除操作记录记入日志保存,无法回滚,所以删除是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| info           |
+----------------+
1 row in set (0.00 sec)

mysql> select * from info;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | 张三   | 19   |
+----+--------+------+
1 row in set (0.00 sec)

mysql> truncate table info;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| info           |
+----------------+
1 row in set (0.00 sec)

mysql> select * from info;
Empty set (0.00 sec)

mysql>

第三中删除方式
delete from 表名;

删除表中的行,不删除表的结构。执行删除的过程是每次从表中删除一行,并且将该行的删除操作作为事务在日志中保存,以便进行进行回滚操作。delete会根据指定的条件删除表中满足条件的数据,where就是条件判断。如果不指定where子句,那么删除表中所有记录。delete操作不会减少表或索引所占用的空间,不推荐此方法删除表

删除数据库

语法格式
drop database 数据库名;

数据库删除之后,原来分配的空间将被收回。需要注意的是,数据库删除之后该数据库中所有的表和数据都将被删除。因此删除数据库要特别小心

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| studentdb          |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql> drop database test;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| studentdb          |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql>

修改表名

语法格式
alter table 旧表名 rename 新表名;

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| info           |
+----------------+
1 row in set (0.00 sec)

mysql> alter table info rename new_info;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| new_info       |
+----------------+
1 row in set (0.00 sec)

mysql>

修改表数据

语法格式
update 表名 set 字段名 = ”新的值“ where 条件;

注意判断的条件是否锁定为修改修改的字段

mysql> select * from info;
+------+----+--------+------+------+------+
| num  | id | name   | sno  | age  | sex  |
+------+----+--------+------+------+------+
| NULL |  1 | 张三   | NULL | 19   | NULL |
+------+----+--------+------+------+------+
1 row in set (0.00 sec)

mysql> update info set sex = "男" where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from info;
+------+----+--------+------+------+------+
| num  | id | name   | sno  | age  | sex  |
+------+----+--------+------+------+------+
| NULL |  1 | 张三   | NULL | 19   ||
+------+----+--------+------+------+------+
1 row in set (0.00 sec)

mysql>

修改表字段名

语法格式
alter table 表名 change 字段名 旧字段 新字段 新字段数据类型;

注;此方式可以修改字段名字的同时也可以修改字段数据类型,也可以指定为原来的字段类型

mysql> desc info;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(10)      | YES  |     | NULL    |       |
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
| sno   | varchar(50)  | YES  |     | NULL    |       |
| age   | varchar(100) | YES  |     | NULL    |       |
| sex   | varchar(50)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> alter table info change name new_name varchar(100);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| num      | int(10)      | YES  |     | NULL    |       |
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(100) | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

修改表字段数据类型

语法格式
alter table 表名 modify 字段名 数据类型(长度);

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| num      | int(10)      | YES  |     | NULL    |       |
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(100) | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> alter table info modify age varchar(10);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| num      | int(10)      | YES  |     | NULL    |       |
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

修改字段排列段顺序

方式一,将指定字段放在开头
alter table 表名 modify 字段名 字段类型 first;

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| num      | int(10)      | YES  |     | NULL    |       |
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> alter table info modify id int(11) first;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | NO   | PRI | NULL    |       |
| num      | int(10)      | YES  |     | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

第二种方式,指定为某字段的后面
alter table 表名 modify 字段名 字段类型 after 字段名;

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | NO   | PRI | NULL    |       |
| num      | int(10)      | YES  |     | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> alter table info modify num int(10) after sex;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
| num      | int(10)      | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

拓展;如果字段的数据类型写错了也是会被修改的,并且还是会排序在指定字段的后面

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
| num      | int(10)      | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> alter table info modify num int(100) after sex;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | NO   | PRI | NULL    |       |
| new_name | varchar(100) | YES  |     | NULL    |       |
| sno      | varchar(50)  | YES  |     | NULL    |       |
| age      | varchar(10)  | YES  |     | NULL    |       |
| sex      | varchar(50)  | YES  |     | NULL    |       |
| num      | int(100)     | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

通配符和条件表达式

可参考菜鸟教程

order by排序

升序
select 字段1,字段2 from 表名 order by 排序字段 desc;

mysql> select * from student;
+-----------+-----------+------+------+-------+------+
| sno       | sname     | ssex | sage | sdept | sloc |
+-----------+-----------+------+------+-------+------+
| 201215121 | 李勇      ||   22 | cs    | NULL |
| 201215122 | 刘晨      ||   20 | cs    | NULL |
| 201215123 | 王敏      ||   18 | ma    | NULL |
| 201215124 | 张月琳    ||   20 | cs    | NULL |
| 201215125 | 张立      ||   19 | is    | NULL |
| 201215126 | 李晚      ||   21 | is    | NULL |
| 201215127 | 林方成    ||   19 | cs    | NULL |
| 201215128 | 赵立何    ||   21 | ma    | NULL |
| 201215129 | 赵城      ||   20 | ma    | NULL |
| 201215130 | 张浩      ||   20 | is    | NULL |
| 201215131 | 王信韵    ||   19 | cs    | NULL |
| 201215132 | 孙思      ||   21 | ma    | NULL |
| 201215133 | 陈信      ||   22 | cs    | NULL |
+-----------+-----------+------+------+-------+------+
13 rows in set (0.00 sec)

mysql> select sno,sname from student order by sno desc;
+-----------+-----------+
| sno       | sname     |
+-----------+-----------+
| 201215133 | 陈信      |
| 201215132 | 孙思      |
| 201215131 | 王信韵    |
| 201215130 | 张浩      |
| 201215129 | 赵城      |
| 201215128 | 赵立何    |
| 201215127 | 林方成    |
| 201215126 | 李晚      |
| 201215125 | 张立      |
| 201215124 | 张月琳    |
| 201215123 | 王敏      |
| 201215122 | 刘晨      |
| 201215121 | 李勇      |
+-----------+-----------+
13 rows in set (0.00 sec)

mysql>

降序
select 字段1,字段2 from 表名 order by 排序字段 asc;

mysql> select * from student;
+-----------+-----------+------+------+-------+------+
| sno       | sname     | ssex | sage | sdept | sloc |
+-----------+-----------+------+------+-------+------+
| 201215121 | 李勇      ||   22 | cs    | NULL |
| 201215122 | 刘晨      ||   20 | cs    | NULL |
| 201215123 | 王敏      ||   18 | ma    | NULL |
| 201215124 | 张月琳    ||   20 | cs    | NULL |
| 201215125 | 张立      ||   19 | is    | NULL |
| 201215126 | 李晚      ||   21 | is    | NULL |
| 201215127 | 林方成    ||   19 | cs    | NULL |
| 201215128 | 赵立何    ||   21 | ma    | NULL |
| 201215129 | 赵城      ||   20 | ma    | NULL |
| 201215130 | 张浩      ||   20 | is    | NULL |
| 201215131 | 王信韵    ||   19 | cs    | NULL |
| 201215132 | 孙思      ||   21 | ma    | NULL |
| 201215133 | 陈信      ||   22 | cs    | NULL |
+-----------+-----------+------+------+-------+------+
13 rows in set (0.00 sec)

mysql> select sno,sname from student order by sno asc;
+-----------+-----------+
| sno       | sname     |
+-----------+-----------+
| 201215121 | 李勇      |
| 201215122 | 刘晨      |
| 201215123 | 王敏      |
| 201215124 | 张月琳    |
| 201215125 | 张立      |
| 201215126 | 李晚      |
| 201215127 | 林方成    |
| 201215128 | 赵立何    |
| 201215129 | 赵城      |
| 201215130 | 张浩      |
| 201215131 | 王信韵    |
| 201215132 | 孙思      |
| 201215133 | 陈信      |
+-----------+-----------+
13 rows in set (0.00 sec)

mysql>
  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MySQL5.7操作手册中文版是MySQL产品的官方指南,主要介绍MySQL在安装、部署、维护、备份和恢复等方面的操作指南。该手册包含大量的优化技巧和性能调优的建议,帮助用户在不同的场景下有效地提高数据库系统的稳定性和可靠性。 该操作手册详细介绍了MySQL数据库的架构、功能、基本概念和术语的解释,让读者对MySQL有更全面的认识。同时,该手册涵盖了MySQL的备份和恢复、复制、安全管理、监控和诊断等方面的细节操作,使读者能够全面掌握MySQL的运维技术。 此外,MySQL5.7操作手册中文版还提供了丰富的示例和场景讲解,方便读者理解和实践。无论是初学者还是有经验的管理员,都可以从中获取到实用的技巧和经验。 总之,MySQL5.7操作手册中文版是MySQL数据库的一份完整且详细的指导文档,可以帮助读者更好地管理和优化MySQL数据库,提高其性能和可靠性。 ### 回答2: MySQL5.7操作手册中文版是一份非常重要的数据库管理工具,在数据库管理和维护方面有着非常重要的作用。这个操作手册中文版包含了数据库管理和维护方面的所有必备信息,涵盖了MySQL5.7的各种特性、安装、配置、备份和恢复、性能优化等方面的内容。 对于想了解MySQL5.7数据库的用户,MySQL5.7操作手册中文版是非常有用的一份参考资料,可以帮助用户快速入门和掌握MySQL5.7。此外,这个手册也提供了很多实用的技巧和方法,用户可以利用这些技巧和方法更加高效地使用MySQL5.7进行数据管理和维护。 在使用MySQL5.7时,遇到的各种问题和疑惑都可以在MySQL5.7操作手册中文版中找到解答。因此,这个操作手册中文版对于MySQL数据库的用户来说,是一个非常重要的资料。无论你是新手还是专业用户,都可以从这份操作手册中获益良多。 ### 回答3: MySQL 5.7操作手册中文版提供了MySQL 5.7的详细文档,包括安装、配置、管理、备份、恢复、性能优化等方面的内容。这份手册不仅适用于MySQL管理员和开发人员,还适合任何想学习MySQL的人。MySQL 5.7操作手册中文版采用了简明易懂的语言,配有大量的图例和实例,让读者更容易理解和掌握MySQL 5.7的相关知识。手册的结构清晰,内容详尽,覆盖范围广泛,深入浅出,是学习和使用MySQL 5.7的不二选择。其中最重要的部分是SQL语句的使用,MySQL 5.7操作手册中文版详细阐述了增删改查的操作方法。另外,MySQL 5.7操作手册中文版还包括了各种优化技巧,如索引、查询优化以及服务器参数的设置等方面的内容,为MySQL的性能优化提供了详细的指导,同时也为MySQL运维人员提供了一份宝贵的参考书。总之,MySQL 5.7操作手册中文版是MySQL学习、使用的必备资料,对于想要深入学习MySQL相关知识的人来说,这份手册绝对是值得一读的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huhy~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值