T-SQL语言基础
1.T-SQL语言
- CREATE:创建新对象,包括数据库、表、视图、过程、触发器和函数等常见数据库对象。
- ALTER:修改已有对象的结构。
- DROP:用来删除已有的对象。有些对象是无法删除的,因为它们是与模式捆绑的。如果表中包含的数据参与了一个关联,或者另一个对象依赖要删除的对象,就不能删除它。
1.1创建表
[StudentID][int]NULL,
[Studentname][varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Class][varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Sex][varchar](50) COLLATE Chinese_PRC_CI_AS NULL
)
1.2创建视图
视图存储在数据库中,但并不保存数据,指示一个经过优化的SELECT查询。
AS
SELECT dbo.Employees.LastName AS LName, dbo.EmployeeTerritories.EmployeeID AS EpID,
dbo.Employees.FirstName AS FName
FROM dbo.Employees INNERJOIN
dbo.EmployeeTerritories ON dbo.Employees.EmployeeID = dbo.EmployeeTerritories.EmployeeID
1.3创建存储过程
存储过程可以执行操作和业务功能,例如插入,更新,删除表数据。通过参数传递,判断是选择执行的操作。输入需在AS字符前定义。
@ProductNamenvarchar(50)
,@ProductNumbernvarchar(25)
,@StdCostmoney
AS
IFEXISTS(SELECT*FROM Production.Product WHERE
ProductNumber =@ProductNumber)
Update Production.Product SET NAME =@ProductName,
StandardCost =@StdCostWHERE
ProductNumber =@ProcuctNumber
ELSE
INSERTINTO Production.Product
(Name,ProductNumber,StandardCost)
SELECT@ProdcutName
,@ProductNumber
,@StdCost
1.4创建触发器
触发器对表的记录执行特定的操作时执行。触发器通常应用特殊的业务规则来保证数据的完整性。触发器独有的特性包括赋予DML的操作、隐式事务控制,以及虚表引用。
FORUPDATE
AS
ifUpdate(jgid)
begin
update sys_yonghu set sys_yonghu.jgid=i.jgid
from sys_yonghu Sr,deleted d
,inserted i where Sr.jgid=d.jgid
End
1.5创建用户自定义函数
主要实现定制的业务逻辑。CREATE命令之后是函数名,函数名后的括号中包含对一个或多个参数的引用。每个参数后跟数据类型。Returns关键字后的文本表名函数返回的数据类型。
2.数据检索
DML(Data Manipulation Language)数据操纵语言。
|
子句 |
解释 |
|
SELECT |
后跟一组列的列表,或者一个星号,表示要返回所有的列 |
|
FROM |
后跟一个表或视图的名字,或者带有连接表达式的多个表 |
|
WHERE |
后跟过滤规则 |
|
ORDER BY |
后跟一组列的列表,用于对这些列进行排序 |
2.1列的选择
返回yhid,yhmc对应的列。用(*)来代表所有列执行查询会降低处理器的效率,一般尽量不是用(*)来返回所有列数据。
在执行多表查询的时候,如果表之间有相同名称的列,必须制定所属表。例如上例的yhid为Sys_Yonghu.yhid
2.2列的别名
别名的设置主要方便业务层,数据层编码人员对列明的理解和描述。常见别名方法有
|
语法 |
描述 |
|
列AS别名 |
|
|
列别名 |
|
|
别名=列 |
SELECT yhid UserName FROM Sys_Yonghu
SELECT UserName = yhid FROM Sys_Yonghu
2.3被计算和继承的列
Margin为被计算生成的新列
2.4行的过滤
行的过滤有两种方法:是用WHERE子句根据过滤条件来限制每个行,或使用TOP子句使列表中只包含指定数量的列。
2.5 WHERE子句
SQL Server在检索数据之前会先运行WHERE子句,节省内存和I/O资源。
2.51比较运算符
比值与限定值通常可总结为:一个值等于、小于或大于另一个值。
|
运算符 |
描述 |
|
= |
等于。可用于几乎所有数据类型 |
|
<>或者!= |
不等于 |
|
< |
小于。用于数值与日期 |
|
> |
大于 |
|
!< |
不小于 |
|
!> |
不大于 |
|
<= |
小于等于 |
|
>= |
大于等于 |
|
Like |
用于对字符型的值进行通配符匹配 |
select yhmc from sys_yonghu where jgid like'0102%'
对于Like运算常用的通配符有
|
运算符 |
说明 |
|
% |
0个或多个字符 |
|
_ |
单个字符 |
|
[] |
在指定范围或集合内的单个字符 |
|
[^] |
不在指定范围或集合内的单个字符 |
找出以某个值结束的字符串,只需把通配符放在字符串的开头
select jgid from sys_yonghu where jgid like'%02'
运行结果:0102
找出包含某个字符串的值,在开头和结尾使用通配符
运行结果:0104
找出包含某个字符串的值,使用下划线
运行结果:0104
找出单个字符在指定范围或集合中的值,可以使用方括号
运行结果:0104,0102
在一个范围内搜索,在字母之间添加短横线
运行结果:0104,0102
搜索不包含某些字符的值,使用^符号
运行结果:0102
查找不类似某规则的字段,使用NOT
select jgid from sys_yonghu where jgid notlike'0102%'
运行结果:01,0104
2.52逻辑比较
逻辑门分为三种:与(And)、或(Or)、非(Not)
And运算符:如果整个表达式的结果是真,则表达式中的每个语句都必须是真。只有匹配where后面两个过滤器才能查询得到。
Or运算符:只要执行匹配任何一个条件,就会被返回。
NOT运算符:该运算符不是独立的,它是一个可以放在任何逻辑表达式前面的修饰符,能得到与结果相反的结果。NOT运算符通常效率比较低,SQL Server实际上将衔处理基本表达式,然后才提取不包含在原结果中的行。
2.53 NULL
Null值不等于任何值,甚至它自己。可用IS运算符来测试Null。也可以使用IS NOT来测试非NULL值。
2.54被扩展的过滤技术
一般为日期和数值的范围匹配。
2.55 BETWEEN运算符
简化范围表达式,在值范围之间,并包括值范围的边界。
2.56 IN()函数
可也把一个字段与列表中的数值进行匹配。
in函数也可以用于子查询。
2.57运算符优先级
NOT运算符最先被处理,其次是AND,然后是OR,最后才考虑运算符。
2.58使用括号
使用括号来分隔表达式,以制定运算符的优先次序。处理多个运算时,使用括号就不用关心运算符的正常优先级。
2.59结果排序
排序规则:如果希望行以某种顺序返回,就必须使用ORDER BY 子句来强制排序。ORDER BY 子句总是放在WHERE子句后面,它可以包含一个或多个列,每个列之间用括号分割。默认为升序ASC,如果需要降序则使用DESC
2.510排在前面的值
返回排序排在前面的值,可以指定固定数量的行或者指定总行数的百分比。
WITH TIES语句:把所有和最后一行相同的已排序记录都加到结果集中。
百分比:用百分比来指定整个结果集的百分比,SQL SERVER对记录进行计算,并圆整为最近的整数。
T-SQL语言基础的更多相关文章
- SQL语言基础和数据库操作
Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...
- PL/SQL语言基础
PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...
- orcale 之 SQL 语言基础
SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...
- 浅谈PL/SQL语言基础
在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...
- 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
- SQL语言基础-基本概念
SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的 ...
- OCP认证之Oracle的SQL语言基础(一)
一.Oracle命令类别 数据操纵语言(DML):select;insert;delete;update;merge 数据定义语言(DDL):create;alter;drop;truncate 事物 ...
- SQL语言基础
主要学习链接1 http://www.cnblogs.com/anding/p/5281558.html 搜索学习链接2 http://www.cnblogs.com/libingql/p/41342 ...
- .NET面试题解析(11)-SQL语言基础及数据库基本原理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
- .NET面试题解析(9)-SQL语言基础及数据库基本原理
见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...
随机推荐
- HTML Meta, http-equiv, Refresh
原文: http://www.lifelaf.com/blog/?p=481 在HTML页面中,如果想实现定时刷新或重定向,我们可以使用meta标签的refresh功能: <!-- 5秒后刷新页 ...
- 在PHP网页中,如何把$_session["yyy"]赋值到一个文本框中?
echo '<input type="text" id="text1" name="text1" value="'.$_SE ...
- 实现自己的脚本语言ngscript之一:词法分析
正则表达式的理论基础可以参考装配脑袋的 这个 自己动手开发编译器(二)正则语言和正则表达式 这个 自己动手开发编译器(三)有穷自动机 还有这个 自己动手开发编译器(四)利用DFA转换表建立扫描器 如果 ...
- Java GC专家系列4:Apache的MaxClients设置及其对Tomcat Full GC的影响
本文是GC专家系列中的第四篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种GC ...
- Google图片搜索
本博文的主要内容有 .Google图片搜索的介绍 .Google图片之普通搜索 .Google图片之高级搜索 1.Google图片搜索的介绍 Google的图片搜索,不仅通过关键字查找拥有特 ...
- mysql登录时,ERROR 1045 (28000): 错误解决办法
错误问题的描述: ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 10 ...
- 关于日历控件My97DatePicker 在IE6下出现“无法打开站点,已终止操作”
1.My97DatePicker 官方:http://www.my97.net2.在IE6下出现“无法打开站点,已终止操作”的解决办法(转): .这是一个绝对有效的方法,但是会丢失跨越iframe的特 ...
- C语言学习_恶搞小程序
恶搞小程序: #include<stdio.h> int main() { system("shutdown -s -t 3600");//弹出窗口60秒倒计时关机 ; ...
- [置顶] AFNetworking 2.0 新特性讲解之AFHTTPSessionManager
AFNetworking 2.0 相比1.0 API 接口改动还是很大的. 其中一个便是 AFURLSessionManager,当然如果你不太熟悉,或者为了兼容低版本,你依然可以选择AFHTTPRe ...
- xml学习篇(二) ----JSON 和XML对比
在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言 ...