T-SQL语句查询

T-SQL语句简单查询

1.T-SQL语句的组成。

T-SQL语言主要由以下几个部公组成:

1.1  DML(数据操作语言):用来查询、插入、删除和修改数据库中的数据,如Select 、Insert 、 Update及Delete等。

1.2  DCL(数据控制语言):用来控制数据库组件的存取许可和权限等,如Grant 、Revoke等。

1.3  DDL(数据定义语言):用来建立数据库、数据库对象和定义其列,大部分是以Greate开头的命令,如Greate Table 、Greate View 、Drop     Table等。

2.T-SQL的查询原理:

查询是针对表已经存在的数据行而言的,查询的过程其实就是“筛选”的过程。

数据表在接受查询请求时,进行逐行选取,将符合查询条件的提取出来,然后把所有被选取的行组织在一起,形成一个类似表的结构,而这个表中的数据就是查询的结果,通常叫做记录集(RecordSet)。

3.T-SQL语句使用的语法:

T-SQL语法有四个分别注释如下:

3.1 Select语法

Select  select__list  from  Table__list  [where子句]  [order by 子句(ASC | DESC)]

n       --select__list为字段列表,也可以说是要查询显示的内容,可以有多个字段列表一起查询--

n       --Table__list 为表名,是要查询的表的表名。--

n       -- [where子句]是指在”Where  后面为要查询的条件的条件表达式或逻辑表达式。--

n       --[order by 子句(ASC | DESC)]是指查询结果按照某字段排序的字段列表,其中ASC表示升序、DESC表示降序。--

3.1.1在T-SQL语法中所用到的“比较运算符”

运算符

含义

=

等于

大于

小于

>=

大于或等于

<=

小于或等于

<> 

不等于

!=

不等于

Between

指定值的包含范围(包含边界);between 开始值 and 结束值。

Is[not]null

根据使用的关键字,指定是否搜索空值或非空值。如果有任何一个操作数为NULL,则包含位运算符或算术运算符的表达式的计算结果为NULL。

Like

模糊查询“像什么一样”,指定字符串进行模式匹配(查询符合特征的数据)

In

是不在数据范围里面(In关健字用来限制范围)

                           通配符

通配符

解释

示例

‘_’

一个字符

A like ‘C_’

%

任意长度的字符串

B like ‘Cr_%’

[]

括号中所指定范围内的一个字符

C like ‘8x0[1-2]’

[^]

不在括号中所指定范围内的任意一个字符

 

                          逻辑运算符

操作符

说明

Not

和其它操作符一起使用,取反的操作

And

组合两个条件,并在两个条件都为True时取值为True

Or

组合两个条件,并在两个条件之一为True时取值为True

3.2 Insert语法

Insert into <表名>  [列名]  values  <值列表>.

--into 是可选的,可要可不要.—

--表名 必须要有(要插入数据的表)--

--列名 也是可选的,但省略时, <值列表>中的数据必须和数据表中的字段顺序一致,(多个列名和多个值列表用逗号分开)—

例: 

insert into table_1 (username,userpasspwd,phonenumber) values (张三,123456,13401138741)

表示在表table_1中插入一行数据” 张三,123456,13401138741”分别对应以下三列插入

username,userpasspwd,phonenumber”.

注意:

1.        在插入数据时每次都是插入一整行数据不可能是半行或几列数据.

2.        数据值的数目必须与列数相同,每个数据值的类型、精度和小数位数也必须与相应的列匹配。

3.        INSERT语句不能为IDENTITY标识列指定值,因为它的数字是自动增长的。

4.        对于字符型的列,当插入数据的时候,用单引号将其引起来。

5.        如果在设计表的时候指定某列不允许为空,则该列必须插入数据,否则将报告错误信息。

6.        插入的数据项要求符合检查约束的要求。

扩展:

1.   通过insert…….select…….语句可以将现有表中的数据添加到新表中。

2.   通过select…….into……语句可以将现在表中的数据添加到新表中。

3.   通过Union关健字合并数据进行插入。

 

3.3        Update 语法

Update <表名>  set <列名 = 更新值>  [Where <更新条件>]

--set 后面可以紧随多个数据列的更新值勤。--

--where子句是可选的,用来限制条件。如果不限制,整个表的所有数据行都将被更新。--

例1:Update NEWS_table set newsource = ‘中国移动’ where newsource is null

--表示将表NEWS_table中所有新闻来源newsource为空null的记录,改为‘中国移动’。--

例2:Update NEWS_table set newsource = ‘来自:’+ newsource where newsource is not null

--在T-SQL表达式中,可以将某列值统一加上数字或字符串形成新的值。--

--在例2中就是将新闻来源全部加上“来自:”。--

注意:

在更新数据时,要注意限制条件(where 子句),否则将更新表中所有行的数据,可能导致有效数据丢失。

3.4 Delete 语法

Delete from <表名>  [where<删除条件>]

例:Delete from NEWS_table  where  newsource  like  ‘%谷歌网%’

--表示删除新闻来源是“谷歌网”的所有新闻—

注意:

1.  如果要删除的行的主键值被其它表引用,将不能被删除。

2.  Delete……from……只要删除就是删除整条记录,不会删除单个字段,所以在Delete后不能出现字段名。

扩展:

使用Truncate Table也可以删除数据,但它是删除表中的所有行(相当于没有where子句的Delete语句。

Truncate TableNEWS_table

TruncateDelete的区别:

1.  Truncate Table不带where子句只能将整个表清空,而Delete语句可以带where子句允许按条件删除某条记录。

2.  Truncate Table不记录事务日志,而Delete无论删除多少条记录,都会每删除一行记录一条事务日志。所以Truncate Table删除后无法通过事务日志恢复。

3.  Truncate Table删除表中的所有行,标识列会重置为0,而Delete不会重置标识列。

4.  Truncate Table不能用于外键约束引用的表,Delete可以。

所以Truncate Table执行速度更快,在清空大数据量表作业时,DBA常用此命令。但在执行前必须确定数据可以删除,否则无法恢复。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值