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>
相关文章:

mysql数据库入门手册
数据库 常见的数据库查看当前用户及其权限创建用户授权用户访问数据库撤销用户权限修改用户密码删除用户增创建一个数据库创建表表中插入数据表中添加字段(三种方式) 删删除表记录删除表字段删除表(三种方式)删除数据库 改修改表名…...

增强大型语言模型(LLM)可访问性:深入探究在单块AMD GPU上通过QLoRA微调Llama 2的过程
Enhancing LLM Accessibility: A Deep Dive into QLoRA Through Fine-tuning Llama 2 on a single AMD GPU — ROCm Blogs 基于之前的博客《使用LoRA微调Llama 2》的内容,我们深入研究了一种称为量化低秩调整(QLoRA)的参数高效微调࿰…...

空间复杂度 线性表,顺序表尾插。
各位少年,大家好,我是那一脸阳光,本次分享的主题是时间复杂度和空间复杂度 还有顺序表文章讲解和分享,如有不对可以评论区指导。 时间复杂度例题 // 计算斐波那契递归Fib的时间复杂度? long long Fib(size_t N){if(N…...

linux创建用户、切换用户、删除用户
创建用户 # 创建新用户 sudo useradd newuser# 设置新用户的密码 sudo passwd newuser切换用户 # 切换到新用户 su newuser# 验证用户切换 whoami 删除用户 # 删除用户 sudo userdel -r username# 验证用户是否已被删除 grep username /etc/passwd 如果删除用户时提示&…...

BC64 牛牛的快递(c++)
牛牛的快递 题目描述输入描述输出描述示例代码 解题思路例如 题目描述 牛牛正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,请问牛牛总共要…...

离线linux通过USB连接并使用手机网络
离线linux通过USB连接并使用手机网络 引场景 引 离线环境要安装一些软件特别麻烦,要自己去官网下载对应的包,然后上传到服务器上,再解压,编译,执行,配置变量等等,错一步都可能安装失败。有网络…...

I2C总线8位IO扩展器PCF8574
PCF8574用于I2C总线的远程8位I/O扩展器 PCF8574国产有多个厂家有替代产品,图示为其中一款HT8574 1 产品特点 低待机电流消耗:10 uA(最大值) I2C 转并行端口扩展器 漏极开路中断输出 与大多数微控制器兼容 具有大电流驱动能力的闭…...

