MySQL 基础语法

MySQL 基础语法

1.数据库的介绍

2.1 数据库概述

2.1.1 数据的存储方式

Java中创建对象: Student s = new Student(1, “张三”) 存在内存中
学习了Java IO流:把数据保存到文件中。
在这里插入图片描述

2.1.2 什么是数据库

(1)存储数据的仓库
(2)本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
(3)所有的关系型数据库都可以使用通用的SQL语句进行管理 DBMS DataBase Management System
在这里插入图片描述

  • MySQL:开源免费的数据库,小型的数据库,已经被Oracle收购了。MySQL6.x版本也开始收费。后来Sun公司收购了MySQL,而Sun公司又被Oracle收购
  • Oracle:收费的大型数据库,Oracle公司的产品
  • DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中。
  • SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
  • SQLite: 嵌入式的小型数据库,应用在手机端,如:Android。

2 数据库的安装与卸载

2.1 数据库的安装

安装过程分成两个部分:
1)文件解压和复制过程,默认的安装目录:
2)安装好以后必须对MySQL服务器进行配置
在mysql中管理员的名字:root
1.
打开下载的mysql安装文件双击解压缩,运行“mysql-5.5.40-win32.msi”。
在这里插入图片描述
在这里插入图片描述
2.
选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。
在这里插入图片描述
3. 点选“Browse”,手动指定安装目录。
在这里插入图片描述
4. 填上安装目录,我的是“d:\Program Files (x86)\MySQL\MySQL Server 5.0”,按“OK”继续。
在这里插入图片描述
5.
确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.
正在安装中,请稍候,直到出现下面的界面, 则完成MYSQL的安装
在这里插入图片描述
数据库安装好了还需要对数据库进行配置才能使用 MYSQL的配置
7.
安装完成了,出现如下界面将进入mysql配置向导。
在这里插入图片描述
8.
选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。
在这里插入图片描述
9.
选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”
在这里插入图片描述
10.
选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),按“Next”继续。
在这里插入图片描述
在这里插入图片描述
11.
选择网站并发连接数,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”。
在这里插入图片描述
12.
是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),这样MySQL就不会允许细小的语法错误。如果是新手,建议您取消标准模式以减少麻烦。但熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续
在这里插入图片描述
13.
就是对mysql默认数据库语言编码进行设置(重要),一般选UTF-8,按 “Next”继续。
在这里插入图片描述
14.
选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。
在这里插入图片描述
15.
询问是否要修改默认root用户(超级管理)的密码。“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。
在这里插入图片描述
16.
确认设置无误,按“Execute”使设置生效,即完成MYSQL的安装和配置。
在这里插入图片描述
在这里插入图片描述
注意:设置完毕,按“Finish”后有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。
在这里插入图片描述
解决方法:卸载MySQL,重装MySQL

2.2 数据库的卸载

停止window的MySQL服务。 找到“控制面板”-> “管理工具”-> “服务”,停止MySQL后台服务。
在这里插入图片描述
2.
卸载MySQL安装程序。找到“控制面板”-> “程序和功能”,卸载MySQL程序
在这里插入图片描述
3.
删除MySQL安装目录下的所有文件。
4.
删除c盘ProgramDate目录中关于MySQL的目录。路径为:C:\ProgramData\MySQL(是隐藏文件,需要显示出来)
在这里插入图片描述
在这里插入图片描述

3.数据库服务的启动与登录

MySQL服务器启动方式有两种:
1)通过服务的方式自动启动
2)手动启动的方式

3.1 Windows服务方式启动

3.1.1 操作步骤:

在这里插入图片描述
在这里插入图片描述

3.2 DOS命令方式启动

3.2.1 操作步骤:

在这里插入图片描述
在这里插入图片描述

3.3 控制台连接数据库

MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录

3.3.1 登录格式1:u和p后面没有空格

mysql -u用户名 -p密码

在这里插入图片描述
后输入密码方式:
在这里插入图片描述

3.3.2 登录格式2:

mysql -hip地址 -u用户名 -p密码

127.0.0.1 代表本机的IP地址
在这里插入图片描述

3.3.3 登录格式3:

mysql --host=ip地址 --user=用户名 --password=密码

