随笔分类 - 数据库
摘要:SQL 左外连接,右外连接,全连接,内连接 连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行。 连接可分为以下几类:内连接。(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。包括相等连接和自然连接。 内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。外连接。外连接可以是左向外连接、右向外连接或完整外部连接。 在FROM子句中指定外连接时,可以由下列几组关键字中的一组指定:...
阅读全文
摘要:/**********创建省级表**********/CREATE TABLE T_Province(ProID INT IDENTITY(1,1) PRIMARY KEY, --省份主键ProName NVARCHAR(50) NOT NULL, --省份名称ProSort INT, --省份排序ProRemark NVARCHAR(50) --说明 )Goinsert T_Province(ProName,ProSort,ProRemark) Values('北京市','1','直辖市')insert T_Province(ProName,P
阅读全文
摘要:一、基础 1、说明:创建数据库 CREATEDATABASEdatabase-name 2、说明:删除数据库 dropdatabasedbname 3、说明:备份sqlserver ---创建备份数据的device USEmaster EXECsp_addumpdevice'disk','testBack','c:\mssql7backup\MyNwind_1.dat'---开始备份 BACKUPDATABASEpubsTOtestBack 4、说明:创建新表 createtabletabname(col1type1[notnull][prima
阅读全文
摘要:分页方法: SQL法、储过程法、游标法。 游标耗资、效率低; 存储过程不错,因为存储过程是经过预编译的效率高、灵活。 这里介绍SQL分页法(这里用的sqlserver2000 ,其它数据库原理相同): 方法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 Server 2000/2005 SELECT TOP 页大小 * FROM tabl...
阅读全文
摘要:create PROCEDURE Sp_Conn_Sort(@tblName varchar(255), -- 表名@strGetFields varchar(1000) = '*', -- 需要返回的列@fldName varchar(255)='', -- 排序的字段名@PageSize int = 40, -- 页尺寸@PageIndex int = 1, -- 页码@doCount bit = 0, -- 返回记录总数, 非 0 值则返回@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序@strWhere varchar(15
阅读全文
摘要:1.说明:复制表(只复制结构,源表名:a新表名:b) SQL:select*intobfromawhere11 2.说明:拷贝表(拷贝数据,源表名:a目标表名:b) SQL:insertintob(a,b,c)selectd,e,ffroma; 3.说明:显示文章、提交人和最后回复时间 SQL:selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b 4.说明:外连接查询(表名1:a表名2:b) SQL:selecta.a,a.b,a.c,
阅读全文
摘要:开始事务:begin transaction提交事务:commit transaction回滚事务:rollback transaction例子:begin transactiondeclare @errorSum int --定义局部变量set @errorSum=0 --初始化临时变量update bank set currentMoney=currentMoney-1000 where customerName='张三'set @errorSum=@errorSum+@@error --累计是否有错误update bank set currentMoney=current
阅读全文
摘要:SQL Server函数大全--聚合函数use pubsgoselect avg(distinct price) --算平均数from titleswhere type='business'use pubsgoselect max(ytd_sales) --最大数from titlesuse pubsgoselect min(ytd_sales) --最小数from titlesuse pubsgoselect type,sum(price),sum(advance) --求和from titlesgroup by type order by typeuse pubsgosel
阅读全文
摘要:概述 和其他高级语言一样,T-SQL中也有用于控制流程的语句。T-SQL中的流程控制语句进一步扩展了T-SQL的力量……使得大部分业务逻辑可以在数据库层面进行。但很多人对T-SQL中的流程控制语句并没有系统的了解,本篇文章会系统的对T-SQL语句中的流程控制语句进行系统讲解。基本概念 在没有流程控制语句的情况下,T-SQL语句是按照从上到下的顺序逐个执行: 使用流程控制语句可以让开发人员可以基于某些逻辑进行选择性的跳转,实现了类似高级语言的跳转结构: 流程控制语句的使用范围和GO关键字 流程控制语句只能在单个批处理段(Batch),用户自定义函数和存储过程中使用。不能跨多个批处理段或者用户自.
阅读全文
摘要:触发器实际上就是一种特殊类型的存储过程,其特殊性表现在:它是在执行某些特定的T-SQL语句时自动的。11.1 触发器简介触发器实际上就是一种特殊类型的存储过程,它是在执行某些特定的T-SQL语句时自动执行的一种存储过程。在SQL Server 2005中,根据SQL语句的不同,把触发器分为两类:一类是DML触发器,一类是DLL触发器。11.1.1 触发器的概念和作用在SQL Server 2005里,可以用两种方法来保证数据的有效性和完整性:约束(check)和触发器(Trigger)。约束是直接设置于数据表内,只能现实一些比较简 单的功能操作,如:实现字段有效性和唯一性的检查、自动填入默认值
阅读全文
摘要:表操作create table t_person1(id int not null,name nvarchar(50),age int null)drop table t_person1alter table t_person1 add department vchar(20)数据更新update Student set Name='李鹏' where Id=5update a set a.Bonus=500 from Student a inner join Gender b on a.Gender=b.Id where b.GenderName='男'upd
阅读全文
摘要:--SQLSERVER2000取第几行到第几行的方法--(第一种方法)效率最差selecttop5*fromcustomerswhereCustomerIDnotin(selecttop5CustomerIDfromcustomers)--(第二种方法)效率最好, 这里先执行的是Order by 然后才执行Topselectb.*from(selecttop5a.*from(selecttop10*fromcustomersorderbyCustomerIDasc)aorderbya.CustomerIDdesc)borderbyb.CustomerID--(第三种方法)利用临时表和ident
阅读全文
摘要:sql语句判断方法之一 Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END这两种方式,可以实现相同的功能。简单Case函数的写法相对比较
阅读全文
摘要:-- =============================================-- Author: 流逝在夏天-- Create date: 2011年8月30日20:55:27-- Update Date: 2011年9月2日3:44:51-- Description: 简单复习存储过程-- =============================================USE ReviewSql--用户表CREATE TABLE Users (ID INT PRIMARY KEY IDENTITY(1,1),UserName VAR...
阅读全文
摘要:SQL Server 存储过程详解存储过程的优缺点 ◆优点: 执行速度更快。存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程执行速度更快。 存储过程用于处理复杂的操作时,程序的可读性更强、网络的负担更小。 使用存储过程封装事务性能更佳。 能有效的放注入,安全性更好。 可维护性高,在一些业务规则发生变化时,有时只需调整存储过程即可,而不用改动和重编辑程序。 更好的代码重用。 ◆ 缺点: 存储过程将给服务器带来额外的压力。 存储过程多多时维护比较困难。 移植性差,在升级到不同的数据库时比较困难。 调试麻烦,SQL语言的处理功能简单。 总...
阅读全文
摘要:当我们在用SQL Server数据库开发系统的时候,经常会遇到系统需要权限控制,然而根据权限的控制程度不同有不同的设计方案。1. 基于角色的权限设计这种方案是最常见也是比较简单的方案,不过通常有这种设计已经够了,所以微软就设计出这种方案的通用做法,这种方案对于每一个操作不做控制,只是在程序中根据角色对是否具有操作的权限进行控制;这里我们就不做详述2. 基于操作的权限设计这种模式下每一个操作都在数据库中有记录,用户是否拥有该操作的权限也在数据库中有记录,结构如下:但是如果直接使用上面的设计,会导致数据库中的UserAction这张表数据量非常大,所以我们需要进一步设计提高效率,请看方案33. 基
阅读全文
摘要:1. 用一条SQL语句 查询出每门课都大于80分的学生姓名name kechengfenshu 张三 语文81张三 数学75李四 语文76李四 数学90王五 语文81王五 数学100王五 英语90思路:这里不能直接用 分数>80这样的比较条件来查询的到结果,因为要求没门成绩都大于80。我们可以反过来思考,如果有一门成绩小于80,那么就不符合要求。先找出成绩表中成绩<80的多有学生姓名,不能重复,然后再用not in找出不再这个集合中的学生姓名。create table #成绩(姓名varchar(20),课程名称varchar(20),分数int)insert into #成绩va
阅读全文
摘要:--建库if exists(select * from sys.sysdatabases where name='wf')beginuse masterdrop database wfendgocreate database wfon(name=N'wf',filename=N'E:\MyCode\ETC收费站\ETC收费站\ETC_Data\wf.mdf',size=3mb,maxsize=unlimited,filegrowth=1)log on(name=N'wf',filename=N'E:\MyCode\ETC收
阅读全文
摘要:如果我们学习了ADO.Net或者实际做过一个与数据库进行数据交互的应用程序,那就非常好理解今天我们所教授的知识点---SQL中的存储过程,存储过程是实际项目开发过程中最常用的处理数据库数据的方式,这是最基本的数据库操作,必须熟练掌握,既然它这么重要,下面我们就开始学习存储过程,有关它的好处和实质,我们放到学习完语法和实例后让大家一起发现式的总结,这样更能体会出存储过程的优势和方便。 首先我们来学习定义一个最简单的存储过程语法,"[ ]"内的语句可以省略:Code highlighting produced by Actipro CodeHighlighter (freewa
阅读全文
摘要:本节课我们来学习使用sql自带的系统函数,完成查询作业。sql系统函数中较常用的,包括字符串函数、日期函数、聚合函数以及其他函数框架下的数据类型转换、自增长函数、空值函数等。后面所指出的几种函数,我们都在前几节的学习中使用过,今天我们着重来学习前两种函数。 字符串函数: 1.charindex(): 返回字符串中指定表达式的起始位置,公式为:charindex(‘表达式’,字段名 [,起始位置]) 如 使用charindex(‘小’,name,3)将得到‘小’字在字段name值的第三个字符后中所找到的位置,当name字段的一条记录中没有小字,将返回0. 下面针对此函数出一道之前题: 查询出学生
阅读全文

浙公网安备 33010602011771号