SQL Server使用笔记
1、连接字符串
SQL Server 身份验证,如:"server=yqzhu-peter;database=WindWMNew1_DB;uid=sa;pwd=ABcd1234;Connect Timeout=1000"
2、sa(system administrator),dbo(database owner)
3、SQL 不区分大小写,包括sql语句,数据库名,表名,字段名,变量名,函数名,以及字段中实际值的比较
use wfc_db
go create table TestCase(
Id int,
CaseName varchar(20),
UpdateDate datetime
) alter table testcase
add [from] varchar(20) insert into Dbo.TestCase
values(1, '', Getdate(), 'shanghai')
insert into Dbo.TestCase
values(2, '', Getdate(), 'NANJING') select * from Dbo.TestCase declare @aa varchar(20)
select @aa = 'SHANGHAI'
print @AA
if @AA = (select [from] from testcase)
print 'yes'
else
print 'no' select [from] from testcase
DELETE FROM TESTCASE WHERE ID = 2
1、当对象名为sql中的关键字时,需要用[]包括
2、创建表时,字段默认是可空的
4、in的两种基本使用方式:
1、简单的方式:select * from testcase where [from] in ('shanghai')
2、组合方式: select * from testcase where [from] in (select [from] from testcase where datediff(day, updatedate, getdate()) = 4)
注意该方式的select子句返回必须为一维表,否则会报错
5、 批量插入: insert into persons(name, classId) select name, 1 from students
或 insert into persons(name, classId) values ('cheng', 1), ('cheng2', 2), ('cheng3', 3),
6、可以定义表变量:
DECLARE @temptb TABLE (
[id] int identity(1,1),
UserID varchar(50)
)
该变量常用于字符串的处理
7、自定义函数:
有三种类型: 1、标量函数 2、内联表值函数 3、多语句表值函数
详细可参考: 1、SQL Function 自定义函数
2、SQLServer:FUNCTION/CURSOR/PROCEDURE/TRIGGER
8、查询重复记录
distinct关键字只能去除重复字段,而不能用于多个字段,如select distinct name from tb_student可行,但select distinct name, age from tb_student会报错
查询重复记录方式是使用group by及having子句,如
select wid, count(*) from TB_CustLotteryInfo
where [datetime] > ''
group by wid
having count(*) > 3
9、存储过程返回数据的三种方式:
a、通过select,返回标量值或table
对应标量值,sql:select 1,c#:dt.Rows[0][0].ToString()
b、output关键字,可以参考SQLServer:FUNCTION/CURSOR/PROCEDURE/TRIGGER
这种方式应用在sql调用存储过程
c、影响的行数
sql中return的作用是使存储过程立即返回,与其他编程语言的return不同
10、游标的使用,详细可参考: SQL Server游标的使用【转】
使用C#定义一个DBHelper,并兼容多种类型的数据库
实例源码DBHelperTest.rar
说明:
1、当记录的某列为可空时,应当判断是否为DBNull.Value再进行类型转换,如:
FirstName = reader["FirstName"] == DBNull.Value ? "" : (string)reader["FirstName"];
2、表Employees的模式
create table Employee(
id int IDENTITY(1,1) primary key,
FirstName varchar(255),
SecondName varchar(255),
Salary decimal(10, 2)
)
存储过程SP_DeleteEmployeeById
ALTER PROCEDURE [dbo].[SP_DeleteEmployeeById](
@ids varchar(100)
)
AS
BEGIN
declare @temptb table(
id int
)
declare @index int
declare @str varchar(10)
select @str = @ids
select @index = charindex(',', @str)
while @index > 1
begin
insert into @temptb values(cast(left(@str, @index - 1) as int))
select @str = right(@str, len(@str) - @index)
select @index = charindex(',', @str)
end
insert into @temptb values(cast(@str as int)) delete from dbo.Employees where id in (select id from @temptb)
END
存储过程SP_GetEmployees
ALTER PROCEDURE [dbo].[SP_GetEmployees](
@id int
)
AS
BEGIN
if @id = 0
select * from dbo.Employees
else
select * from dbo.Employees where id = @id
END
参考:1、数据库访问类DBHelper 2、如何做个好用的数据库访问类
SQL Server使用笔记的更多相关文章
- SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器
SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...
- 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句
原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...
- sql server 常见问题笔记
1.关于复制类型 快照发布:发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照. 事务发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器. 对等发布:对等发布支 ...
- sql server 2008笔记
sql server 2008开启远程访问数据库 1.以windows验证模式进入数据库管理器. 第二步:右击sa,选择属性: 在常规选项卡中,重新填写密码和确认密码(改成个好记的).把强制实施密码策 ...
- SQL server 学习笔记1
1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty(' ...
- SQL Server 自学笔记
--★★★SQL语句本身区分大小写吗 --SQLServer 不区分大小写 --Oracle 默认是区分大小写的 --datetime的输入格式,2008-01-07输入进去后显示为1905-06-2 ...
- SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程
SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end f ...
- SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库
SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- SQL Server -- 回忆笔记(一):初见数据库
SQL Server知识点回忆篇(一):初见数据库 1. 主键 primary key 唯一标识, 不会重复的值才会用来当做主键使用. 表可以没有主键,但建议每张表都有主键. 2. 数据冗余 ...
随机推荐
- WindowsFormsHost下MouseWheel失效的解决办法
原文:WindowsFormsHost下MouseWheel失效的解决办法 看了网上有些写的用钩子,但是,在Stack Overflow上找到一个简便的方式
- SpringBoot整合Shiro使用Ehcache等缓存无效问题
前言 整合有缓存.事务的spring boot项目一切正常. 在该项目上整合shiro安全框架,发现部分类的缓存Cache不能正常使用. 然后发现该类的注解基本失效,包括事务Transaction注解 ...
- Java消息中间件入门笔记 - ActiveMQ篇
入门 消息中间件带来的好处: 1)解耦:系统解耦 2)异步:异步执行 3)横向扩展 4)安全可靠 5)顺序保证 栗子: 通过服务调用让其它系统感知事件发生 系统之间高耦合 程序执行效率低 通过消息中间 ...
- 反射那点基础-Method
目录 1 获取 Method 1.1 方法 1.2 实例 2 Method 的方法 2.1 Java 方法基础知识 2.2 修饰符相关方法 2.2.1 获取修饰符 2.2.2 判断是否为 defaul ...
- Python_匿名函数_47
匿名函数 Eva_J 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 #这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc ...
- Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
目录 概括 Sparse PCA Formulation 非常普遍的问题 Optimality Conditions Eigenvalue Bounds 算法 代码 概括 这篇论文,不像以往的那些论文 ...
- Error Boundaries 错误边界
错误边界是用于捕获其子组件树 JavaScript 异常,记录错误并展示一个回退的 UI 的 React 组件,而不是整个组件树的异常.错误边界在渲染期间.生命周期方法内.以及整个组件树构造函数内捕获 ...
- ES7的新特性
ES7的新特性 ES7 特性: 1.Array.prototype.includes2.Exponentiation Operator(求幂运算) 一,Array.prototype.includes ...
- Bootstrap知识记录:表格和按钮
基本格式.table3.带边框的表格//给表格增加边框<table class="table table-bordered">4.悬停鼠标//让<tbody> ...
- [转帖] SS, SP, BP 三个寄存器
SS, SP, BP 三个寄存器 https://blog.csdn.net/vspiders/article/details/55669265 这么看 计算机组成原理 还有 考试的很多题目非常有用啊 ...