- 一、MySQL 安装和配置
- 二、初识数据库
- 三、创建数据库
- 演示数据库的操作
- 创建一个名称为 hsp_db01 的数据库。[图形化和指令 演示]
- 使用指令创建数据库
- 删除数据库指令
- 创建一个使用 utf8 字符集的 hsp_db02 数据库
- 创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
- 校对规则 utf8_bin 区分大小 默认 utf8_general_ci 不区分大小写
- 下面是一条查询的 sql , select 查询 * 表示所有字段 FROM 从哪个表
- WHERE 从哪个字段 NAME = ‘tom’ 查询名字是 tom
- 演示 decimal 类型、float、double 使用
- 创建表
- 添加数据
- decimal 可以存放很大的数
- 八、修改表
- 九、数据库CRUD语句
- 练习 insert 语句
一、MySQL 安装和配置
1.1 MySQL 版本推荐
mysql 5.5 mysql 5.6 mysql 5.7(稳定) mysql 8 更高版本
推荐安装 mysql 5.7
1.2 安装及配置
下载链接:https://cloud.189.cn/web/share?code=F3iE3yUFz6je(访问码:1qpp)
MySQL5.7.19安装.docx
1.3 使用命令行窗口连接MYSQL 数据库
- mysql -h 主机名 -P 端口 -u 用户名 -p密码
- 登录前,保证服务启动
- -p密码 中间不要有空格
- -p 后面如果没有写密码,回车后会要求输入密码
- 如果没有写 -h主机,默认就是本机
- 如果没有写 -P端口,默认就是3306
- 在实际工作中,3306 一般修改
启动 mysql 数据库的常见方式:【Dos命令】
- 服务方式启动(界面)
- net start mysql //启动 mysql服务
- net stop mysql //关闭 mysql服务
1.4 Navicat 安装
下载链接:https://cloud.189.cn/web/share?code=fYRfqmZ7NJNz(访问码:yv8x)
Navicat 激活教程
Navicat安装.docx
1.5 SQLyog 安装和使用
二、初识数据库
2.1 数据库三层结构
- 所谓安装Mysq|数据库,就是在主机安装一 个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(database manage system)
- 一个数据库中可以创建多个表,以保存数据(信息)。
- 数据库管理系统(DBMS)、数据库和表的关系如图所示

2.2 数据在数据库中的存储形式

2.3 SQL 语句分类
- DDL:数据定义语句【create 表,库…】
- DML:数据操作语句【增加 insert,修改 update,删除 delete】
- DQL:数据查询语句【select】
- DCL:数据控制语句【管理数据库:比如用户权限 grant revoke】
三、创建数据库
3.1 相关指令

- CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf8
- COLLATE:指定数据库字符集的校对规则(常用的是 utf8_bin [区分大小写]、utf8_general_ci [不区分大小写] 注意默认是 utf8_general_ci)
3.2 案例演示
- 创建一个名称为 hsp_db01 的数据库
- 创建一个使用 utf8 字符集的 hsp_db02 数据库
- 创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
```sql
演示数据库的操作
创建一个名称为 hsp_db01 的数据库。[图形化和指令 演示]
使用指令创建数据库
CREATE DATABASE hsp_db01;
删除数据库指令
DROP DATABASE hsp_db01
创建一个使用 utf8 字符集的 hsp_db02 数据库
CREATE DATABASE hsp_db02 CHARACTER SET utf8
创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin
校对规则 utf8_bin 区分大小 默认 utf8_general_ci 不区分大小写
下面是一条查询的 sql , select 查询 * 表示所有字段 FROM 从哪个表
WHERE 从哪个字段 NAME = ‘tom’ 查询名字是 tom
SELECT * FROM t1 WHERE NAME = ‘tom’
<a name="kOJ9m"></a>### 四、查看、删除数据库<a name="WiN7q"></a>#### 4.1 相关指令<a name="M54Kl"></a>#### 4.2 案例演示1. 查看当前数据库服务器中的所有数据库1. 查看前面创建的 hsp_db01 数据库的定义信息1. 删除前面创建的 hsp_db01 数据库```sql#演示删除和查询数据库#查看当前数据库服务器中的所有数据库SHOW DATABASES#查看前面创建的 hsp_db01 数据库的定义信息SHOW CREATE DATABASE `hsp_db01`#老师说明 在创建数据库,表的时候,为了规避关键字,可以使用反引号解决#删除前面创建的 hsp_db01 数据库DROP DATABASE hsp_db01
五、备份、恢复数据库
5.1 相关指令
- 备份数据库:(注意:在 Dos 执行)命令行
mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > d:\文件名.sql - 恢复数据库:(注意:进入MySQL命令行再执行)
source 文件名.sql - 备份恢复数据库的表
mysqldump -u 用户名 -p密码 数据库 表1 表2 表n > d:\文件名.sql
5.2 案例演示
#练习 : database03.sql 备份 hsp_db02 和 hsp_db03 库中的数据,并恢复#备份, 要在 Dos 下执行 mysqldump 指令其实在 mysql 安装目录\bin#这个备份的文件,就是对应的 sql 语句mysqldump -u root -p -B hsp_db02 hsp_db03 > d:\\bak.sqlDROP DATABASE ecshop;#恢复数据库(注意:进入 Mysql 命令行再执行)source d:\\bak.sql#第二个恢复方法, 直接将 bak.sql 的内容放到查询编辑器中,执行
5.3 小练习:安装 Ecshop 数据库
- 这是一个ecshop 的数据库,包括ecshop所有的表,请导入到 mysq|数据库中[备份]
进入到mysql命令行: source ecshop备份文件路径
- 再将ecshop整个数据库备份到你的 d:\lecshop.sql 到dos下: mysqldump -u root p -B ecshop > d:lecshop.sql
- 将mysql的ecshop数据库删除, 并通过备份的 d:\lecshop.sql 恢复
六、创建表
6.1 相关指令

