-- 进阶8:分页查询
/*
应用场景:当要显示得到数据一页显示不全,需要分页提交sql请求
语法:
select 查询列表
from 表
【join type join 表2】
【on 连接条件】
【where 筛选条件】
【group by 分组字段】
【having 分组后筛选条件】
【order by 排序的字段】
limit offset, size;
其中offset是要显示条目的起始索引(起始索引从0开始)
size是每一页的条目个数
如果是显示第page 页,则
limit (page - 1) * size, size;
*/
-- 案例1:查询前五跳员工信息
SELECT *
FROM employees
LIMIT 0, 5;
-- 省略第一条索引:
SELECT *
FROM employees
LIMIT 5;
-- 案例2:查询第11条到第25条
SELECT *
FROM employees
LIMIT 10, 15;
-- 案例3:查询有奖金的员工的员工信息,并且显示工资较高的前十名
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY
salary DESC
LIMIT 10;
-- 进阶9:联合查询
/*
union 联合:将多条查询语句的结果合并成一个结果
语法:
查询语句1
union
查询语句2
union
……
自动去重,如果不想去重,用union all
*/
-- 案例:查询部门编号>90或邮箱包含a的员工信息
SELECT *
FROM employees
WHERE email LIKE '%a%'
UNION
SELECT * FROM employees
WHERE department_id > 90;
-- DML语言
/*
数据操作语言:
插入:insert
修改:update
删除:delete
*/
-- 一、插入语句
/*
语法:
insert into 表名(列名, ...) values(值1, ...);
*/
-- 1. 插入值的类型和列的类型一致或兼容
-- 2. 不可以为NULL的列必须插入值,可以为NULL的列可以都不写,也可以values写NULL
-- 3 insert into 后面不加列名,默认所有列
SELECT *
FROM beauty;
INSERT INTO beauty(id, NAME , sex, borndate, phone, photo, boyfriend_id)
VALUES(13, '李玉婷', '女', ' 1553-4-23', '1242323322', NULL, 2);
-- 语法2:
-- insert into 表名
-- set 列名=值, 列名= 值...
INSERT INTO beauty
SET id=14,NAME='邓棋', phone='999';
SELECT *
FROM beauty;
-- 二、修改语句
/*
1.修改单表的记录
语法:
update 表名
set 列= 新值, 列=新值, ...
where 筛选条件;
2.修改多表的记录【补充】
update 表1 别名
inner/left/right join 表2 别名
on 连接条件
set 列=值, ...
where 筛选条件
*/
-- 修改单表的记录:
-- 案例1. 修改beauty中姓邓的电话为999
UPDATE beauty
SET phone = '999'
WHERE NAME LIKE '邓%';
-- 案例2:修改boys表中id号为2的名称为张飞,魅力值为10
UPDATE boys
SET boyname='张飞', userCP='10'
WHERE id=2;
SELECT * FROM boys;
-- 三、删除语句
/*
方式1:delete(删除整行)
语法:
delete from 表名
where 筛选条件
单表的删除,多表的删除、
方式2:truncate (删除整个表)
语法:truncate table 表名;
*/
-- 方式1:案例1:删除手机号以9结尾的女信息
DELETE FROM beauty
WHERE phone LIKE '%9';
SELECT * FROM beauty;
-- 案例2:多表的删除:用连接
-- DDL语言
-- 一、库的管理
-- 1、库的创建
-- 语法:
-- create database 库名;
-- 案例1:创建库books
CREATE DATABASE IF NOT EXISTS books;
-- 2、库的修改
-- 更改库的字符集
ALTER DATABASE books CHARACTER SET utf8;
-- 3、库的删除
DROP DATABASE IF EXISTS books;
-- 二、表的管理
-- 1、表的创建
/*
create table 表名(
列名 列的类型 (长度) 约束,
列名 列的类型 (长度) 约束,
...
)
*/
-- 案例:创建表book
CREATE TABLE book(
id INT,
bname VARCHAR(20),
price DOUBLE,
authorId INT,
publishDate DATETIME
);
DESC book; -- 查看表格属性
-- 案例:创建表author
CREATE TABLE author(
id INT,
au_name VARCHAR(20),
nation VARCHAR(10)
);
DESC author;
-- 2、表的修改
-- 修改列名
ALTER TABLE book CHANGE COLUMN publishdate pubdate DATETIME;
-- 修改列的类型或约束
ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
-- 添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;
-- 删除列
ALTER TABLE author DROP COLUMN annual;
-- 修改表名
ALTER TABLE author RENAME TO book_author;
DESC book_author;
-- 3. 表的删除
DROP TABLE IF EXISTS book_author;
SHOW TABLES;
-- 4. 表的复制
-- 先插入点东西
INSERT INTO author VALUES
(1, '村上春树', '日本'),
(2, '莫言', '中国'),
(3, '冯唐', '中国');
-- 1. 仅仅复制表的结构
CREATE TABLE copy LIKE author;
SELECT * FROM copy;
-- 2. 复制表的所有信息
CREATE TABLE copy2 SELECT * FROM author;
-- 3. 只复制表的部分数据
CREATE TABLE copy3
SELECT id, au_name
FROM author
WHERE nation='中国';
-- 仅仅复制某些字段又不想要数据:
CREATE TABLE copy4
SELECT id, au_name
FROM author
WHERE 0;
mysql 按照rowid分页 mysql分组分页
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL百万级数据分页查询优化
MySQL优化
字段 分页查询 偏移量