在这里插入图片描述

3.3.4 退出MySQL:

quit或exit

3.4 SQLyog(Navicat)图形化工具——客户端

在这里插入图片描述
在这里插入图片描述

3.5 MySQL目录结构

在这里插入图片描述

3.6 数据库管理系统(DBMS)

3.7 数据库管理系统、数据库和表的关系

数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体User的数据。
数据库管理系统、数据库和表的关系如图所示:
在这里插入图片描述
1)一个数据库服务器包含多个库
2)一个数据库包含多张表
3)一张表包含多条记录

4.SQL的概念

4.1什么是SQL

Structured Query Language 结构化查询语言

4.2 SQL作用

1)是一种所有关系型数据库的查询规范,不同的数据库都支持。
2)通用的数据库操作语言,可以用在不同的数据库中。
3)不同的数据库SQL语句有一些区别
在这里插入图片描述

4.3 SQL语句分类

1)Data Definition Language (DDL数据定义语言) 如:建库,建表
2)Data Manipulation Language(DML数据操纵语言),如:对表中的记录操作增删改
3)Data Query Language(DQL 数据查询语言),如:对表中的查询操作

4)Data Control Language(DCL 数据控制语言),如:对用户权限的设置

4.4 MySQL的语法

1)每条语句以分号结尾,如果在SQLyog中不是必须加的。
2)SQL中不区分大小写,关键字中认为大写和小写是一样的
3)3种注释:
在这里插入图片描述

5. DDL(数据定义语言, 如:建库,建表)操作数据库

5.1 创建数据库

5.1.1 创建数据库的几种方式

创建数据库

CREATE DATABASE 数据库名;

判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

5.1.2 具体操作:

-- 直接创建数据库db1
create database db1;

-- 判断是否存在,如果不存在则创建数据库db2
create database if not exists db2;

-- 创建数据库并指定字符集为gbk
create database db3 default character set gbk;

-- 查看所有的数据库
show databases;

-- 查看某个数据库的定义信息
show create database db3;
show create database db1;

在这里插入图片描述
在这里插入图片描述

5.2 查看数据库

show create database db3;

同上

5.3 修改数据库

修改数据库默认的字符集

ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

alter database db3 default character set utf8;
show create database db3;

在这里插入图片描述

5.4 删除数据库

DROP DATABASE 数据库名;

drop database db2;

在这里插入图片描述

5.5 使用数据库

查看正在使用的数据库

SELECT DATABASE(); 使用的一个mysql中的全局函数

使用/切换数据库

USE 数据库名;

select database();
use db4;

在这里插入图片描述
在这里插入图片描述

6. DDL操作表结构(前提先使用某个数据库)

6.1 创建表

格式:

CREATE TABLE 表名 ( 字段名1 字段类型1,
字段名2 字段类型2
);
use testdb1;

create table user(
id int,
name varchar(20)
);

在这里插入图片描述

6.2 MySQL数据类型

6.2.1 常使用的数据类型如下:

在这里插入图片描述

6.2.2 详细的数据类型如下

在这里插入图片描述

6.2.3 具体操作:

创建student表包含id,name,birthday字段

create table student (
id int, -- 整数
name varchar(20), -- 字符串
birthday date -- 生日,最后没有逗号
);

在这里插入图片描述

6.3 查看表

查看某个数据库中的所有表
SHOW TABLES;
查看表结构
DESC 表名;
查看创建表的SQL语句
SHOW CREATE TABLE 表名;
具体操作:

use testdb1;
show tables;

在这里插入图片描述

desc student;

在这里插入图片描述

show create table student;

在这里插入图片描述

6.4 快速创建一个表结构相同的表

CREATE TABLE 新表名 LIKE 旧表名;

-- 创建一个s1的表与student结构相同
create table s1 like student;
desc s1;

在这里插入图片描述

6.5 删除表

直接删除表

DROP TABLE 表名;

判断表是否存在,如果存在则删除表:(与直接删除的区别
如果表不存在,不删除,存在则删除)

DROP TABLE IF EXISTS 表名;
-- 直接删除表s1表
drop table s1;
-- 判断表是否存在并删除s1表
drop table if exists `create`;

在这里插入图片描述