6.2 案例演示
#指令创建表#注意:hsp_db02 创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。例:user表 (快速入门案例 create_tab01.sql )#id 整形 [图形化,指令]#name 字符串#password 字符串#birthday 日期CREATE TABLE `user` (id INT,`name` VARCHAR(255),`password` VARCHAR(255),`birthday` DATE)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
七、MySQL 常用数据类型(列类型)
7.1 数值型(整数)的基本使用
说明,使用规范:在能够满足要求的情况下,尽量选择占用空间小的
#演示整型的是一个#老韩使用 tinyint 来演示范围 有符号 -128 ~ 127 如果没有符号 0-255#说明: 表的字符集,校验规则, 存储引擎,老师使用默认#1. 如果没有指定 unsinged , 则 TINYINT 就是有符号#2. 如果指定 unsinged , 则 TINYINT 就是无符号 0-255CREATE TABLE t3 (id TINYINT);CREATE TABLE t4 (id TINYINT UNSIGNED);INSERT INTO t3 VALUES(127); #这是非常简单的添加语句SELECT * FROM t3INSERT INTO t4 VALUES(255);SELECT * FROM t4;
说明:
- create table t10 (id tinyint ); //默认是有符号的
- create table t11 (id tinyint unsigned ); //无符号的
7.2 数值型(bit)的使用
- 基本使用
mysql> create table t05 (num bit(8));
mysql> insert into t05 (1, 3);
mysql> insert into t05 values(2, 65);
- 细节说明 bit.sql
- bit字段显示时,按照位的方式显示.
- 查询的时候仍然可以用使用添加的数值
- 如果一个值只有0, 1可以考虑使用bit(1) ,可以节约空间
- 位类型。M指定位数,默认值1,范围1-64
- 使用不多.
#演示 bit 类型使用#说明#1. bit(m) m 在 1-64#2. 添加数据 范围 按照你给的位数来确定,比如 m = 8 表示一个字节 0~255#3. 显示按照 bit#4. 查询时,仍然可以按照数来查询CREATE TABLE t05 (num BIT(8));INSERT INTO t05 VALUES(255);SELECT * FROM t05;SELECT * FROM t05 WHERE num = 1;
7.3 数值型(小数)的基本使用
- FLOAT/DOUBLE [UNSIGNED]
Float单精度精度,Double 双精度
- DECIMAL[M,D] [UNSIGNED]
- 可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
- 如果D是0,则值没有小数点或分数部分。M最大65。 D最大是30。如果D被省略,默认是0。如果M被省略,默认是10。
- 建议:如果希望小数的精度高,推荐使用decimal
```sql
演示 decimal 类型、float、double 使用
创建表
CREATE TABLE t06 ( num1 FLOAT, num2 DOUBLE, num3 DECIMAL(30,20));
添加数据
INSERT INTO t06 VALUES(88.12345678912345, 88.12345678912345,88.12345678912345); SELECT * FROM t06;
decimal 可以存放很大的数
CREATE TABLE t07 ( num DECIMAL(65)); INSERT INTO t07 VALUES(8999999933338388388383838838383009338388383838383838383); SELECT FROM t07; CREATE TABLE t08( num BIGINT UNSIGNED) INSERT INTO t08 VALUES(8999999933338388388383838838383009338388383838383838383); SELECT FROM t08;
<a name="j35C2"></a>#### 7.4 字符串的基本使用CHAR(size)<br />固定长度字符串最大255字符<br />VARCHAR(size) 0~ 65535<br />可变长度字符串最大65532字节[ utf8编码最大21844字符1-3个字节用于记录大小]```sql#演示字符串类型使用 char varchar#注释的快捷键 shift+ctrl+c , 注销注释 shift+ctrl+r-- CHAR(size)-- 固定长度字符串 最大 255 字符-- VARCHAR(size) 0~65535 字节-- 可变长度字符串 最大 65532 字节 【utf8 编码最大 21844 字符 1-3 个字节用于记录大小】-- 如果表的编码是 utf8 varchar(size) size = (65535-3) / 3 = 21844-- 如果表的编码是 gbk varchar(size) size = (65535-3) / 2 = 32766CREATE TABLE t09 (`name` CHAR(255));CREATE TABLE t10 (`name` VARCHAR(32766)) CHARSET gbk;DROP TABLE t10;
7.5 字符串使用细节
- 细节 1
char(4):这个 4 表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.
varchar(4):这个 4 表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据,不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.
- 细节 2
char(4) 是定长,就是说,即使你插入’aa’,也会占用分配的4个字符
varchar(4) 是变长,就是说,如果你插入了 ‘aa’,实际占用空间大小并不是 4 个字符,而是按照实际占用空间
来分配(说明:varchar 本身还需要占用 1 - 3 个字节来记录存放内容长度)
- 细节 3
什么时候使用 char,什么时候使用 varchar- 如果数据是定长,推荐使用 char,比如 md5的密码,邮编,手机号,身份证号码等
- 如果一个字段的长度是不确定,我们使用 varchar,比如留言,文章
查询速度:char > varchar
- 细节4
在存放文本时,也可以使用 Text 数据类型,可以将 TEXT 列视为 VARCHAR 列,注意 Text 不能有默认值,大小 0 - 2^16 字节,如果希望存放更多字符,可以选择:MEDIUMTEXT 0 - 2^24 或者 LONGTEXT 0 - 2^32
#演示字符串类型的使用细节#char(4) 和 varchar(4) 这个 4 表示的是字符,而不是字节, 不区分字符是汉字还是字母CREATE TABLE t11(`name` CHAR(4));INSERT INTO t11 VALUES('韩顺平好');SELECT * FROM t11;CREATE TABLE t12(`name` VARCHAR(4));INSERT INTO t12 VALUES('韩顺平好');INSERT INTO t12 VALUES('ab 北京');SELECT * FROM t12;#如果 varchar 不够用,可以考试使用 mediumtext 或者 longtext,#如果想简单点,可以使用直接使用 textCREATE TABLE t13( content TEXT, content2 MEDIUMTEXT , content3 LONGTEXT);INSERT INTO t13 VALUES('韩顺平教育', '韩顺平教育 100', '韩顺平教育 1000~~');SELECT * FROM t13;
7.6 日期类型的基本使用
CREATE TABLE birthday6
( t1 DATE, t2 DATETIME,
t3 TIMESTAMP NOT NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP ) ;
timestamp:时间戳
mysq|> INSERT INTO birthday (t1,t2)
VALUES(‘2022-11-11;’2022-11-11 10:10:10’);
#演示时间相关的类型#创建一张表, date , datetime , timestampCREATE TABLE t14 (birthday DATE , -- 生日job_time DATETIME, -- 记录年月日 时分秒login_time TIMESTAMPNOT NULL DEFAULT CURRENT_TIMESTAMPON UPDATE CURRENT_TIMESTAMP); -- 登录时间, 如果希望 login_time 列自动更新, 需要配置SELECT * FROM t14;INSERT INTO t14(birthday, job_time)VALUES('2022-11-11','2022-11-11 10:10:10');-- 如果我们更新 t14 表的某条记录,login_time 列会自动的以当前时间进行更新
7.7 日期类型的细节说明
TimeStamp 在 Insert 和 update 时,自动更新
八、修改表
8.1 基本介绍
| 使用 ALTER TABLE 语句追加,修改,或删除列的语法 | |
|---|---|
| 添加列 | ALTER TABLE tablename ADD (column datatype [DEFAULT expr] [, column datatype]…) AFTER column; |
| 修改列 | ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr] [, column datatype]…); |
| 删除列 | ALTER TABLE tablename DROP (column); |
| 修改列名 | ALTER TABLE tablename CHANGE (column) (column datatype [DEFAULT expr]); |
查看表的结构: desc 表名; — 可以查看表的列
修改表名:Rename table 表名 to 新表名
修改表字符集:alter table 表名 character set 字符集;
8.2 案例演示
- 员工表 emp 上增加一个 image 列, varchar类型(要求在resume后面)。
- 修改 job 列,使其长度为60。
- 删除 sex 列。
- 表名改为 employee。
- 修改表的字符集为utf8
- 列名 name 修改为 username
_alter tabletable_namechangecolumn_namechanged_namevarchar(20);
#修改表的操作练习-- 员工表 emp 的上增加一个 image 列,varchar 类型(要求在 resume 后面)。ALTER TABLE empADD image VARCHAR(32) NOT NULL DEFAULT ''AFTER RESUMEDESC employee -- 显示表结构,可以查看表的所有列-- 修改 job 列,使其长度为 60。ALTER TABLE empMODIFY job VARCHAR(60) NOT NULL DEFAULT ''-- 删除 sex 列。ALTER TABLE empDROP sex-- 表名改为 employee。RENAME TABLE emp TO employee-- 修改表的字符集为 utf8ALTER TABLE employee CHARACTER SET utf8-- 列名 name 修改为 user_nameALTER TABLE employee
九、数据库CRUD语句
9.1 Insert 语句
- 基本语法

