MySQL基础操作


数据库简介

数据库(database)是按照数据结构来组织、存储和管理数据的仓库。

数据库分类
关系型数据库

采用了关系模型来组织数据的数据库,其以行(数据行)和列(数据列)的形式(数据表)存储数据,以便于用户理解。一组二维表及其相互关系构成关系型数据库。

常见的关系型数据库软件
  • Oracle
  • Microsoft SQL Server
  • MySQL
  • SQLite
非关系型数据库

又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NoSQL 最普遍的定义是“非关联型的”,强调 以Key-Value 的方式存储数据。

常见的非关系型数据库软件
  • MongoDB
  • Redis
数据库的优点及作用

数据库就是用来存储和管理数据的,用数据库储存数据有以下优点:

  • 持久化存储
  • 读写速度极高
  • 保证数据的有效性

关系型数据库管理系统

简介

数据库管理系统(Relational Database Management System,简称RDBMS)是为管理关系型数据库而设计的软件系统。如果需要使用关系型数据库,就要安装相应的客户端软件和服务端软件。

  • 关系型数据库服务端软件:主要负责管理不同的数据库,而每个数据库里面会有一系列数据文件,数据文件是用来存储数据的, 其实数据库就是一系列数据文件的集合。
  • 关系型数据库客户端软件:主要负责和关系型数据库服务端软件进行通信, 向服务端传输数据或者从服务端获取数据.
SQL语言

SQL(Structured Query Language),即结构化查询语言,是一种用来操作RDBMS的数据库的语言。也就是说通过 SQL 语言可以操作 Oracle,Microsoft SQL Server,MySQL,SQLite 等关系型的数据库。

SQL的作用是实现数据库客户端软件和数据库服务端软件之间的通信,SQL就是通信的桥梁。

组成
简称全称含义
DQLData Query Language数据查询语言,用于对数据进行查询
DMLData Manipulation Language数据操作语言,对数据进行增加、修改、删除
TPLTransaction Processing Language事务处理语言,对事务进行处理
DCLData Control Language数据控制语言,进行授权与权限回收
DDLData Definition Language数据定义语言,进行数据库、表的管理等

MySQL

简介

MySQL是一个关系型数据库管理系统。

在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件。它由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。

MySQL 是最流行的关系型数据库管理系统中的一个。

特点
  • 开源免费

  • 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

  • 使用标准的SQL数据语言形式。

  • 可以安装在不同的操作系统,并且提供多种编程语言(C、C++、Python、Java、Ruby)的操作接口。

安装

windows:https://dev.mysql.com/downloads/installer/

linux:

sudo apt-get install mysql-server  //服务端
sudo apt-get install mysql-client  //客户端
相关Linux操作
sudo service mysql status //查询服务状态
sudo service mysql stop  //停止服务
sudo service mysql start //启动服务
sudo service mysql restart //重启服务
vim /etc/mysql/mysql.conf.d/mysqld.cnf //编辑配置文件
mysql --help  //帮助
mysql -u [用户名] -p [密码]  //mysql客户端登录
mysql >exit;   //退出mysql

数据类型和数据约束

数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效性,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束。

数据类型

数据类型是指在创建表的时候为表中字段(表头)指定数据类型,只有符合类型要求的数据才能存储起来。

使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

常用的数据类型
  • 整数类型:如int,bit
  • 小数类型:如decimal
  • 字符串:如varchar,char
  • 日期时间: 如date, time, datetime
  • 枚举类型(enum)
1. 整数类型
类型字节大小有符号范围(Signed)无符号范围(Unsigned)
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER4-2147483648 ~21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615
2. 字符串
类型说明使用场景
CHAR固定长度,小型数据身份证号、手机号、电话、密码
VARCHAR可变长度,小型数据姓名、地址、品牌、型号
TEXT可变长度,字符个数大于 4000存储小型文章或者新闻
LONGTEXT可变长度, 极大型文本数据存储极大型文本数据
3. 时间类型
类型字节大小示例
DATE4‘2020-01-01’
TIME3‘12:29:59’
DATETIME8‘2020-01-01 12:29:59’
YEAR1‘2017’
TIMESTAMP4‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-01 00:00:01’ UTC
数据约束

