SQL 数据库的操作(一)

一.Sqlserver一些基本命令

查询数据库是否存在:

if DB_ID("testDB")is not null;

检查表是否存在:

if OBJECT_ID(“textDB”,“U”) is not null ;其中U代表用户表

创建数据库:

create database+数据名

删除数据库:

drop database 数据库名 --删除数据库的

drop table 表名--删除表的

delete from 表名 where 条件 --删除数据的

查询语句:

use  数据库名称 --修改的数据库

select*from +表名称 --要查询的表

select某某,某某,某某 from 表名称 where 条件 --带条件查询的数据

插入数据:

insert into 表名称  (条件)values (相对应的值)

二. 单表查询

(1)分组--对于分组查询,select字句会有限制,需要查询字段要出现在group by 子句中,同时分组以后,可以对分组情况进行统计。

(2)查询条件不要使用计算列

查询条件带计算列走的是索引扫描,而where子句后面采用查找范围限制,则走的是索引查找。走索引查找的查询性能要高于走索引扫描(数据库不是很大的情况下)

(3)sqlserver中的null,null在数据库中表示不存在

NULL的运算规则:有null的任何运算都是null。

is [not] null: 只能用做条件判断表达式,是否是null?是 条件为true,不是 条件为false。

isnull():函数,如果第一个参数是null,则用第二个参数的值替换第一个参数的值作为函数的返回值。记住:第二个参数的类型必须和第一个兼容。

nullif():函数,如果两个参数值相等、有一个参数是null、或两个参数是null,函数返回值是null;否则返回第一个参数的值。

(4)top用法:意在取出表中满足条件的前多少位。

id可能不连续:select top 10 * from A where ID not in(select top 30 ID from A  order by ID asc) order by ID asc

a.top与percent联合使用,percent表示所占的百分比:select top(20) percent* from A

b.with ties附加属性:with ties一般是和Top , order by相结合使用的,会查询出最后一条数据额外的返回值

SELECT TOP n WITH TIES * FROM A ORDER BY a DESC(如果按照order by 参数排序TOP n返回了前面n个记录,但是n+1…n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,则n+1、…、n+k也返回。n+1、…、n+k就是额外的返回值)

c.over开窗函数

其中over(),括号里面可以附加条件,基于什么进行汇总。不添加,则表示对所有的记录进行汇总。

over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。

over后的写法:    
   over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数
   over(partition by deptno)按照部门分区

   over(partition by deptno order by salary)

三.排名函数

(1)row_number,行号,一般与over联合使用

sql中的over函数和row_numbert()函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序。

(2)rank ,排名,真正意义上的排名,

rank()是跳跃排序,有两个第二名时接下来就是第四名

(3)dense_rank,密集排名

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名

(4)分组ntile。按某一条件进行分组。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值