mysql 李玉婷网课配套笔记(五) 分页查询,库和表的管理

-- 进阶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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值