6.6 修改表结构

6.6.1 添加表列ADD

ALTER TABLE 表名 ADD 列名 类型;

为学生表添加一个新的字段remark,类型为varchar(20)

alter table student add remark varchar(20);
show create table student;

在这里插入图片描述
在这里插入图片描述

6.6.2 修改列类型MODIFY

ALTER TABLE 表名 MODIFY列名 新的类型;

将student表中的remark字段的改成varchar(100)
ALTER TABLE student MODIFY remark VARCHAR ( 100 )

6.6.3 修改列名 CHANGE

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

将student表中的remark字段名改成intro,类型varchar(30)

将student表中的remark字段名改成intro,类型varchar(30)
alter table student change remark intro varchar(30)

在这里插入图片描述

6.6.4 删除列 DROP

ALTER TABLE 表名 DROP 列名;

删除student表中的字段intro
alter table student drop intro;

在这里插入图片描述

6.6.5 修改表名

RENAME TABLE 表名 TO 新表名;

将学生表student改名成student2
rename table student to student2;

在这里插入图片描述

6.6.6 修改字符集character set

ALTER TABLE 表名 character set 字符集;

将student2表的编码修改成gbk
alter table student2 character set gbk;
show create table student2;

在这里插入图片描述

7. DML(数据操纵语言)操作表中的数据(用于对表中的记录进行增删改操作)

7.1 插入记录

INSERT [INTO] 表名 [字段名] VALUES (字段值)

INSERT INTO 表名:表示往哪张表中添加数据
(字段名1, 字段名2, …):要给哪些字段设置值
VALUES (值1, 值2, …):设置具体的值

7.1.1 插入全部字段

所有的字段名都写出来

![在这里插入代码片](https://img-blog.csdnimg.cn/20210306090737775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d5OTljc2Ru,size_16,color_FFFFFF,t_70)

在这里插入图片描述
在这里插入图片描述
不写字段名

INSERT INTO 表名 VALUES (值1, 值2, 值3…);

7.1.2 插入部分数据

INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …);

注:没有添加数据的字段会使用NULL

插入所有的列,向学生表中
insert into student2 (name,birthday,math,english) values ('孙悟天',2000/2/2,59,59);

在这里插入图片描述

向表中插入所有字段

-- 插入所有列(不需要写字段名,就是添加所有字段)
insert into student2 values (3, '孙悟饭',2000/2/2, 80, 90);
select * from student2;

在这里插入图片描述

7.2 更新表记录

UPDATE 表名 SET 列名=值 [WHERE 条件表达式]

UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合条件的记录才更新

你可以同时更新一个或多个字段。
你可以在 WHERE 子句中指定任何条件。

7.2.1 不带条件修改数据

UPDATE 表名 SET 字段名=值; – 修改所有的行

7.2.2 带条件修改数据

UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

7.2.3 具体操作:

-- 不带条件修改数据,将所有的性别改成女
update student2 set math = 60;
show create table student2;
-- 带条件修改数据,将id号为2的学生性别改成男
update student2 set english=100 where id=3;
show create table student2;
-- 

在这里插入图片描述

一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京
update student2 set name='悟空', birthday=2000/1/1 where id=3;

在这里插入图片描述

7.3 删除表结构

DELETE FROM 表名 [WHERE 条件表达式]

如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件

7.3.1 不带条件删除数据

DELETE FROM 表名;

7.3.2 带条件删除数据

DELETE FROM 表名 WHERE 字段名=值;

7.3.3 使用truncate删除表中所有记录

TRUNCATE TABLE 表名;

7.3.4 truncate和delete的区别

truncate相当于删除表的结构,再创建一张表

7.3.5 具体操作:

-- 带条件删除数据,删除id为1的记录
delete from student2 where id=1;
-- 不带条件删除数据,删除表中的所有数据
delete from student2;

8. DQL(数据查询语言)查询表中的数据

查询不会对数据库中的数据进行修改.只是一种显示数据的方式

SELECT 列名 FROM 表名 [WHERE 条件表达式]

1)SELECT 命令可以读取一行或者多行记录。
2)你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
3)你可以使用 WHERE 语句来包含任何条件。

8.1 简单查询

