资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

sqlserver的用法,sqlserver的基本语法

Sqlserver的case when 用法

---下文举例分析了case when常用的用法,如下所示:涉及排序字段的应用

创新互联建站从2013年创立,是专业互联网技术服务公司,拥有项目网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元城关做网站,已为上家服务,为城关各地企业和个人服务,联系电话:13518219792

create table test

(

qty int ,

sort varchar(20)

)

insert into test(qty,sort)values

(1,'a'),(2,'b'),(3,'d'),(1,'e')

go

----方法1:

select sort,qty,

case qty

when 1 then '少'

when 2 then '中'

when 3 then '多'

else '未知'

end as [数量范围]

from test 

--方法2:

select sort,qty,

case 

when qty=1 then '少'

when qty=2 then '中'

when qty=3 then '多'

else '未知'

end as [数量范围]

from test 

---sum统计用法

select 

sum( case      when qty=1 then 1 else 0 end) as [少],

sum( case qty  when  2 then 1 else 0 end) as [中],

sum( case      when qty=3 then 1 else 0 end) as [多],

sum( case      when qty 1 and qty 2 and qty 3 then 1 else 0 end) as [位置]

from test 

---case when 做排序字段

declare @i int 

set @i=0

select * from test 

order by 

case @i when 0 then qty else sort    end 

go

truncate table test

drop     table test

sqlserver cast有什么用途

作用:数据类型转换

用法:cast(字段 as 类型),例如id字段是整型,现在要转化成字符型:cast(id as varchar)

SQL Server中还有一个功能类似的函数:convert(),其用法如下:

convert(类型,字段),引用上面的例子,则可以如此表示:convert(varchar(50),id)

SQL SERVER和ACCESS有什么用法的不同呢?

1,对于日期字段字段

access表示为:#1981-28-12#

SQLSERVER2000表示为:''1981-02-12''

2,SQL语句区别,select ,update 在对单表操作时都差不多,

但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比:

SQLSERVER中更新多表的UPDATE语句:

UPDATE Tab1

SET a.Name = b.Name

FROM Tab1 a,Tab2 b

WHERE a.ID = b.ID;

同样功能的SQL语句在ACCESS中应该是

UPDATE Tab1 a,Tab2 b

SET a.Name = b.Name

WHERE a.ID = b.ID;

即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.

更新单表时:都为:

UPDATE table1 set ab='12',cd=444 where ....

3,delete语句

access中删除时用:delete * from table1 where a2 即只要把select 语句里的select 换成delete就可以了。

sqlserve 中则为: delete from table1 where a2 即没有*号

4,as 后面的计算字段区别

access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。

sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。

5,[.]与[!]的区别

access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。

sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。

6,联合查询时,

access中多表联合查询:'select a,b from(

select a,b from tab1 where a3 union select c,d from tab2 ) group by a,b

sqlserve 中则'select a,b from(

select a,b from tab1 where a3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。---

7,access升级到sqlserver时,

可以用sqlserver的数据导入工具导入数据,但要做必要的处理。

access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar-varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)

8,true与1=1

access用where true表示条件为真,

sqlserver用where 1=1表示条件为真

9,判断字段值为空的区别

普通空:

Access和sql server一样 where code is null 或 where code is nol null

条件空:

Access:iif([num] is null,0,[num]) 或 iif([num] is null,[num1],[num])

SQLServer: isnull([num],0) 或 isnull([num],[num1])

10,SQL语句取子串的区别

access:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n)

如:select left(cs1,4)+'-'+cs2 as cs3

SQLServer: SUBSTRING(expression, start, length)

如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + '-' + cs2 as cs3

sqlserver2019怎么使用? 如何操作

1、选择开始菜单中→程序→【ManagementSQLServer】→【SQLServerManagementStudio】命令,打开【SQLServerManagementStudio】窗口,并使用Windows或SQLServer身份验证建立连接。

2、在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点。

3、右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。

4、执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作。

5、在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

6、在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

7、在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

8、切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

9、切换到【文件组】页,在这里可以添加或删除文件组。

10、完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

SQLServer里面的触发器语法及其用法?

CREATE TRIGGER tr_xxx_i ON 表名

FOR INSERT AS

...(具体的功能写在这里,想取的插入的某值,就从 FROM inserted 里取...)

C#中使用SQLServer的方法

1、添加引用

using System.Data.SqlClient;

2、建立连接调用

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

//数据库连接字符串通常是Data Source=localhost;Initial Catalog=数据库名;User ID=用户名;Password=密码

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = string.Format("select count(*) from {0} where columName={1}",表明,列值);//构造SQL查询语句     String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。        myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

int count = (int)myCommand.ExecuteScalar();

if (count  0)   

{

//count大于0表示有,调用自己写的一个方法来更新

UpdateData();

}

else

{

小于0表示没有,调用这个方法来插入            

InsertData();

}

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

//UpdateData方法    

public void UpdateData()

{

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = "用来更新的SQL语句";

myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

}

//InsertData方法 

public void InsertData()

{

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = "用来插入的SQL语句";

myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

}

-----这些都是基础的写法,可以将其封装在一个工具类中,方便调用。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

namespace DBUtility

{

public class SqlHelper

{

//通过配置文件(app.config:xml)读取连接字符串

public static string connectionString = ConfigurationManager .ConnectionStrings["ConnectionString"].ConnectionString;

//字段,通过连接字符串获取连接对象

private SqlConnection con = new SqlConnection(connectionString);

//属性,判断连接对象的状态并打开连接对象

public SqlConnection Con

{

get {

switch (con.State)

{

case ConnectionState.Broken:

con.Close(); //先正常关闭,释放资源

con.Open();

break;

case ConnectionState.Closed:

con.Open();

break;

case ConnectionState.Connecting:

break;

case ConnectionState.Executing:

break;

case ConnectionState.Fetching:

break;

case ConnectionState.Open:

break;

default:

break;

}

return con; }

set { con = value; }

}

//执行存储过程或者SQL语句并返回数据集DataSet

public DataSet GetDataSet(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds);

return ds;

}

//执行存储过程或者SQL语句并返回SqlDatareader

public SqlDataReader GetDataReader(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return dr;

}

//执行存储过程或者SQL语句并返回首行首列(新增方法的主键)

public object ExecuteScalar(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

return cmd.ExecuteScalar();

}

//执行存储过程或者SQL语句并返回受影响行数

public int ExecuteNonQuery(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

return cmd.ExecuteNonQuery();

}

//内部方法,实例化命令对象并配置相关属性

private SqlCommand PrepareCommand(string strSQL, CommandType cmdType,params SqlParameter[] values)

{

SqlCommand cmd = new SqlCommand();

cmd.Connection = Con;

cmd.CommandText = strSQL;

cmd.CommandType = cmdType;

cmd.CommandTimeout = 60;

cmd.Parameters.AddRange(values);

return cmd;

}

}

}


本文标题:sqlserver的用法,sqlserver的基本语法
新闻来源:http://www.cdkjz.cn/article/dsdgjhd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220