没有合适的资源?快使用搜索试试~ 我知道了~
如何查询mysql中执行效率低的sql语句[借鉴].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2021-10-13
03:01:55
上传
评论
收藏 38KB PDF 举报
温馨提示
试读
18页
如何查询mysql中执行效率低的sql语句[借鉴].pdf
资源推荐
资源详情
资源评论
配置 my.cnf/my .ini,增加 --log-slow-queries 配置,记录所有的 slow query ,然后挨个优化
本文来源于 WEB 开发网 原文链接: http://www.cncms.com.cn/mysql/3573.htm
select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from
Teacher Where TeacherID = @TeacherID
create table classname(classname char(50))
insert into classname (classname) values (@a)
if (@b is not null)
begin
insert into classname (classname) values (@b)
if (@c is not null)
begin
insert into classname (classname) values (@c)
if (@d is not null)
begin
insert into classname (classname) values (@d)
if (@e is not null)
begin
insert into classname (classname) values (@e)
end
end
end
end
select * from classname
以上这些 SQL 语句能不能转成一个存储过程?我自己试了下
ALTER PROCEDURE Pr_GetClass
@TeacherID int,
@a char(50),
@b char(50),
@c char(50),
@d char(50),
@e char(50)
as
select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from
Teacher Where TeacherID = @TeacherID
DROP TABLE classname
create table classname(classname char(50))
insert into classname (classname) values (@a)
if (@b is not null)
begin
insert into classname (classname) values (@b)
if (@c is not null)
begin
insert into classname (classname) values (@c)
if (@d is not null)
begin
insert into classname (classname) values (@d)
if (@e is not null)
begin
insert into classname (classname) values (@e)
end
end
end
end
select * from classname
但是这样的话,这个存储过程就有 6 个变量,实际上应该只提供一个变量就可以了
主要的问题就是自己没搞清楚 @a,@b,@C,@d 等是临时变量, 是放在 as 后面重新做一些申
明的,而不是放在开头整个存储过程的变量定义。
(标准化越来越近了 ):namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
实战 SQL 语句收集 (不断更新中 --)
前言:这里将我编程实践中遇到的有价值的 sql 语句一路记下来,一方面方便自己查用,一
方面也夯实下即将遗忘的回忆。 整个过程中我会不断更新, 直到不能再加为止, 同时, 这里
只记录最实用的咚咚,不效仿学院派的那一套。
一、常用 SQL 语句荟萃
1,查询:
1.1,简单查询: select * from table where
1.2,连接查询:
什么是连接查询?顾名释义, 就是查询时涉及多个表的查询。 是以说到连接, 废话一下, 要
知道连接还是关系数据库的主要特点呢。
连接查询分为三种: 外连接 (OUTER JOIN) ,内连接 (INNER JOIN) ,交叉连接 (CROSS JOIN) 。
(标准化越来越近了 ):namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags"
/>1.2.1 ,内连接 (INNER JOIN) 使用比较运算符进行表间某 (些)列数据的比较操作,并列出这
些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、
自然连接和不等连接三种。
1.2.2,外连接分为左外连接 (LEFT OUTER JOIN 或 LEFT JOIN) 、右外连接 (RIGHT OUTER
JOIN 或 RIGHT JOIN) 和全外连接 (FULL OUTER JOIN 或 FULL JOIN) 三种。与内连接不同的
是,外连接不只列出与连接条件相匹配的行, 而是列出左表 (左外连接时 )、右表 (右外连接时 )
或两个表 (全外连接时 )中所有符合搜索条件的数据行。
1.2.3,交叉连接 (CROSS JOIN) 没有 WHERE 子句,它返回连接表中所有数据行的笛卡尔积,
其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查
询条件的数据行数。 连接操作中的 ON (join_condition) 子句指出连接条件, 它由被连接表中
的列和比较运算符、逻辑运算符等构成。
1.2.4,无论哪种连接都不能对 text、ntext 和 image 数据类型列进行直接连接, 但可以对这三
种列进行间接连接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DA TALENGTH(p1.pr_info)=DA TALENGTH(p2.pr_info)
1.2.5,使用 WHERE 子句设置查询条件
WHERE 子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于 20 的数
据:
SELECT *
FROM usertable
WHERE age>20
WHERE 子句可包括各种条件运算符:
比较运算符 (大小比较 ): >、>= 、=、<、<= 、<>、!> 、 !<
范围运算符 (表达式值是否在指定的范围 ):BETWEEN , AND ,
NOT BETWEEN… AND…
列表运算符 (判断表达式是否为列表中的指定项 ):IN ( 项 1,项 2,, )
NOT IN ( 项 1,项 2,, )
模式匹配符 (判断值是否与指定的字符通配格式相符 ):LIKE 、NOT LIKE
空值判断符 (判断表达式是否为空 ):IS NULL 、NOT IS NULL
逻辑运算符 (用于多条件的逻辑连接 ):NOT 、AND、 OR
1、范围运算符例: age BETWEEN 10 AND 30 相当于 age>=10 AND age<=30
2、列表运算符例: country IN ('Germany','China')
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于
char、 varchar、text、ntext、datetime 和 smalldatetime 等类型查询。
可使用以下通配字符:
百分号 %:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即 %% 。
下划线 _:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号 [] :指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^] :其取值也 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以 Publishing 结尾,使用 LIKE '%Publishing'
限制以 A 开头: LIKE '[A]%'
限制以 A 开头外: LIKE '[^A]%'
空值判断符例: WHERE age IS NULL
2,更新: update table
3,插入:
3.1,一般插入:
INSERT INTO publishers
(pub_id, pub_name, city, state)
VALUES
('9001', 'Acme Publishing', 'New Y ork', 'NY')
3.2,插入多行
使用 INSERT 语句可以向表添加多行数据。这些多行数据是从已经存有这些数据的另一个
表中选取的。本例中,向 pubhold 表中添加有关在加利福尼亚和德克萨斯州的出版商的数
据。这些数据可从 publishers 表中获得。
INSERT pubhpold SELECT * FROM publishers
WHERE state = 'CA' OR state = 'TX'
4,删除:
4.1,Delete 语句联合删除:
DELETE FROM uu_SuiteToMinClassroomSect
WHERE min_classroom_sect_id IN
(SELECT min_classroom_sect_id
FROM uu_MinClassroomSect
WHERE min_classroom_id = '112')
二、视图使用细则
1,一个典型的视图
CREATE VIEW View_uuGroupTaxis
AS
SELECT uu_GroupInfo.group_id, uu_GroupInfo.group_name,
uu_GroupType.main_type, uu_GroupType.group_type_name,
uu_GroupInfo.group_icon_url, ISNULL
((SELECT COUNT(*)
FROM uu_GroupUser
WHERE uu_GroupInfo.group_id = uu_GroupUser.group_id), 0)
* 50 + ISNULL(uu_GroupInfo.fundCount, 0) + ISNULL
((SELECT COUNT(*)
FROM Dv_Topic
WHERE Dv_Topic.BoardID = uu_GroupInfo.subforum_id), 0) * 5 + ISNULL
((SELECT COUNT(*)
剩余17页未读,继续阅读
资源评论
cyh76339129
- 粉丝: 1
- 资源: 14万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 记录了贪心,动态规划等算法基本思想与设计.zip
- 基于菲阿里基本模型,以及MACD RSI BooL 等技术指标 构建一套基于贪心算法策略的智能投顾模型.zip
- oj算法代码-贪心算法.zip
- 基于yolov8行人检测源码+模型.zip
- 公开整理-地级市-绿色专利申请、授权数据集(2000-2022年).xlsx
- 基于Transformer模型的图像质量评分模型实现源码+详细说明文档.zip
- CST电磁场仿真+线性螺旋电感+建模步骤细节和RLC端口配置+CST高级建模操作
- 大数据库实验的报告材料材料(word文档良心出品).doc
- AIS2024 valid
- 最入门的爬虫代码 python.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功