SQL笔记 [长期更新] (-2013.7) --tableA -- CREATE TABLE TABLEA( --Column1 VARCHAR (20), --Column2 VARCHAR (20), --Column3 VARCHAR (20), --Column4 int , --Column5 VARCHAR (20), --Column6 DATETIME --) /* --ROW_NUMBER() OVER(), case when 的用
SQL笔记 [长期更新] (-2013.7)
--tableA
--CREATE TABLE TABLEA(
--Column1 VARCHAR(20),
--Column2 VARCHAR(20),
--Column3 VARCHAR(20),
--Column4 int,
--Column5 VARCHAR(20),
--Column6 DATETIME
--)
/*
--ROW_NUMBER() OVER(), case when 的用法:
select ROW_NUMBER() OVER(Order by a.Column1,a.Column2) AS rowid
,CASE WHEN a.Column3 IS NOT NULL THEN(
CASE WHEN a.Column3='1' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'I'
WHEN a.Column3='2' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'II'
WHEN a.Column3='3' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'III'
WHEN a.Column3='4' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'IV'
WHEN a.Column3='5' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'V'
WHEN a.Column3='6' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'VI'
WHEN a.Column3='7' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'VII'
WHEN a.Column3='8' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'VIII'
WHEN a.Column3='9' AND a.Column4 IS NOT NULL AND a.Column4 > 0 THEN 'IX'
ELSE '' END -- +'('+CONVERT(VARCHAR(20),a.Column4)+')'
)ELSE '' END AS 类型编号
,
from TABLEA a
*/
/*
--本月第一天
SELECT CAST(CONVERT(VARCHAR(20), DATEADD(MONTH,-1, DATEADD(DAY,1-DATEPART(DAY,GETDATE()),DATEADD(MONTH, 1,GETDATE()))) ,112) AS DATETIME)
--本月最后一天
SELECT CAST(CONVERT(VARCHAR(20),DATEADD(DAY,-DATEPART(DAY,GETDATE()),DATEADD(MONTH, 1,GETDATE())) ,112) AS DATETIME)
--下个月第一天
SELECT CAST(CONVERT(VARCHAR(20), DATEADD(DAY,1-DATEPART(DAY,GETDATE()),DATEADD(MONTH, 1,GETDATE())) ,112) AS DATETIME)
*/
/* --复杂存储过程的使用示例:
create proc [SP_复杂存储过程的使用B] (
@ID1 VARCHAR(400)=''
,@ID2 VARCHAR (400)='sdf7fgef-f4b0-4sfe-8ecb-cbgefb0fcfgh' --''
,@RESULT VARCHAR(100) output
)
as
BEGIN
DECLARE @行号 INT =1
DECLARE @RESULT_temp VARCHAR(100)=''
SET @RESULT=''
WHILE (@行号
BEGIN
SET @RESULT_temp=''
EXEC SP_复杂存储过程的使用A @编号1=@ID1,@编号2=@ID2,@第几个类型=@行号,@RESULT=@RESULT_temp OUTPUT
IF @RESULT_temp IS NOT NULL AND @RESULT_temp ''
BEGIN
IF @RESULT='' --@行号=1
BEGIN
SET @RESULT=@RESULT_temp
END
ELSE
BEGIN
SET @RESULT+=','+@RESULT_temp
END
END
SET @行号+=1
END
END
*/
/* --以下是一个比较长的SQL语句,直到末尾结束(其中涉及到一些不常见的sql写法,值得收藏)
DECLARE @ID号 VARCHAR(50)='JXsfge' --放入报表文件的时候,香港虚拟主机,此行注释,服务器空间,即将@ID号当参数即可
DECLARE @i VARCHAR(400) =1
DECLARE @参数类型1 VARCHAR(20)='某某1'
DECLARE @参数类型2 VARCHAR(20)='某某2'
DECLARE @参数类型3 VARCHAR(20)='某某3'
DECLARE @参数类型11 VARCHAR(20)='某某11'
DECLARE @参数类型22 VARCHAR(20)='某某22'
DECLARE @参数类型33 VARCHAR(20)='某某33'
DECLARE @编号C VARCHAR(20)=''
DECLARE @CNAME VARCHAR(20)=@ID号
DECLARE @专业temp VARCHAR(400)
=''
DECLARE @序号 INT =''
DECLARE @ROWS VARCHAR(400) =''
EXEC SP_复杂存储过程的使用C @某编号=@ID号,@ROWS1=@ROWS OUTPUT --可以得到输出的"行数"信息
--声明临时表@t_TableA、@t_TableX
declare @t_TableA table(j VARCHAR(10),标记 VARCHAR(50),专业 VARCHAR(50),序号 VARCHAR(10),某号A VARCHAR(50),CISLATEST VARCHAR(50))
declare @t_TableX table(j VARCHAR(10),标记 VARCHAR(50),专业 VARCHAR(50),序号 VARCHAR(10),某号A VARCHAR(50),某号名称 VARCHAR(50),
备注 VARCHAR(50),英文名称 VARCHAR(500))
--开始循环
WHILE (CONVERT(int,@i))=(CONVERT(int,@ROWS))--@i=@ROWS
BEGIN
PRINT @i
INSERT INTO @t_TableA (j,标记,专业,序号,某号A,CISLATEST)(
SELECT TOP 1 * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY TABLEB.专业 DESC,TABLEB.某号A ASC) AS j ,
CASE WHEN TABLEB.专业 ='计算机' THEN 'COM'
WHEN TABLEB.专业 ='英语' THEN 'EN'
WHEN TABLEB.专业 ='电子商务' THEN 'EM'
WHEN TABLEB.专业 ='国际贸易' THEN 'ITRADE'
WHEN TABLEB.专业 ='统计分析' THEN 'M'
WHEN TABLEB.专业 ='城市建设' THEN 'C'
WHEN TABLEB.专业 ='系统维护' THEN 'SYS'
ELSE '' END AS 专业,
'1' AS 序号,TABLEB.IDA AS 某号A,TABLEB.CISLATEST
FROM TABLEB
WHERE TABLEB.某号A = @ID号 AND TABLEB.CISLATEST='1'
) AS m1 WHERE m1.j=(CONVERT(int,@i))
)
--调用方式,@时间 为返回值
SET @某号A=(SELECT TOP 1 某号A FROM @t_TableA WHERE j=(CONVERT(int,@i)))
PRINT @某号A
IF(@专业temp =(SELECT TOP 1 专业 FROM @t_TableA WHERE j=(CONVERT(int,@i))))
BEGIN
SET @序号+=1
END
ELSE
BEGIN
SET @序号=1
SET @专业temp=(SELECT TOP 1 专业 FROM @t_TableA WHERE j=(CONVERT(int,@i)))
END
SET @参数类型1=''
SET @参数类型2=''
SET @参数类型3=''
SET @参数类型11=''
SET @参数类型22=''
SET @参数类型33=''
EXEC SP_复杂存储过程的使用B @类型=@参数类型1,@CNAME=@CNAME,@时间=@参数类型11 OUTPUT,@某编号=''
EXEC SP_复杂存储过程的使用B @类型=@参数类型2,@CNAME=@CNAME,@时间=@参数类型22 OUTPUT,@某编号=''
EXEC SP_复杂存储过程的使用B @类型=@参数类型3,@CNAME=@CNAME,@时间=@参数类型33 OUTPUT,@某编号=@编号C OUTPUT --可以同时输出多个结果
DELETE FROM @t_TableA --清空临时表
PRINT '参数类型11 :'+@参数类型11+' 参数类型22:'+@参数类型22+' 参数类型33:'+@参数类型33
--直接全部显示
BEGIN
INSERT INTO @t_TableX (j,标记,专业,序号,某号A ,某号名称,备注)(
SELECT TOP 1 * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY TABLEB.专业 DESC,TABLEB.某号A ASC) AS j ,
CASE WHEN TABLEB.专业 ='计算机' THEN 'COM'
WHEN TABLEB.专业 ='英语' THEN 'EN'
WHEN TABLEB.专业 ='电子商务' THEN 'EM'
WHEN TABLEB.专业 ='国际贸易' THEN 'ITRADE'
WHEN TABLEB.专业 ='统计分析' THEN 'M'
WHEN TABLEB.专业 ='城市建设' THEN 'C'
WHEN TABLEB.专业 ='系统维护' THEN 'SYS'
ELSE '' END AS 专业,
'1' AS 序号,TABLEB.IDA AS 某号A,TABLEB.CISLATEST,
@参数类型11+@参数类型22+@参数类型33
FROM TABLEB
WHERE 序号= @ID号 AND TABLEB.CISLATEST='1'
) AS m1 WHERE m1.j=(CONVERT(int,@i))
)
END
SET @i+=1
END
SELECT j,标记,专业,序号,某号A ,某号名称,备注 FROM @t_TableX
*/
下载地址:
posted on
,香港虚拟主机
在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

MySQL异步主从复制通过binlog实现数据同步,提升读性能和高可用性。1)主服务器记录变更到binlog;2)从服务器通过I/O线程读取binlog;3)从服务器的SQL线程应用binlog同步数据。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

MySQL的安装和基本操作包括:1.下载并安装MySQL,设置根用户密码;2.使用SQL命令创建数据库和表,如CREATEDATABASE和CREATETABLE;3.执行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.创建索引和存储过程以优化性能和实现复杂逻辑。通过这些步骤,你可以从零开始构建和管理MySQL数据库。

InnoDBBufferPool通过将数据和索引页加载到内存中来提升MySQL数据库的性能。1)数据页加载到BufferPool中,减少磁盘I/O。2)脏页被标记并定期刷新到磁盘。3)LRU算法管理数据页淘汰。4)预读机制提前加载可能需要的数据页。

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。