约束是指数据在数据类型限定的基础上额外增加的要求.

常见的约束
标识含义说明
primary key主键物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
not null非空此字段不允许填写空值
unique唯一此字段的值不允许重复
default默认当不填写字段对应的值会使用默认值,如果填写时以填写为准.
foreign key外键对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.

SQL基本操作

  • sql语言关键字不区分大小写
  • sql语句一般以;标志结束
数据库操作
show databases;   #查询所有数据库
create database databaseName charset=utf8;  #创建数据库
use databaseName;  #使用数据库
select database();    #查询当前使用的数据库
drop database databaseName;   #删除数据库
show create database databaseName;  #展示创建库的语句

如:

create database student_info charset=utf8;  #创建student_info数据库
Query OK, 1 row affected, 1 warning (0.01 sec)
show create database student_info;   #展示创建student_info库的语句
+--------------+-------------------------------------------------------------------------------------------------------------+
| Database     | Create Database                                                                                             |
+--------------+-------------------------------------------------------------------------------------------------------------+
| student_info | CREATE DATABASE `student_info` /*!40100 DEFAULT CHARACTER SET utf8mb3 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+--------------+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
1 row in set (0.00 sec)
use student_info;  #使用student_info数据库
Database changed
select database();  #查询当前使用的数据库
+--------------+
| database()   |
+--------------+
| student_info |
+--------------+
1 row in set (0.00 sec)
show databases;  #查询所有数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| student_info       |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)
数据表操作
show tables;   #查询所有数据表

create table tableName(
    colomnName1(字段名/列名) datatype1(数据类型) control1(数据约束),
    colomnName2 datatype1 control2,
    ...
);    #创建表

alter table tableName add colomnName datatype control;   #添加字段(表头)
alter table tableName modify colomnName datatype control;  #修改字段的数据类型/约束
alter table tableName change oldColomnName newColomnName datatype control; #修改字段
alter table tableName drop colomnName;  #删除字段

desc tableName;  #查询表的结构
show create table tableName;  #展示创建表的语句
drop table tableName;  #删除表

如:

create table grade6class1(
    id int unsigned primary key auto_increment not null,  #主键递增非空无符号整数id
    name varchar(10) not null,  #可变非空程度不超过10字符串name
    age tinyint default 12 not null,  #默认值12非空极小整数age
    gender enum("男","女") not null  #枚举非空gender
);    #创建grade6class1表
Query OK, 0 rows affected (0.03 sec)
show tables;   #查询当前库中的所有表
+------------------------+
| Tables_in_student_info |
+------------------------+
| grade6class1           |
+------------------------+
1 row in set (0.00 sec)
show create table grade6class1;   #展示创建表grade6class1的语句
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                                                                                                                                       |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| grade6class1 | CREATE TABLE `grade6class1` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(10) NOT NULL,
  `age` tinyint NOT NULL DEFAULT '12',
  `gender` enum('男','女') NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
desc grade6class1;  #查询表grade6class1的结构
+--------+-----------------+------+-----+---------+----------------+
| Field  | Type            | Null | Key | Default | Extra          |
+--------+-----------------+------+-----+---------+----------------+
| id     | int unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(10)     | NO   |     | NULL    |                |
| age    | tinyint         | NO   |     | 12      |                |
| gender | enum('男','女') | NO   |     | NULL    |                |
+--------+-----------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
alter table grade6class1 add birthday datetime ;  #添加时间类型birthday字段
desc grade6class1;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

+----------+-----------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra          |
+----------+-----------------+------+-----+---------+----------------+
| id       | int unsigned    | NO   | PRI | NULL    | auto_increment |
| name     | varchar(10)     | NO   |     | NULL    |                |
| age      | tinyint         | NO   |     | 12      |                |
| gender   | enum('男','女') | NO   |     | NULL    |                |
| birthday | datetime        | YES  |     | NULL    |                |
+----------+-----------------+------+-----+---------+----------------+
alter table grade6class1 change birthday birth datetime not null;  #改名birth增加not null限制
desc grade6class1;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

+--------+-----------------+------+-----+---------+----------------+
| Field  | Type            | Null | Key | Default | Extra          |
+--------+-----------------+------+-----+---------+----------------+
| id     | int unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(10)     | NO   |     | NULL    |                |
| age    | tinyint         | NO   |     | 12      |                |
| gender | enum('男','女') | NO   |     | NULL    |                |
| birth  | datetime        | NO   |     | NULL    |                |
+--------+-----------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
数据项操作
#插入数据项
-- 1. 全列插入:值的顺序与表的字段的顺序完全一一对应
insert into tableName values (value1,value2,....)
-- 2. 部分列插入:值的顺序与给出的列的顺序对应
insert into tableName (columnName1,columnName2,...) values(value1,value2,...)
-- 3. 全列多行插入
insert into tableName values(value11,value21,...),(value12,value22,...),...;
-- 4. 部分列多行插入
insert into tableName (columnName1,columnName2,...) values(value11,value21,...),(value12,value22,...),...;

#查询数据项
-- 1. 查询所有列
select * from tableName;
-- 2. 查询指定列
select columnName1,columnName2,... from tableName;

#修改数据
update tableName set columnName1=value1,columnName2=value2,... where conditions(条件)

#删除数据项
delete from tableName where conditions;

#逻辑删除
-- 添加删除表示字段,0表示未删除 1表示删除
alter table tableName add deleted bit default 0;
-- 逻辑删除数据
update tableName set deleted = 1 where conditions;

如:

-- 1.全列插入:值的顺序与表的字段的顺序完全一一对应
insert into grade6class1 values (default,"张三",13,"男","2009-01-25");
-- 查询所有列
select * from grade6class1;
Query OK, 1 row affected (0.02 sec)

+----+------+-----+--------+---------------------+
| id | name | age | gender | birth               |
+----+------+-----+--------+---------------------+
|  1 | 张三 |  13 | 男     | 2009-01-25 00:00:00 |
+----+------+-----+--------+---------------------+
1 row in set (0.00 sec)
-- 2. 部分列插入:值的顺序与给出的列的顺序对应
insert into grade6class1 (name,gender,birth) values("李四","男","2010-02-02");
select * from grade6class1;
Query OK, 1 row affected (0.01 sec)

+----+------+-----+--------+---------------------+
| id | name | age | gender | birth               |
+----+------+-----+--------+---------------------+
|  1 | 张三 |  13 | 男     | 2009-01-25 00:00:00 |
|  2 | 李四 |  12 | 男     | 2010-02-02 00:00:00 |
+----+------+-----+--------+---------------------+
2 rows in set (0.00 sec)
-- 3. 全列多行插入
insert into grade6class1 values(default,"王二麻子",12,"男","2010-03-03"),(default,"赵老六",14,"男","2008-04-04");
select * from grade6class1;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  1 | 张三     |  13 | 男     | 2009-01-25 00:00:00 |
|  2 | 李四     |  12 | 男     | 2010-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
+----+----------+-----+--------+---------------------+
-- 4. 部分列多行插入
insert into grade6class1 (name,gender,birth) values("郭靖","男","2010-05-05"),("黄蓉","女","2010-06-06");
select * from grade6class1;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  1 | 张三     |  13 | 男     | 2009-01-25 00:00:00 |
|  2 | 李四     |  12 | 男     | 2010-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
+----+----------+-----+--------+---------------------+
6 rows in set (0.00 sec)
update grade6class1 set age=13,birth="2009-02-02" where name="李四";  #修改李四的age和birth
select * from grade6class1;
Query OK, 1 row affected (0.01 sec)

+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  1 | 张三     |  13 | 男     | 2009-01-25 00:00:00 |
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
+----+----------+-----+--------+---------------------+
6 rows in set (0.00 sec)
delete from grade6class1 where name="张三";   #删除张三
select * from grade6class1;
+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
+----+----------+-----+--------+---------------------+
5 rows in set (0.00 sec)
select name,age,gender from grade6class1;  #查询部分列
+----------+-----+--------+
| name     | age | gender |
+----------+-----+--------+
| 李四     |  13 | 男     |
| 王二麻子 |  12 | 男     |
| 赵老六   |  14 | 男     |
| 郭靖     |  12 | 男     |
| 黄蓉     |  12 | 女     |
+----------+-----+--------+
5 rows in set (0.00 sec)
as

as关键字可用于给字段取别名再显示

select columnName1 as newName1,columnName2 as newName2,... from tableName;

如:

select name as 姓名,age as 年龄,gender as 性别,birth as 出生日期 from grade6class1;
+----------+------+------+---------------------+
| 姓名     | 年龄 | 性别 | 出生日期            |
+----------+------+------+---------------------+
| 李四     |   13 | 男   | 2009-02-02 00:00:00 |
| 王二麻子 |   12 | 男   | 2010-03-03 00:00:00 |
| 赵老六   |   14 | 男   | 2008-04-04 00:00:00 |
| 郭靖     |   12 | 男   | 2010-05-05 00:00:00 |
| 黄蓉     |   12 | 女   | 2010-06-06 00:00:00 |
+----------+------+------+---------------------+
5 rows in set (0.00 sec)
distinct

distinct可以用于去除重复数据后再显示

select distinct columnName1,columnName2,... from tableName;

如:

insert into grade6class1 (name,gender,birth) values("郭靖","男","2010-02-05"),("郭靖","男","2010-03-05");
select * from grade6class1;
select distinct name,age,gender from grade6class1;
Query OK, 2 rows affected (0.01 sec)

+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
|  7 | 郭靖     |  12 | 男     | 2010-02-05 00:00:00 |
|  8 | 郭靖     |  12 | 男     | 2010-03-05 00:00:00 |
+----+----------+-----+--------+---------------------+

+----------+-----+--------+
| name     | age | gender |
+----------+-----+--------+
| 李四     |  13 | 男     |
| 王二麻子 |  12 | 男     |
| 赵老六   |  14 | 男     |
| 郭靖     |  12 | 男     |
| 黄蓉     |  12 | 女     |
+----------+-----+--------+
where

where可以用于筛选和查询符合条件的数据项

select * from tableName where conditions;

conditions支持

比较运算符:
=  >  <  >=  <=  !=  <>(也是不等于)

如:

select * from grade6class1 where age>12;  #年龄>12的
+----+--------+-----+--------+---------------------+
| id | name   | age | gender | birth               |
+----+--------+-----+--------+---------------------+
|  2 | 李四   |  13 | 男     | 2009-02-02 00:00:00 |
|  4 | 赵老六 |  14 | 男     | 2008-04-04 00:00:00 |
+----+--------+-----+--------+---------------------+
2 rows in set (0.00 sec)
逻辑运算符
and or not

如:

select * from grade6class1 where id>3 and age>12;  #id>3且age>12的
+----+--------+-----+--------+---------------------+
| id | name   | age | gender | birth               |
+----+--------+-----+--------+---------------------+
|  4 | 赵老六 |  14 | 男     | 2008-04-04 00:00:00 |
+----+--------+-----+--------+---------------------+
1 row in set (0.00 sec)
select * from grade6class1 where id>3 or age>12;  #id>3或age>12的
+----+--------+-----+--------+---------------------+
| id | name   | age | gender | birth               |
+----+--------+-----+--------+---------------------+
|  2 | 李四   |  13 | 男     | 2009-02-02 00:00:00 |
|  4 | 赵老六 |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖   |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉   |  12 | 女     | 2010-06-06 00:00:00 |
|  7 | 郭靖   |  12 | 男     | 2010-02-05 00:00:00 |
|  8 | 郭靖   |  12 | 男     | 2010-03-05 00:00:00 |
+----+--------+-----+--------+---------------------+
6 rows in set (0.00 sec)
select * from grade6class1 where not name="郭靖";  #name不是"郭靖"的
+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
+----+----------+-----+--------+---------------------+
4 rows in set (0.00 sec)
模糊查询
like "模糊词"
% 代表任意字符
_ 代表任意一个字符

如:

select * from grade6class1 where name like "__";
+----+------+-----+--------+---------------------+
| id | name | age | gender | birth               |
+----+------+-----+--------+---------------------+
|  2 | 李四 |  13 | 男     | 2009-02-02 00:00:00 |
|  5 | 郭靖 |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉 |  12 | 女     | 2010-06-06 00:00:00 |
|  7 | 郭靖 |  12 | 男     | 2010-02-05 00:00:00 |
|  8 | 郭靖 |  12 | 男     | 2010-03-05 00:00:00 |
+----+------+-----+--------+---------------------+
5 rows in set (0.00 sec)
范围查询
between ... and ...
in

如:

select * from grade6class1 where id between 2 and 5;  #id在2到5之间的
select * from grade6class1 where id in (3,5,7);    #id是3,5,7的
+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
+----+----------+-----+--------+---------------------+
4 rows in set (0.00 sec)

+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  7 | 郭靖     |  12 | 男     | 2010-02-05 00:00:00 |
+----+----------+-----+--------+---------------------+
3 rows in set (0.00 sec)
是否为空
is null
is not null
升降序排序查询
select * from tableName order by columnName1 asc|desc [, columnName2 asc|desc,...]
  • asc,即ascending,升序
  • desc,即descending,降序
  • 如果columnName1数据相同,再继续根据columnName2排序

如:

select * from grade6class1 order by birth asc; #按birth升序排序
+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  4 | 赵老六   |  14 | 男     | 2008-04-04 00:00:00 |
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  7 | 郭靖     |  12 | 男     | 2010-02-05 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
|  8 | 郭靖     |  12 | 男     | 2010-03-05 00:00:00 |
|  5 | 郭靖     |  12 | 男     | 2010-05-05 00:00:00 |
|  6 | 黄蓉     |  12 | 女     | 2010-06-06 00:00:00 |
+----+----------+-----+--------+---------------------+
分页查询
select * from tableName limit start_index,count_num
  • start_index是开始行的索引。从0开始计数
  • count_num是要查询的数据个数

这样我们就能每n个数据一查询,实现逻辑上的分页

select * from grade6class1 limit 0,2;
select * from grade6class1 limit 2,2;
select * from grade6class1 limit 4,2;
select * from grade6class1 limit 6,2;

#4页,每页2行
+----+----------+-----+--------+---------------------+
| id | name     | age | gender | birth               |
+----+----------+-----+--------+---------------------+
|  2 | 李四     |  13 | 男     | 2009-02-02 00:00:00 |
|  3 | 王二麻子 |  12 | 男     | 2010-03-03 00:00:00 |
+----+----------+-----+--------+---------------------+
2 rows in set (0.00 sec)

+----+--------+-----+--------+---------------------+
| id | name   | age | gender | birth               |
+----+--------+-----+--------+---------------------+
|  4 | 赵老六 |  14 | 男     | 2008-04-04 00:00:00 |
|  5 | 郭靖   |  12 | 男     | 2010-05-05 00:00:00 |
+----+--------+-----+--------+---------------------+
2 rows in set (0.00 sec)

+----+------+-----+--------+---------------------+
| id | name | age | gender | birth               |
+----+------+-----+--------+---------------------+
|  6 | 黄蓉 |  12 | 女     | 2010-06-06 00:00:00 |
|  7 | 郭靖 |  12 | 男     | 2010-02-05 00:00:00 |
+----+------+-----+--------+---------------------+
2 rows in set (0.00 sec)

+----+------+-----+--------+---------------------+
| id | name | age | gender | birth               |
+----+------+-----+--------+---------------------+
|  8 | 郭靖 |  12 | 男     | 2010-03-05 00:00:00 |
+----+------+-----+--------+---------------------+
1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木子希卡利

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

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

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

打赏作者

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

抵扣说明:

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

余额充值