SQL知识
looksun
这个作者很懒,什么都没留下…
展开
-
SQL往年工资累加查询
nian gz2000 1002001 2002002 3002003 400第一种:select nian, (select sum(gz) from mp b where b.nian第二种:select b.id,sum(a.gz) from mp a,mp b where a.gznian gz转载 2012-05-22 23:01:26 · 4152 阅读 · 0 评论 -
查询排名 sql
结构为user scores1 802 73 994 58..比如我想计算user=4在此表中的排名应该如何做?SELECT COUNT( * ) FROM user_test WHERE scores >= ( SELECT scores FROM user_test WHERE user =4 )转载 2014-03-26 09:55:10 · 2839 阅读 · 0 评论 -
游标 和 锁的概述
--用游标declare @str varchar(100) --定义游标declare DZCursorCURSOR for SELECT test_strFROM testwhere test_str='xxx' --打开游标open DZCursor --从游标取记录fetch next from DZCursor转载 2014-03-26 13:16:12 · 700 阅读 · 0 评论 -
SQL SEVER 表master.dbo.spt_values 的用法
--统计某月份周情况 没有的补0if object_id('temp_tb') is not null drop table temp_tbcreate table temp_tb([ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,[test_values] int NULL,[time] datetime null,转载 2014-03-26 12:05:10 · 2914 阅读 · 0 评论 -
日期转换参数,值得收藏
--日期转换参数,值得收藏select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608select转载 2014-03-26 13:19:13 · 719 阅读 · 0 评论 -
SQL Server索引解析
什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。•转载 2014-07-02 15:47:35 · 673 阅读 · 0 评论 -
关于update set from where
关于update set from where 下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:id,name 1 王 2 李 3 张 表b:id,ClientNam转载 2014-09-12 11:34:20 · 865 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I转载 2014-09-02 10:03:22 · 619 阅读 · 0 评论 -
关于SQL分组取最大值的几中方式
假如我们有这么一张表:如果想要取每个原创 2014-11-16 14:02:44 · 16603 阅读 · 0 评论 -
相关子查询和嵌套子查询
SQLServer子查询可以分为 相关子查询 和 嵌套子查询 两类。前提,假设Books表如下:类编号 图书名 出版社 价格--------------------------------------------------------2 c#高级应用 圣通出版 23.002 Jsp开发应转载 2014-11-16 11:19:50 · 4061 阅读 · 0 评论 -
关于Mysql on duplicate key update简单使用
1。最近在做项目的时候,遇到这样的一个问题,就是我每做完一件事情,都要更新一下统计表,然而要更新统计表,就要根据主键去统计表里面去查询是否已经有这样的一条记录,如果有那么就更新,如果没有那么就插入一条记录,开始我就是这么干的,结果被老大给否决了,他说可以用onduplicate key update去做。下面就实际操作一下吧:表结构:+-----------+---------+-----转载 2015-01-21 13:33:40 · 829 阅读 · 0 评论 -
Mysql索引会失效的几种情况分析
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不是使用的第一部分,则不会使用索引3.like查询是以%开头4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引转载 2016-02-18 20:17:01 · 914 阅读 · 0 评论 -
Mysql 存储引擎中InnoDB与Myisam的主要区别
1, 事务处理innodb 支持事务功能,myisam 不支持。Myisam 的执行速度更快,性能更好。2,select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表转载 2016-03-31 16:57:31 · 347 阅读 · 0 评论 -
mysql导入导出数据方法分享
一、mysql导入文件或数据或执行相关SQLmysql -h主机地址 -u用户名 -p用户密码,文件形式。(shell命令行)mysql -u root -p dbname 直接放在命令行(shell命令行)执行一个sqlmysql -hhostname -uusername -p dbname -e 'select * from tbname li转载 2016-02-25 15:13:07 · 410 阅读 · 0 评论 -
分页存储过程
CREATE PROCEDURE PAGE @tblName VARCHAR(255), -- 表名 @strGetFields VARCHAR(1000)='*', -- 需要返回的列 @fldName VARCHAR(255)='', -- 排序的字段名 @PageSize INT=10, -- 页尺寸 @PageIndex INT=1, -- 页码转载 2014-03-26 09:53:25 · 539 阅读 · 0 评论 -
关于SQL时间类型的模糊查询
今天用time Like '2008-06-01%'语句来查询该天的所有数据,被提示语句错误。查了一下才发现该模糊查询只能用于String类型的字段。自己也查阅了一些资料。关于时间的模糊查询有以下三种方法: 1.Convert转成String,在用Like查询。select * from table1 where convert(varchar,da转载 2014-03-26 09:52:07 · 3049 阅读 · 0 评论 -
T-SQL问题解决集锦——数据加解密
问题一:如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码、卡号,一般不能使用正常数值来存储。否则会有安全隐患。以往的加密解密都有前端应用程序来辅助完成。而数据库一般只能加密不能解密。 从2005开始提供了数据库层面的数据加密与解密。其实现方式主要有以下:1、 利用CONVERT改变编码方式:利用该函数把文字或数据转换成VARBIN转载 2012-11-12 13:25:06 · 847 阅读 · 0 评论 -
SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。运行下面的脚本,建立测试数据库和表值参数。[c-sharp] view plaincopyp转载 2013-04-23 23:28:18 · 742 阅读 · 0 评论 -
如何解决mysql的Table is read only错误
mysql的Table xxxx is read only错误往往是发生在Linux主机上,在网上查了很多资料后终于发现它本质上是个权限问题。要解决它首先要给mysql的数据库目录加上可写权限,即777然后到mysql的Bin目录执行刷新mysqladmin -u -p flush-tables并且保证mysql安装目录的/var/lib/mysql的目录权限设置为700其间转载 2013-05-06 21:19:31 · 989 阅读 · 0 评论 -
不同服务器数据库之间的数据操作
--创建链接服务器exec sp_addlinkedserver 'ITSV ', ' ','SQLOLEDB ', '远程服务器名或ip地址 'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null,'用户名 ','密码 ' --查询示例 select*from ITSV.数据库名.dbo.表名转载 2013-05-09 09:47:38 · 575 阅读 · 0 评论 -
sql over开窗函数
1.使用over子句与rows_number()以及聚合函数进行使用,可以进行编号以及各种操作。而且利用over子句的分组效率比group by子句的效率更高。 2.在订单表(order)中统计中,生成这么每一条记录都包含如下信息:“所有订单的总和”、“每一位客户的所有订单的总和”、”每一单的金额“关键点:使用了sum() over() 这个开窗函数 如图: 代码转载 2013-05-16 10:23:30 · 1240 阅读 · 0 评论 -
关于SQL语句分页,网上也有很多啦,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅。
方法1: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id方法2:适用于 SQL Ser转载 2013-06-27 13:57:41 · 804 阅读 · 0 评论 -
MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());查询上周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(转载 2013-09-09 13:33:50 · 1816 阅读 · 0 评论 -
SQL SERVER使用OpenRowset,、OpenDataSource函数导入、导出数据到Excel 的几种方法(整理)
一、如我在D盘下有D:/物件编码.xls文件,有工作表名Sheet是中文命名为‘办公用品编码’,‘零件编码’。 select * into #temp fromopendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:/物件编码.xls')...[办公用品编码$] select * int转载 2013-09-23 10:18:35 · 2847 阅读 · 0 评论 -
Excel数据导入到SQL 2005
前段时间由于工作需要,设计了一个基于 InfoPath+ SQL的查询系统,设计完成后,突然发现查询系统所需要的原始数据都是存放在 Excel文档,如果将每条记录重新输入到 SQL中,那过程将非常繁琐,通过在网络查询得到二种方法,但过程还是不太方便。现将以下几种方法汇总以下: 一、在程序中,用 ADO.NET。代码如下:双击代码全选1234转载 2013-09-23 10:23:16 · 756 阅读 · 0 评论 -
如果把MySql的root密码忘记了怎么办?怎么取回密码呢?
修改MySQL的登录设置:# vi /etc/my.cnf在[mysqld]的段中加上一句:skip-grant-tables例如:[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockskip-name-resolveskip-grant-tables保存并且退出vi。转载 2013-12-19 12:54:18 · 623 阅读 · 0 评论 -
理解数据库事务隔离级别以及脏读, 不可重复读, 幻读
数据库事务的4个特性:原子性(atomic): 都成功或者都失败;一致性(consistency):事务操作之后,数据库所处的状态和业务规则是一致的;比如a,b账户相互转账之后,总金额不变;隔离性(isolation):操作中的事务不相互影响;持久性(durability):事务提交后被持久化到数据库.脏读,不可重复读, 幻读幻读phantom read:事务1读取记录时事转载 2013-01-17 22:26:40 · 1200 阅读 · 0 评论 -
SQL Server 中 RAISERROR 的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升raiserror 的作用: raiserror 是用于抛出一个错误。[ 以下资料来源于sql server 2005的帮助 ] 其语法如下:RAISERROR ( { msg_id | msg_str | @local_variable }转载 2014-03-24 11:40:10 · 725 阅读 · 0 评论 -
处理百万级以上的数据提高查询速度的方法
1.应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where转载 2014-03-26 09:41:29 · 705 阅读 · 0 评论 -
MYSQL 升序排序但值为0的排最后
如一张表的数据如下:需要根据gz列的值进行升序排序,但值为0的排在最后面,即最终结果如下图:具体 实现方法如下:1.Order BY表达式SELECT nian ,gz from Tbl ORDER BY gz!=0 desc,gz2.算术法SELECT nian ,gz,1/gz as od from Tbl ORDER BY od desc原创 2016-05-18 16:53:18 · 9225 阅读 · 0 评论