快速入门案例:
- 创建一张商品表 goods (id int,goods_name varchar(10),price double);
- 添加2条记录
```sql
练习 insert 语句
— 创建一张商品表 goods (id int , goods_name varchar(10), price double ); — 添加 2 条记录 CREATE TABLEgoods( id INT , goods_name VARCHAR(10), — 长度 10 price DOUBLE NOT NULL DEFAULT 100 ); — 添加数据 INSERT INTOgoods(id, goods_name, price) VALUES(10, ‘华为手机’, 2000); INSERT INTOgoods(id, goods_name, price) VALUES(20, ‘苹果手机’, 3000); SELECT * FROM goods;
CREATE TABLE goods2 (
id INT ,
goods_name VARCHAR(10), — 长度 10
price DOUBLE NOT NULL DEFAULT 100 );
2. **细节说明**- 插入的数据应与字段的数据类型相同<br />比如 把 'abc' 添加到 int 类型会错误- 数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串长度加入到长度为40的列中- 在 values 中列出的数据位置必须与被加入的列的排列位置相对应- 字符和日期型数据应包含在单引号中- 列可以插入空值【前提是该字段允许为空】insert into tale value(null)- insert into tab_name(列名...) values (),(),() 形式添加多条记录- 如果是给表中的所有字段添加数据,可以不写前面的字段名称- 默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错```sql#说明 insert 语句的细节-- 1.插入的数据应与字段的数据类型相同。-- 比如 把 'abc' 添加到 int 类型会错误INSERT INTO `goods` (id, goods_name, price)VALUES('韩顺平', '小米手机', 2000);-- 2. 数据的长度应在列的规定范围内,例如:不能将一个长度为 80 的字符串加入到长度为 40 的列中。INSERT INTO `goods` (id, goods_name, price)VALUES(40, 'vovo 手机 vovo 手机 vovo 手机 vovo 手机 vovo 手机', 3000);-- 3. 在 values 中列出的数据位置必须与被加入的列的排列位置相对应。INSERT INTO `goods` (id, goods_name, price) -- 不对VALUES('vovo 手机',40, 2000);-- 4. 字符和日期型数据应包含在单引号中。INSERT INTO `goods` (id, goods_name, price)VALUES(40, vovo 手机, 3000); -- 错误的 vovo 手机 应该 'vovo 手机'-- 5. 列可以插入空值[前提是该字段允许为空],insert into table value(null)INSERT INTO `goods` (id, goods_name, price)VALUES(40, 'vovo 手机', NULL);-- 6. insert into tab_name (列名..) values (),(),() 形式添加多条记录INSERT INTO `goods` (id, goods_name, price)VALUES(50, '三星手机', 2300),(60, '海尔手机', 1800);-- 7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称INSERT INTO `goods`VALUES(70, 'IBM 手机', 5000);-- 8. 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错-- 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null-- 如果我们希望指定某个列的默认值,可以在创建表时指定INSERT INTO `goods` (id, goods_name)VALUES(80, '格力手机');SELECT * FROM goods;INSERT INTO `goods2` (id, goods_name)VALUES(10, '顺平手机');SELECT * FROM goods2;
9.2 Update 语句
- 基本语法