8.1.1 查询表所有行和列的数据

SELECT * FROM 表名;

select * from student;

在这里插入图片描述

8.1.2 查询指定列

查询指定列的数据,多个列之间以逗号分隔

SELECT 字段名1, 字段名2, 字段名3, … FROM 表名;

查询student表中的name 和 age 列

select id,name,math from student2;

在这里插入图片描述

8.2 指定列的别名进行查询(用于多表查询操作)

8.2.1 使用关键字

使用别名的好处: 显示的时候使用新的名字,并不修改表的结构。

8.2.2 语法:

对列指定别名

SELECT 字段名1 AS 别名, 字段名2 AS 别名… FROM 表名;

对列和表同时指定别名

SELECT 字段名1 AS 别名, 字段名2 AS 别名… FROM 表名 AS 表别名;

8.2.3 具体操作:

select name as name2,math as MATH from student2;

在这里插入图片描述

-- 表使用别名
select name as name2,math as MATH from student2 as student;

8.3 清除重复值

8.3.1 查询指定列并且结果不出现重复数据

SELECT DISTINCT 字段名 FROM 表名;

8.3.2 具体操作:

select math from student2;

-- 去掉重复的记录
select distinct math from student2;

在这里插入图片描述
在这里插入图片描述

8.4 查询结果参与运算

注意: 参与运算的必须是数值类型

8.4.1 某列数据和固定值运算

SELECT 列名1 + 固定值 FROM 表名;

8.4.2 某列数据和其他列数据参与运算

SELECT 列名1 + 列名2 FROM 表名;

8.4.3 需求:

准备数据:添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩,查询的时候将数学和英语的成绩相加

select * from student2;
-- 给所有的数学加5分
select math+5 from student2;
-- 查询math + english的和
select * from student2;
select *,(math+english) as 总成绩 from student2;
-- as可以省略
select *,(math+english) 总成绩 from student2;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.5 条件查询

8.5.1 为什么要条件查询

如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤。

8.5.2 条件查询的语法

SELECT 字段名 FROM 表名 WHERE 条件;

流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

准备数据

create table student(
id int,
name varchar(20),
age int,
sex varchar(5),
address varchar(100),
math int,
english int
);
insert into student (id,name,age,sex,address,math,english)values (1,'马云',55,'男','杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港',99,99),(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);

在这里插入图片描述

具体操作:

-- 查询math分数大于80分的学生
select * from student where math>80;

在这里插入图片描述

-- 查询english分数小于或等于80分的学生
select * from student where english<=80;

在这里插入图片描述

-- 查询age不等于20岁的学生,注:不等于有两种写法
select * from student where age!=20;
select * from student where age<>20;

在这里插入图片描述
在这里插入图片描述

8.5.2.1 逻辑运算符

在这里插入图片描述

-- 查询age大于35且性别为男的学生(两个条件同时满足)
select * from student where age>35 and sex='男';

在这里插入图片描述

-- 查询id是1或3或5的学生
select * from student where id=1 or id=3 or id =5;

在这里插入图片描述

8.5.2.2 in关键字

SELECT 字段名 FROM 表名 WHERE 字段 in (数据1, 数据2…);

in里面的每个数据都会作为一次条件,只要满足条件的就会显示

-- 查询id是1或3或5的学生
select * from student where id in(1,3,5);

在这里插入图片描述

-- 查询id不是1或3或5的学生
select * from student where id not in(1,3,5);

在这里插入图片描述

8.5.2.3 范围查询

BETWEEN 值1 AND 值2

表示从值1到值2范围,包头又包尾
比如:age BETWEEN 80 AND 100 相当于: age>=80 && age<=100

查询english成绩大于等于75,且小于等于90的学生

select * from student3 where english between 75 and 90;

在这里插入图片描述

8.5.2.4 like关键字(%: 表示通配 _:表示占位)

LIKE表示模糊查询

SELECT * FROM 表名 WHERE 字段名 LIKE ‘通配符字符串’;

MySQL通配符
在这里插入图片描述

-- 查询姓马的学生
select * from student where name like '马%';
select * from student where name like '马';

在这里插入图片描述
在这里插入图片描述

-- 查询姓马,且姓名有两个字的学生
select * from student where name like '马_';

