SQL
小小的花园里面挖挖挖
种小小的种子开小小的花~
展开
-
mycli 安装之后报错(cannot import name ‘convert_mysql_timestamp‘),解决方法
今天使用到mysql数据库,又用到了老朋友mycli。但是使用pip下载之后运行就会报错,cannot import name ‘convert_mysql_timestamp’。发现是,默认安装的pymsql的版本太高了。安装pip install pymysql==0.9.2原创 2021-08-09 11:31:22 · 637 阅读 · 0 评论 -
查询来自不通地点的学生平均成绩,只显示平均成绩大于等于80的地区
select 住址,avg(入学成绩) as 平均入学成绩 from 学生表 group by 住址 having avg(入学成绩) >=80 --方法一select * from (select 住址,avg(入学成绩) as '入学平均成绩' from 学生表 group by 住址) as t where 入学平均成绩 >=80这个应该以后能看懂,就不多写解释了原创 2015-12-25 23:06:13 · 927 阅读 · 0 评论 -
利用Sql语句重命名数据库名称
sp_renamedb ShiJiYuan,Zaine原创 2015-12-25 17:39:39 · 6709 阅读 · 0 评论 -
Sql语句备份恢复数据库
backup database databaseName to disk ='D:\test.bak' --备份数据库restore database databaseName from disk ='D:\test.bak' --恢复数据库原创 2015-12-25 08:40:58 · 356 阅读 · 0 评论 -
sqlserver中All、Any和Some用法与区别
SQLServer中有三个关键字可以修改比较运算符:All、Any和Some,其中Some和Any等价。 他们作用于比较运算符和子查询之间,作用类似Exists、not exists、in、not in以及其他逻辑意义,这些语法同样被SQLServer2000支持但是很少看到有人用它们。 官方参考文:http://technet.microsoft.com/zh-cn/li转载 2016-01-08 22:07:58 · 713 阅读 · 0 评论 -
SqlServer创建加密视
create view view_operator2 with encryptionasselect a.*,b.depname from operator a left join Dep b on a.depid=b.depid原创 2015-12-24 11:08:17 · 376 阅读 · 0 评论 -
sql trim()函数去掉两头空格
1.sql trim()函数去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格。合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrName)) 2.distinct 选择多列,其中一列不能重复,其他列取最大值。GoodName GoodVersion 物品一 1.0转载 2016-01-07 14:33:44 · 1942 阅读 · 0 评论 -
将长度大于30的spot_intr字段, 显示为下面样式“XXXXX......”
select spot_name,case when len(spot_intr)>30 then substring(spot_intr,0,30)+'......' else spot_intr end from travelspot原创 2015-12-22 22:32:20 · 376 阅读 · 0 评论 -
SQL HAVING 子句
HAVING 子句在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。SQL HAVING 语法SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVI转载 2015-12-22 21:57:56 · 318 阅读 · 0 评论 -
SQL中distinct的用法
1.作用于单列2.作用于多列3.COUNT统计4.distinct必须放在开头5.其他在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表A:表B:1.作用于单列select distinct name from A执行后结果如下:转载 2015-12-22 21:54:37 · 4561 阅读 · 0 评论 -
SQL Server 游标
• 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。• 可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。• 游标的组成• 游标结果集• 定义该游标获取到的SELECT语句返回的行的集合原创 2016-01-06 19:26:00 · 458 阅读 · 0 评论 -
SQL Server 自定义函数
标量值函数如果RETUR NS 子句指定一种标量数据类型,则函数为标量值函数如果RETURNS 子句指定 TABLE,则函数为表值函数如果RETURNS 子句指定的TABLE 不附带列,则该函数为内嵌表值函数如果RETURNS 子句指定的TABLE 类型带有列及其数据类型,则该函数是多语句表值函数标量值函数返回的结果只是一个标量,返回的结果就是一种类型的一个值原创 2016-01-06 15:45:47 · 3198 阅读 · 0 评论 -
SQL Server 中关于EXCEPT和INTERSECT的用法
熟练使用SQL Server中的各种用法会给查询带来很多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本支持。EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。INTERSECT是指在两个集合中都存在的数据。测试如下:[c-sharp] view plaincopy转载 2015-12-22 09:09:08 · 651 阅读 · 0 评论 -
触发器的整理:包括Instead of和After
•触发器有两个特殊的表:–插入表(instered表)–删除表(deleted表)–这两张是逻辑虚表,不会存储在数据库中。且两张表都是只读的。这两张表的结构是与被触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。–Inserted表的数据是插入或是修改后的数据,–deleted表的数据是更新前的或是删除的数据。•查看数据库中的所有触发器原创 2016-01-05 21:43:37 · 690 阅读 · 0 评论 -
启动触发器,关闭触发器
--禁用触发器disable trigger tri_input_update on input;--启用触发器enable trigger tri_input_update on input;原创 2016-01-05 21:34:12 · 1729 阅读 · 0 评论 -
Sql:Insert插入数据集
insert accountBack select *,getdate() from account原创 2016-01-05 17:00:56 · 546 阅读 · 0 评论 -
SqlServer级联删除两种实现方法:触发器,外键
--触发器create trigger [dbo].[tri_account] on [dbo].[account]for deleteasdelete accountBack where account in (select account from deleted)--外键 一、选择"关系" 二、更改"INSERT和UPDATE规转载 2016-01-05 16:10:18 · 4381 阅读 · 0 评论 -
SQL Server CONVERT() 函数
定义和用法CONVERT() 函数是把日期转换为新数据类型的通用函数。CONVERT() 函数可以用不同的格式显示日期/时间数据。语法CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的原创 2015-12-02 23:12:58 · 406 阅读 · 0 评论 -
SQL:GETDATE() 获取当前时间
select GETDATE()原创 2015-12-26 23:56:17 · 1402 阅读 · 0 评论 -
SQL:DISTINCT 去除重复
1.作用于单列2.作用于多列3.COUNT统计4.distinct必须放在开头5.其他在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表A:表B:1.作用于单列select distinct name from A执行后结果如下:原创 2015-12-26 23:53:13 · 98722 阅读 · 0 评论 -
SQL:DATAADD() 日期中添加或减去指定的时间间隔
定义和用法DATEADD() 函数在日期中添加或减去指定的时间间隔。语法DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是下列的值:datepart缩写年转载 2015-12-26 23:58:54 · 2000 阅读 · 0 评论 -
Sql C# 字符串发转
--Sqlselect REVERSE(1234567)//C#string s = "123456789a";char [] arr = s.ToCharArray(); // 转为字符数组Array.Reverse( arr ); // 将数组反转string s2 = new String( arr );原创 2016-03-21 17:13:17 · 399 阅读 · 0 评论 -
SQL语句统计每天、每月、每年的 数据
1、每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime)2、每月select year(ordertime) 年,month(ordertime) 月,sum(Total) 销售合计from 订单表group by year(ordertime),mont转载 2016-02-22 23:27:33 · 2294 阅读 · 0 评论 -
成绩录入SQL语句 笛卡尔积 LEFT JOIN
select * from (select * from Student s,Course c ,(select distinct Year from Score) as y,(select distinct Term from Score) as term ) as dt left join Score s on dt.Studentid = s.Studentid and dt.Year =原创 2016-03-19 14:46:47 · 1779 阅读 · 0 评论 -
Sql Server 删除重复记录,只保留一条
delete users where ids not in (select min(ids) from users group by userid,username having(count(*)>1 or count(*) =1))解释:首先查询出来count(*)>1的数据,也就是重复数据,跟单条数据的IDS,删除的时候就不包含他们了,所以是not in, 因为保留一条重复数原创 2015-12-25 23:01:13 · 4646 阅读 · 0 评论 -
计算两个时间差
//C# DateTime dt1 = DateTime.Now; DateTime dt2 = DateTime.Parse("2015-12-1"); TimeSpan ts = dt1.Subtract(dt2);SELECTDATEDIFF( Day, '2009-8-25 12:15:12','2009-9-1 7:18:2转载 2016-03-02 17:12:22 · 470 阅读 · 0 评论 -
SET NOCOUNT
SET NOCOUNT ON:当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数).当 SET NOCOUNT 为 OFF 时,返回计数.如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能.转载 2016-01-31 10:29:15 · 234 阅读 · 0 评论 -
SET IDENTITY_INSERT
想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT示例:1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))2.尝试在表中做以下操作:INSERT INTO products (id,转载 2016-01-31 10:24:24 · 417 阅读 · 0 评论 -
Sql goto
declare @x int set @x = 1loving:print @xselect @x = @x+1while @x<= 3goto loving原创 2016-01-29 16:24:51 · 818 阅读 · 0 评论 -
Sql暂停语句
--延迟几秒waitfor delay '00:00:05'print '下课了!'--到几点运行waitfor time '00:00:05'print '下课了!'原创 2016-01-29 16:21:25 · 1406 阅读 · 0 评论 -
交集,减集,并集
--交集:两个条件同时符合--Intersect 相同部分select 学号,姓名 from 学生 where 年龄 > 18intersectselect 学号,姓名 from 学生 where 姓名 like '张%'--并集:符合其中一个就可以--不去重复select 学号,姓名 from 学生 where 年龄 > 18 union allselect 学号,姓名 fro原创 2016-01-29 10:04:30 · 1128 阅读 · 0 评论 -
时间函数
--日期相加select DATEADD(day,3,getdate())--日期差select DATEDIFF(day,1999-01-25,GETDATE())--获得日期中的年月日select DATENAME(MONTH,getdate())--返回日期中的整数select DATEPART(WEEKDAY,GETDATE())--绝对值select abs(-5)原创 2016-01-29 09:57:32 · 364 阅读 · 0 评论 -
SQL 操作结果集 -并集、差集、交集、结果集排序
操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。 1、限定条件 要是用Union来连接结果集,转载 2016-01-29 09:45:56 · 382 阅读 · 0 评论 -
Sql查询片段
--查询片段with tabs as(select ROW_NUMBER() over (partition by 学号 order by 成绩 desc) as 数目,学号,课程号,成绩 from 成绩) select max(数目) as '选课数目',学号 from tabs group by 学号原创 2016-01-29 08:50:10 · 529 阅读 · 0 评论 -
RANK()排名
--排名:名次跳空select 学号,成绩,RANK() over(order by 成绩 desc ) from 成绩--排名:名次连续select 学号,成绩,DENSE_RANK() over(order by 成绩 desc ) from 成绩原创 2016-01-29 08:49:32 · 517 阅读 · 0 评论 -
SQL Server中row_number的用法
ROW_NUMBER()说明:返回结果集分区内行的序列号,每个分区的第一行从1开始。语法:ROW_NUMBER () OVER ([ ] ) 。备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。参数: :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。 :确定将 ROW_NUMBER 值分配给转载 2016-01-29 08:34:01 · 1020 阅读 · 0 评论 -
四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。顺序结构和链接结构适用在内存结构中。索引结构和散列结构适用在外存与内存交互结构。顺序存储:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。特点:1、随机存取表中元素。2、插入和删除操作需要移动元素。链接存储原创 2016-01-11 23:16:29 · 3116 阅读 · 2 评论 -
SqlServer触发器:同时删除多条数据,备份多条数据
ALTER trigger tri_account on accountfor deleteasinsert into accountBack select *,getdate() from deleted原创 2016-01-05 16:17:28 · 1952 阅读 · 0 评论 -
Sql语句:case when
select *, (case sex when '1' then '男' when '2' then '女' else '其他' end) as '性别' from ShiJiYuan原创 2015-12-02 23:02:06 · 287 阅读 · 0 评论 -
Sql语句备份数据库
BACKUP DATABASE TEST TO DISK = 'C:\test.bak'原创 2015-11-20 11:25:35 · 427 阅读 · 0 评论