- 案例演示 ```sql — 演示 update 语句 — 要求: 在上面创建的 employee 表中修改表中的纪录 — 1. 将所有员工薪水修改为 5000 元。[如果没有带 where 条件,会修改所有的记录,因此要小心] UPDATE employee SET salary = 5000 — 2. 将姓名为 小妖怪 的员工薪水修改为 3000 元。 UPDATE employee SET salary = 3000 WHERE user_name = ‘小妖怪’ — 3. 将 老妖怪 的薪水在原有基础上增加 1000 元 INSERT INTO employee VALUES(200, ‘老妖怪’, ‘1990-11-11’, ‘2000-11-11 10:10:10’, ‘捶背的’, 5000, ‘给大王捶背’, ‘d:\a.jpg’); UPDATE employee SET salary = salary + 1000 WHERE user_name = ‘老妖怪’
— 可以修改多个列的值 UPDATE employee SET salary = salary + 1000 , job = ‘出主意的’ WHERE user_name = ‘老妖怪’ SELECT * FROM employee;
3. **使用细节**- UPDATE 语法可以用新值更新原有表行中的各列- SET 子句指示要修改哪些列和要给与那些值- WHERE 子句指定应更新哪些行。如果没有 WHERE 子句,则更新所有的行(记录),因此要小心使用- 如果需要修改多个字段,可以通过 set 字段1=值1, 字段2=值2...<a name="szuji"></a>#### 9.3 Delete 语句1. 基本语法2. 案例演示```sql-- delete 语句演示-- 删除表中名称为’老妖怪’的记录。DELETE FROM employeeWHERE user_name = '老妖怪';-- 删除表中所有记录, 老师提醒,一定要小心DELETE FROM employee;-- Delete 语句不能删除某一列的值(可使用 update 设为 null 或者 '')UPDATE employee SET job = '' WHERE user_name = '老妖怪';SELECT * FROM employee-- 要删除这个表DROP TABLE employee;
- 使用细节
- 如果不使用where子句,将删除表中所有数据。
- Delete语句不能删除某一列的值(可使用update设为null或者’’)
- 使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。drop table表名;
9.4 Select 语句 【重要!】
- 基本语法

