Transact-SQL语言 -学习sql server2005 step by step(四)
2010-02-22 16:21
519 查看
4.1[b]Transact-SQL语言简介[/b]
Transact-SQL语言是微软公司在Microsoft SQL Server系统中使用的语言,是对SQL语言的一种扩展形式。 Transact-SQL语言有4个特点:一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加语言元素为一体。二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方式。三是非过程化语言,只需要提出“干什么”,不需要指出“如何干”,语句的操作过程由系统自动完成。四是,类似于人的思维习惯,容易理解和掌握。那么sql2005还支持xml.
注意:我所讲的内容是针对sql2005有些操作也会对比sql200.
4.2Transact-SQL语言的特点和执行方式
在Microsoft SQL Server 2005系统中,根据Transact-SQL语言的功能特点,可以把Transact-SQL语言分为5种类型,即数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言元素。 l在Microsoft SQL Server 2005系统中,主要使用SQL Server Management Studio工具来执行Transact-SQL语言编写的查询语句。除此之外,还可以使用sqlcmd实用工具来执行Transact-SQL语句。
4.3数据定义语言
数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型、用户等都是数据库中的对象,都需要通过定义才能使用。在DDL中,主要的Transact-SQL语句包括CREATE语句、ALTER语句、DROP语句。
4.4数据操作语言
数据操纵语言主要是用于操纵表、视图中数据的语句。当我们创建表对象之后,初始状态时该表是空的,没有任何数据。如何向表中添加数据呢?这时需要使用INSERT语句。如何检索表中数据呢?可以使用SELECT语句。如果表中数据不正确的,那么可以使用UPDATE语句进行更新。当然,也可以使用DELETE语句删除表中的数据。实际上,DML语言正是包括了INSERT、SELECT、UPDATE、DELETE等语句。
4.5数据控制语言
数据控制语言(DCL)主要用来执行有关安全管理的操作,该语言主要包括GRANT语句、REVOKE语句和DENY语句。GRANT语句可以将指定的安全对象的权限授予相应的主体,REVOKE语句则删除授予的权限,DENY语句拒绝授予主体权限,并且防止主体通过组或角色成员继承权限。
4.6表
表是关系模型中表示实体的方式,是用来组织和存储数据、具有行列结构的数据库对象。 一般而言,表具有下列一些基本特点:代表实体、由行和列组成、行和列的顺序是不重要的等等。 下面,详细讲述这些特点。
4.6.1表的类型
在Microsoft SQL Server 2005系统中,按照表的作用,可以把表分为4种类型,即
普通表
已分区表
如果一个表中包含了大量的、以多种不同方式使用的数据,且一般地查询不能按照预期的成本完成,那么应该考虑使用已分区表。 已分区表是指按照数据水平方式分区,将数据分布于一个数据库的多个不同的文件组中。在对数据进行查询或更新时,这些已分区表将被视为独立的逻辑单元。
注意:只有Microsoft SQL Server 2005企业版支持已分区功能。
临时表
系统表
每一种类型的表都有自己的作用和特点。
4.7简单T-sql语句总结
Transact-SQL语言是微软公司在Microsoft SQL Server系统中使用的语言,是对SQL语言的一种扩展形式。 Transact-SQL语言有4个特点:一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加语言元素为一体。二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方式。三是非过程化语言,只需要提出“干什么”,不需要指出“如何干”,语句的操作过程由系统自动完成。四是,类似于人的思维习惯,容易理解和掌握。那么sql2005还支持xml.
注意:我所讲的内容是针对sql2005有些操作也会对比sql200.
4.2Transact-SQL语言的特点和执行方式
在Microsoft SQL Server 2005系统中,根据Transact-SQL语言的功能特点,可以把Transact-SQL语言分为5种类型,即数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言元素。 l在Microsoft SQL Server 2005系统中,主要使用SQL Server Management Studio工具来执行Transact-SQL语言编写的查询语句。除此之外,还可以使用sqlcmd实用工具来执行Transact-SQL语句。
4.3数据定义语言
数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型、用户等都是数据库中的对象,都需要通过定义才能使用。在DDL中,主要的Transact-SQL语句包括CREATE语句、ALTER语句、DROP语句。
4.4数据操作语言
数据操纵语言主要是用于操纵表、视图中数据的语句。当我们创建表对象之后,初始状态时该表是空的,没有任何数据。如何向表中添加数据呢?这时需要使用INSERT语句。如何检索表中数据呢?可以使用SELECT语句。如果表中数据不正确的,那么可以使用UPDATE语句进行更新。当然,也可以使用DELETE语句删除表中的数据。实际上,DML语言正是包括了INSERT、SELECT、UPDATE、DELETE等语句。
4.5数据控制语言
数据控制语言(DCL)主要用来执行有关安全管理的操作,该语言主要包括GRANT语句、REVOKE语句和DENY语句。GRANT语句可以将指定的安全对象的权限授予相应的主体,REVOKE语句则删除授予的权限,DENY语句拒绝授予主体权限,并且防止主体通过组或角色成员继承权限。
4.6表
表是关系模型中表示实体的方式,是用来组织和存储数据、具有行列结构的数据库对象。 一般而言,表具有下列一些基本特点:代表实体、由行和列组成、行和列的顺序是不重要的等等。 下面,详细讲述这些特点。
4.6.1表的类型
在Microsoft SQL Server 2005系统中,按照表的作用,可以把表分为4种类型,即
普通表
已分区表
如果一个表中包含了大量的、以多种不同方式使用的数据,且一般地查询不能按照预期的成本完成,那么应该考虑使用已分区表。 已分区表是指按照数据水平方式分区,将数据分布于一个数据库的多个不同的文件组中。在对数据进行查询或更新时,这些已分区表将被视为独立的逻辑单元。
注意:只有Microsoft SQL Server 2005企业版支持已分区功能。
临时表
系统表
每一种类型的表都有自己的作用和特点。
4.7简单T-sql语句总结
查询语句基本结构: SELECT FROM WHERE GROUP BY HAVING ORDER BY select 子句 自定义输出格式 例:查全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名 SELECT Sname , 'Year of Birth:', 2003-sage , LOWER(Sdept) FROM Student; 消除重复行: DISTINCT (缺省为ALL) 例: 求选修了课程的学生号 SELECT DISTINCT Sno FROM student Where 子句——运算符 比较:<、<=、>、>=、=、<>、not + ~ 确定范围:Between A and B、Not Between A and B 确定集合:IN、NOT IN 字符匹配:LIKE,NOT LIKE 空值:IS NULL、IS NOT NULL 多重条件:AND、OR、NOT 例1.求年龄在18~22 (含18, 22)之间的学生名及年龄 SELECT Sname, Sage FROM Student WHERE Sage BETWEEN 18 AND 22; 或者: SELECT Sname, Sage FROM Student WHERE Sage>=18 AND Sage<=22; 例2.求信息工程系、计算机系、数学系的系名、学生名 (或不是这些系的学生) SELECT Sdept, Sname FROM Student WHERE Sdept IN (‘IE’, ‘CS’, ‘MA’); 例3.求倒数第三、四个汉字为’系统’的课程名 SELECT Cname FROM Course WHERE Cname LIKE ‘%系统_ _ _ _’; 例4.查缺少成绩的学生的学号和相应的课程号 SELECT Sno, Cno FROM SC WHERE Grade IS NULL; Group By子句 将查询结果集按某一列或多列的值分组,值相等的为一组,一个分组以一个元组的形式出现 只有出现在Group By子句中的属性,才可出现在Select子句中 组函数的使用: COUNT([DISTINCT|ALL] *|列名) SUM([DISTINCT|ALL] 列名) AVG([DISTINCT|ALL] 列名) MAX([DISTINCT|ALL] 列名) MIN([DISTINCT|ALL] 列名) 例:统计各系学生的人数。 Select sdept,count(*) as stu_count From Student Group By sdept Having子句 决定哪些分组符合要求,作用于分组 例:求选修课程在2门以上且都及格的学生号及总平均分 SELECT Sno, AVG(ALL Grade) FROM SC GROUP BY Sno HAVING COUNT(Cno)>2 AND MIN(Grade)>=60; ORDER BY子句 对查询结果按照一个或多个列的值进行升/降排列输出,升序为ASC;降序为DESC,空值将作为最大值排序 例:对选修’C5’课程的学生按成绩降序排列,同分数者按学号升序排列 SELECT Sno, Grade From SC WHERE Cno=’C5’ ORDER BY Grade DESC,Sno ASC; SQL更新语句 插入记录: INSERT INTO ..... VALUES() 例1:新增一个学生信息 INSERT INTO student VALUES(‘2003001’,‘陈冬’,18,‘男’,’电商’,’管理学院’,’徐州’); 例2:新增一条选课记录 INSERT INTO SC(Sno,Cno) VALUES (‘2003001’,‘C003’); 删除记录:DELETE FROM 例1:删除学号为‘2003009’的学生。 DELETE FROM SC WHERE sno = ' 2003009 '; 例2:清空SC表 DELETE FROM SC 修改记录:UPDATE SET 例1:把名为MARTIN的职工的工种改为MANAGER, 工资增加收入20%, UPDATE EMPLOYEE SET JOB=‘MANAGER’,Salary= Salary*1.2 WHERE NAME = ‘MARTIN’; 例2:将所有学生的年龄增加1岁 UPDATE student SET Sage=Sage+1; |
相关文章推荐
- 数据库基础-学习sql server2005 step by step(一)
- SQL实例进阶-学习sql server2005 step by step(八)
- SQL Server中常用全局变量和函数 -学习sql server2005 step by step(五)
- 数据库安装规划和管理-学习sql server2005 step by step(二)
- SQL实例进阶-学习sql server2005 step by step(六)
- 管理数据库 -学习sql server2005 step by step(三)
- SQL实例进阶-学习sql server2005 step by step(八)
- SQL进阶提升(平时小积累)-学习sql server2005 step by step(十)
- SQL进阶提升(疑惑篇order by)-学习sql server2005 step by step(十一)
- SQL实例进阶-学习sql server2005 step by step(七)
- SQL进阶提升(试题)-学习sql server2005 step by step(九)
- OpenCL 学习step by step (4) 读入二进制kernel文件
- Sql Server2005 Transact-SQL 新兵器学习总结之-TOP 运算符
- 学习动态代理stepbystep(4)
- Deep Belief Network 学习 Step By Step
- gdb学习step by step
- Sql Server2005 Transact-SQL 新兵器学习总结之-EXCEPT和INTERSECT运算符
- Sql Server2005 Transact-SQL 新兵器学习总结之-数据类型
- Linux 学习 step by step (2)
- C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures