mysql数据库入门手册

数据库

  • 常见的数据库
    • 查看当前用户及其权限
    • 创建用户
    • 授权用户访问数据库
    • 撤销用户权限
    • 修改用户密码
    • 删除用户
      • 创建一个数据库
      • 创建表
        • 表中插入数据
        • 表中添加字段(三种方式)
      • 删除表记录
      • 删除表字段
      • 删除表(三种方式)
      • 删除数据库
      • 修改表名
      • 修改表数据
      • 修改表字段名
      • 修改表字段数据类型
      • 修改字段排列段顺序
      • 通配符和条件表达式
      • order by排序

常见的数据库

当前主流的数据库系统包括关系型数据库管理系统(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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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: 0mysql> 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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生课程信息管理系统

摘 要 目前,随着科学经济的不断发展,高校规模不断扩大,所招收的学生人数越来越 多;所开设的课程也越来越多。随之而来的是高校需要管理更多的事务。对于日益增 长的学生相关专业的课程也在不断增多,高校对其管理具有一…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动

1. 概述 上一章节Qemu篇我们已经实现了我们SOC的power reset和 power down 寄存器,本章节我们就在Linux driver中去实现它。 2. Linux kernel 访问其他节点 Linux kernel中有一种机制,就是在driver中访问其它设备树节点的信息,了解设备树的应该都知道,每个设备节点都有一…

【java问答小知识19】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知以及已经有经验的小伙伴的复习知识点

Java中的"java.util.concurrent.locks.StampedLock"的"tryConvertToReadLock()"方法如何工作? 回答:尝试将当前的写锁转换为读锁,并返回一个表示锁定状态的戳记。 Java中的"java.util.concurrent.locks.StampedLock…

计算机网络:应用层 - 万维网 HTTP协议

计算机网络:应用层 - 万维网 & HTTP协议 万维网 WWW统一资源定位符 URL 超文本传输协议 HTTP非持续连接持续连接非流水线流水线 代理服务器HTTP报文 万维网 WWW 万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点…

通信系统网络架构_4.存储网络架构

1.计算机访问磁盘存储有3种方式 一般来说,计算机访问磁盘存储有3种方式: (1)直连式存储(Direct Attached Storage,DAS):计算机通过I/O端口直接访问存储设备的方式。 (…

路由

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 客户端(例如浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个U…

Kafka 最佳实践:构建高性能、可靠的数据管道

目录 1. 部署最佳实践 1.1 硬件配置 1.2 集群配置 1.3 ZooKeeper 配置 2. 主题和分区设计 2.1 分区设计 2.2 数据保留策略 3. 生产者最佳实践 3.1 生产确认机制 3.2 重试机制 3.3 批量发送 4. 消费者最佳实践 4.1 消费组管理 4.2 并行处理 4.3 错误处理 5. 安全…

昇思25天学习打卡营第5天|网络构建

一、简介: 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类(这个类和pytorch中的modul类是一样的作用),也是…

std::bind与std::ref配合使用时要注意的几个问题

目录 1 假如输入函数的变量是左值非常量引用,则该变量在std::bind中只能用std::ref修饰,不能用cref,否则编译失败: 2 假如输入函数的变量是左值常量引用,则该变量在std::bind中既可以用std::ref修饰,也可…

Mathtype7在Word2016中闪退(安装过6)

安装教程:https://blog.csdn.net/Little_pudding10/article/details/135465291 Mathtype7在Word2016中闪退是因为安装过Mathtype6,MathPage.wll和MathType Comm***.dotm),不会随着Mathtype的删除自动删除,而新版的Mathtype中的文件…

Inpaint软件最新版下载【安装详细图文教程】

​根据使用者情况表明在今天的数字时代,我们经常会遇到需要处理图形的情况,然而,当我们遇到水印在图形上,我们就需要寻找一个有效的方式来去除它,Inpaint软件就是一个非常实用的工具,它能够帮助我们去除水印…

小柴带你学AutoSar系列一、基础知识篇(6)车规级MCU入门RH850

flechazohttps://www.zhihu.com/people/jiu_sheng 小柴带你学AutoSar总目录https://blog.csdn.net/qiansh

自动化开发任务:在PHP框架中实现自定义命令

在现代Web开发中,自动化是提高开发效率和减少重复工作的关键。PHP框架,如Laravel、Symfony等,提供了强大的自定义命令功能,允许开发者创建自己的artisan命令来执行各种自动化任务。本文将详细介绍如何在PHP框架中实现自定义命令&a…

【web2】jquary,bootstrap,vue

文章目录 1.jquary:选择器1.1 jquery框架引入:$("mydiv") 当成id选择器1.2 jquery版本/对象:$(js对象) -> jquery对象1.3 jquery的页面加载事件:$ 想象成 window.onload 1.4 jquery的基本选择器:$()里内容…

GIM: Learning Generalizable Image Matcher From Internet Videos

【引用格式】:Shen X, Yin W, Mller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023. 【网址】:https://arxiv.org/pdf/2402.11095 【开源代…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言: 在Linux操作系统中,有软链接和硬链接,他们是一种特殊的文件引用,主要用于与…

mysql索引以及优化

索引的作用 在数据库表中对字段建立索引可以大大提高查询速度 mysql索引类型 普通索引唯一索引: 唯一索引列的值必须唯一允许有空值,如果是组合索引,则列值的组合必须唯一create unique index indexName on mytable(username(length))修改表结…

Cyber Weekly #12

赛博新闻 1、Anthropic发布Claude 3.5 Sonnet 本周五(6月21日)凌晨,Anthropic宣布推出其最新的语言模型Claude 3.5 Sonnet,距离上次发布Claude3才过去3个月。Claude3.5拥有20万token的长上下文窗口,目前已经在Claude…

python中mp4转mp3

python中mp4转mp3,直接上代码 from moviepy.editor import VideoFileClipdef video_to_audio(video_path, audio_path):video_clip VideoFileClip(video_path)audio video_clip.audioaudio.write_audiofile(audio_path)video_path 1.mp4 # 视频文件路径 audio_…

HCIA 19 结束 企业总部-分支综合实验(下)

3.6出口NAT配置可以访问互联网 配置NAT使内网可以访问公网8.8.8.8,当前总部PC1 PING不通公网地址8.8.8.8。 3.6.1总部配置NAT访问互联网 步骤1:配置NAT acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # interface GigabitEthern…