在这里插入图片描述

9.DCL 数据控制语言

9.1 排序

通过ORDER BY子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)

SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
ASC: 升序,默认值
DESC: 降序

9.1.1 单列排序

只按某一个字段进行排序

9.1.2 实现不同数据库之间表的复制

在这里插入图片描述

9.1.3 组合排序

同时对多个字段进行排序,如果第1个字段相等,则按第2个字段排序,依次类推。

SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];

-- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
select * from student order by age desc,math asc;

在这里插入图片描述

9.2 聚合函数

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值。聚合函数会忽略空值NULL

9.2.1 五个聚合函数

SQL中的聚合函数 作用
max(列名) 求这一列的最大值
min(列名) 求这一列的最小值
avg(列名) 求这一列的平均值
count(列名) 统计这一列有多少条记录
sum(列名) 对这一列求总和

SELECT 聚合函数(列名) FROM 表名;

-- 查询学生总数
select count(id) as 总人数 from student;

select count(*) as 总人数 from student;

在这里插入图片描述
在这里插入图片描述
注意:对于NULL的记录不会统计,统计个数不要使用有可能为null的列,但如果需要把NULL也统计进去呢

IFNULL(列名,默认值)
如果列名不为空,返回这列的值。如果为NULL,则返回默认值。

--利用IFNULL()函数,如果记录为NULL,给个默认值,这样统计的数据就不会遗漏
select count(ifnull(id,0)) from student;

在这里插入图片描述

9.3 分组

分组查询是指使用 GROUP BY语句对查询信息进行分组,相同数据作为一组

SELECT 字段1,字段2… FROM 表名 GROUP BY 分组字段 [HAVING 条件];

将分组字段结果中相同内容作为一组,如按性别将学生分成2组。
在这里插入图片描述
GROUP BY将分组字段结果中相同内容作为一组,并且返回每组的第一条数据,所以单独分组没什么用处。分组的目的就是为了统计,一般分组会跟聚合函数一起使用。

-- 按性别进行分组,求男生和女生数学的平均分
select sex,avg(math) from student group by sex;

在这里插入图片描述
实际上是将每组的math求了平均,返回每组统计的结果
在这里插入图片描述
注意:当我们使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据属于哪组的

查询男女各多少人
1)查询所有数据,按性别分组。
2)统计每组人数

select sex,count(*) from student group by sex;

在这里插入图片描述
查询年龄大于25岁的人,按性别分组,统计每组的人数,并只显示性别人数大于2的数据

select sex,count(*) from student where age>25 group by sex having count(*)>2;

在这里插入图片描述

9.3.1 having与where的区别

在这里插入图片描述

9.4 limit语句

9.4.1 准备数据:

INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES (9,'唐僧',25,'男','长安',87,78), (10,'孙悟空',18,'男','花果山',100,66), (11,'猪八戒',22,'男','高老庄',58,78), (12,'沙僧',50,'男','流沙河',77,88),(13,'白骨精',22,'女','白虎岭',66,66), (14,'蜘蛛精',23,'女','盘丝洞',88,88);

在这里插入图片描述

9.4.2 limit的作用:

LIMIT是限制的意思,所以LIMIT的作用就是限制查询记录的条数。

SELECT *|字段列表 [as 别名] FROM 表名 [WHERE子句] [GROUP BY子句][HAVING子句][ORDER BY子句][LIMIT子句];

9.4.3 LIMIT语法格式:

LIMIT offset,length;

offset:起始行数,从0开始计数,如果省略,默认就是0
length: 返回的行数

-- 查询学生表中数据,从第3条开始显示,显示6条。
select * from student limit 2,6;

在这里插入图片描述

9.4.4 LIMIT的使用场景:

分页:比如我们登录京东,淘宝,返回的商品信息可能有几万条,不是一次全部显示出来。是一页显示固定的条数。 假设我们每页显示5条记录的方式来分页。
在这里插入图片描述

-- 如果第一个参数是0可以省略写:
select * from student3 limit 5;

在这里插入图片描述

-- 最后如果不够5条,有多少显示多少
select * from student limit 10,5;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gy99csdn/article/details/114384137
今日推荐