webClient + fastJSON2 获取json格式的数据,同时解析至java class 并 下划线转驼峰
webClient中 .accept(MediaType.APPLICATION_JSON) 决定返回值是什么格式一般情况可以不写,但这里要获取JSON格式的 .bodyToMono(String.class)指定返回类型 fastJSON2中 Student student JSON.parseObject(result, Student.class, JSONReader.Feature.SupportSm…...

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】
SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3…...

OpenCV--形态学
形态学 形态学图像全局二值化自适应阈值腐蚀操作膨胀开运算闭运算形态学梯度顶帽操作黑帽操作 形态学 从图像中提取对表达和描绘区域形状有意义的图像分量 图像全局二值化 import cv2 import numpy as np """ 图像全局二值化--0与255 二值化的主要目的是通过…...

【LinuxC语言】IP地址相关的函数
文章目录 前言inet_addr()inet_aton()inet_ntoa()示例代码总结前言 在Linux C语言编程中,处理网络通信是一个核心主题,其中涉及到的IP地址相关函数扮演着至关重要的角色。这些函数允许我们在不同的网络层次上操作和管理IP地址,从而实现有效的数据传输和通信控制。本文将介绍…...

QT事件处理系统之五:自定义事件的发送案例 sendEvent和postEvent接口
1、案例 双击窗口,会发送 自定义事件,然后在事件过滤中心进行拦截处理自定义事件。 2、核心代码 /*解释:双击窗口时,将产生双击事件,然后该事件被包裹成一个对象,随后将会被发往event事件中心,然后进行事件的处理(Widget对象);因为m_lineEdit开启了事件过滤机制,所…...

模版与策略模式
一,怎么选择 如果需要固定的执行流程,选模版 如果不需要固定的执行流程,只需要对一个方法做具体抽象,选策略 参考文章: 常用设计模式汇总,告诉你如何学习设计模式 二,常用写法 子类 exten…...

SQL-Python
师从黑马程序员 数据库介绍 数据库就是存储数据的库 数据组织:库->表->数据 数据库和SQL的关系 MySQL的基础命令 SQL基础 SQL语言的分类 SQL的语法特征 DDL-库管理 show DATABASES;use sys;SELECT database();CREATE DATABASE test CHARSET utf-8;SHOW D…...

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

【pytorch06】 维度变换
常用API view/reshapesqueeze/unsqueezetranspose/t/permuteexpand/repeat view和reshape view操作的基本前提是保证numel()一致 a.view(4,28*28)的物理意义是把行宽以及通道合并在一起,对于4张图片,我们直接把所有数据都合在一起,用一个7…...

移动Web开发实战内容要点!!!
移动web开发 目录 移动web开发 第一章、Web开发标准与网页网站制作介绍 1.1Web开发标准 1.2网页基本构成元素 第二章、Web开发技术基础 2.1HTML的主要特点: 2.2HTML基本知识 2.3CSS样式 2.4JavaScript 第三章、打造移动Web应用程序 3.1为什么Android会成…...

spdlog生产者消费者模式
spdlog生产者消费者模式 spdlog提供了异步模式,显示的创建async_logger, 配合环形队列实现的消息队列和线程池实现了异步模式。异步logger提交日志信息和自身指针, 任务线程从消息队列中取出消息后执行对应的sink和flush动作。 1. 环形队列 1.1 环形队…...

日语 13 14
13. スピーチの依頼 いらい 自信 自信 自信 自信 自信 じしん 折り入って 折り入って 折り入って おりいって 诚恳 頼み 頼み 頼み 頼み 頼み たのみ 请求 整備 整備 整備 整備 整備 せいび 维修 肥満 肥満 肥満 肥満 肥満 ひまん 肥胖 権利 …...

初学者应该掌握的MySQL数据库的基本组成部分及概念
MySQL数据库作为一种开源的关系型数据库管理系统,被广泛应用于Web应用开发和数据存储。它具有高性能、易用性和可靠性等特点,是开发者们的首选之一。在本篇文章中,我们将详细介绍MySQL数据库的核心组成部分,帮助你深入理解这个强大…...

四川汇聚荣科技有限公司怎么样?
在探讨一家科技公司的综合实力时,我们往往从多个维度进行考量,包括但不限于公司的发展历程、产品与服务的质量、市场表现、技术创新能力以及企业文化。四川汇聚荣科技有限公司作为一家位于中国西部的科技企业,其表现和影响力自然也受到业界和…...

数据仓库和数据库有什么区别?
一、什么是数据仓库二、什么是数据库三、数据仓库和数据库有什么区别 一、什么是数据仓库 数据仓库(Data Warehouse)是一种专门用于存储和管理大量结构化数据的信息系统。它通过整合来自不同来源的数据,为企业提供统一、一致的数据视图&…...

计算子网掩码
例题 如果子网掩码是255.255.192.0, 那么下面主机()必须通过路由器才能与主机129.23.144.16通信( 1分 )A.129.23.148.127B. 129.23.191.21C. 129.23.127.222D. 129.23.130.33计算 要确定哪些主机必须通过路由器才能与…...

JVM 垃圾收集算法
首先我们要知晓,垃圾收集是建立在两个分代假说之上的: ①弱分代假说:绝大多数对象都是朝生夕灭的 ②强分代假说:熬过越多次垃圾收集的对象就越难消亡 收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄分配…...

安装虚拟环境
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Flask依赖两个外部库:Werkzeug和Jinja2。Werkzeug是一个WSGI(在Web应用和多种服务器之间的标准 Python 接口)工具…...

【ai】tx2-nx:安装深度学习环境及4.6对应pytorch
参考:https://www.waveshare.net/wiki/Jetson_TX2_NX#AI.E5.85.A5.E9.97.A8 英伟达2021年发布的的tritionserver 2.17 版本中,backend 有tensorflow1 和 onnxruntime ,他们都是做什么用的,作为backend 对于 triton 推理server意义是什么,是否应该有pytorch? Triton Infer…...

华为某员工爆料:三年前985本科起薪30万,现在硕士起薪还是30w,感慨互联网行情变化
“曾经的30万年薪,是985本科学历的‘标配’,如今硕士也只值这个价?” 一位华为员工的爆料,揭开了互联网行业薪资变化的冰山一角,也引发了不少人的焦虑:互联网人才“通货膨胀”的时代,真的结束了…...

Java基础--AOP--1.概述
一、AOP简介 AOP(Aspect Oriented )即为面向切面编程,也可称为面向方法编程,是方法增强的一种途径,通常可用于记录操作日志、权限空值、事务管理等等;Spring框架中的事务底层就是AOP。 二、AOP的组成 1、连接点&…...

【计算机网络仿真实验-实验3.1、3.2】交换路由综合实验
实验3.1 交换路由综合实验——作业1 一、实验目的 运用实验二(可前往博主首页计算机网络专栏下查看)中学到的知识,将这个图中的PC机连接起来组网并分析,本篇涉及代码以截图展示,过于简单的代码及操作不再详细介绍&…...

RSA密码系统的特定密钥泄露攻击与Coppersmith方法的应用
PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 RSA密码系统作为当前最广泛使用的公钥加密算法之一,其安全性依赖于大整数分解问题的困难性。然而,随着计…...