- 注意事项
- Select 指定查询哪些列的数据。
- colum 指定列名。
- 号代表查询所有列。
- From 指定查询哪张表。
- DISTINCT 可选,指显示结果时,是否去掉重复数据
-- select 语句【重点 难点】CREATE TABLE student(id INT NOT NULL DEFAULT 1,NAME VARCHAR(20) NOT NULL DEFAULT '',chinese FLOAT NOT NULL DEFAULT 0.0,english FLOAT NOT NULL DEFAULT 0.0,math FLOAT NOT NULL DEFAULT 0.0);INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'韩顺平',89,78,90);INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,98,56);INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77);INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',88,98,90);INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',82,84,67);INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳锋',55,85,45);INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,30);INSERT INTO student(id,NAME,chinese,english,math) VALUES(8,'韩信',45,65,99);SELECT * FROM student;-- 查询表中所有学生的信息。SELECT * FROM student;-- 查询表中所有学生的姓名和对应的英语成绩。SELECT `name`,english FROM student;-- 过滤表中重复数据 distinct 。SELECT DISTINCT english FROM student;-- 要查询的记录,每个字段都相同,才会去重SELECT DISTINCT `name`, english FROM student;
- 查询符合指定列条件的数据

在 select 语句中可使用 as 语句

-- select 语句的使用-- 统计每个学生的总分SELECT `name`, (chinese+english+math) FROM student;-- 在所有学生总分加 10 分的情况SELECT `name`, (chinese + english + math + 10) FROM student;-- 使用别名表示学生分数。SELECT `name` AS '名字', (chinese + english + math + 10) AS total_scoreFROM student;-- 求某一列的和SELECT SUM(math) FROM student;
在 where 子句中经常使用的运算符

-- select 语句-- 查询姓名为赵云的学生成绩SELECT * FROM studentWHERE `name` = '赵云';-- 查询英语成绩大于 90 分的同学SELECT * FROM studentWHERE english > 90;-- 查询总分大于 200 分的所有同学SELECT * FROM studentWHERE (chinese + english + math) > 200;-- 查询 math 大于 60 并且(and) id 大于 4 的学生成绩SELECT * FROM studentWHERE math >60 AND id > 4;-- 查询英语成绩大于语文成绩的同学SELECT * FROM studentWHERE english > chinese;-- 查询总分大于 200 分 并且 数学成绩小于语文成绩,的姓赵的学生.-- 赵% 表示 名字以韩开头的就可以SELECT * FROM studentWHERE (chinese + english + math) > 200 ANDmath < chinese AND `name` LIKE '赵%';-- 查询英语分数在 80-90 之间的同学。SELECT * FROM studentWHERE english >= 80 AND english <= 90;SELECT * FROM studentWHERE english BETWEEN 80 AND 90; -- between .. and .. 是 闭区间-- 查询数学分数为 89,90,91 的同学。SELECT * FROM studentWHERE math = 89 OR math = 90 OR math = 91;SELECT * FROM studentWHERE math IN (89, 90, 91);-- 查询所有姓李的学生成绩。SELECT * FROM studentWHERE `name` LIKE '韩%';-- 查询数学分>80,语文分>80 的同学
- 使用order by 子句排序查询结果

- Order by 指定排序的列,排序的列既可以是表中的列名,也可以是 select 语句后指定的列名。
- Asc 升序[默认]、Desc 降序
- ORDER BY 子句应位于 SELECT 语句的结尾。
-- 演示 order by 使用-- 对数学成绩排序后输出【升序】。SELECT * FROM studentORDER BY math;-- 对总分按从高到低的顺序输出 [降序] -- 使用别名排序SELECT `name` , (chinese + english + math) AS total_score FROM studentORDER BY total_score DESC;-- 对姓韩的学生成绩[总分]排序输出(升序) where + order bySELECT `name`, (chinese + english + math) AS total_score FROM studentWHERE `name` LIKE '韩%'ORDER BY total_score;
学习参考(致谢):
- B站 @程序员鱼皮 Java学习一条龙
- B站 @韩顺平 零基础30天学会Java
