岁月联盟 - 技术社区 - BBS.SYUE.COM's Archiver

猪猪 发表于 2006-12-6 04:16

SQL 语言

&nbsp;&nbsp;&nbsp;&nbsp;SQL 语言是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制4 个方面,是一个通用的、功能极强的关系数据库语言。<br/><br/><span class="style2" twffan="done">4.1.1 SQL 概述<br/>&nbsp;&nbsp;&nbsp;</span>&nbsp;SQL 语言是1974 年由Boyce 和Chamberlin 提出的。1975 年至1979 年,IBM 公司San Jose Research Laboratory 研制的关系数据库管理系统原形系统System R 实现了这种语言。由于它功能丰富,语言简洁,使用方法灵活,倍受用户和计算机业界的青睐,被众多的计算机公司和软件公司采用。经过多年的发展,SQL 语言已成为关系数据库的标准语言。<br/><br/><span class="style2" twffan="done">4.1.2 SQL 语言的组成</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;SQL 语言主要由以下几部分组成:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;·数据定义语言(DDL,Data Definition Language);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;·数据操纵语言(DML,Data Manipulation Language);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;·数据控制语言(DCL,Data Control Language);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;·其它语言要素(Additional Language Elements)。<br/>&nbsp;&nbsp;&nbsp;&nbsp;SQL 语句数目、种类较多、其主体大约由40 条语句组成,如表4-1 所示。<br/><br/><img height="404" src="http://syue.com/data/UploadFiles_5789/200611/20061118143945443.JPG" width="615" twffan="done" alt=""/><img height="526" src="http://syue.com/data/UploadFiles_5789/200611/20061118144055762.JPG" width="621" twffan="done" alt=""/><br/><br/><span class="style2" twffan="done">4.1.3 SQL 语句的结构</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;所有的SQL 语句均有自己的格式,如图4-1 所示每条SQL 语句均由一个谓词(Verb)开始,该谓词描述这条语句要产生的动作,如图4-1 中的SELECT 关键字。谓词后紧接着一个或多个子句(Clause)子句中给出了被谓词作用的数据或提供谓词动作的详细信息。每一条子句由一个关键字开始,如图4-1 中的WHERE。<br/><img height="280" src="http://syue.com/data/UploadFiles_5789/200611/20061118144110218.JPG" width="625" twffan="done" alt=""/><br/><span class="style2" twffan="done"><br/>4.1.4 常用的SQL 语句</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;在使用数据库时用得最多的是数据操纵语言(Data Manipulation Language)。 DML包含了最常用的核心SQL 语句,即SELECT 、INSERT 、UPDATE 、DELETE。 下面对以后章节中经常用到的SELECT 语句作简单介绍(有关这些语句的具体语法请参见“数据查询:和“数据库更新”章节)<br/>&nbsp;&nbsp;&nbsp;&nbsp;简单的SELECT 语句的语法如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT [ALL|DISTINCT] &lt;目标表达式&gt;[,&lt;目标表达式&gt;]...<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM &lt;表或视图名&gt;[, &lt;表或视图名&gt;]...<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[WHERE &lt;条件表达式&gt;]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[GROUP BY &lt;列名1&gt; [HAVING &lt;条件表达式&gt;]]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ORDER BY &lt;列名2&gt; [ASC | DESC] ]<br/>&nbsp;&nbsp;&nbsp;&nbsp;整个SELECT 语句的含义是:根据WHERE 子句的条件表达式,从FROM 子句指定的基本表或视图中找出满足条件的元素组,再按SELECT 子句中的目标列表达式选出元素组中的属性值形成结果表。如果有GROUP 子句,则将结果按&lt;列名1&gt;的值进行分组,该属性列值相等的元素组为一个组,每个组产生结果表中的一条记录。如果GROUP 子句带有HAVING 短语,则只有满足指定条件的组才予以输出。如果有ORDER 子句,则结果表还要按&lt;列2&gt;的值升序或降序排序。下面对SELECT 语句的常用形式举例说明。<br/><br/>&nbsp;&nbsp;&nbsp;<span class="style2" twffan="done">&nbsp;</span>例4-1:查询所有员工的员工号和工资<br/>use pangu<br/>select emp_id,e_wage<br/>from employee<br/><br/>运行结果如下:<br/>emp_id e_wage<br/>-------- ---------------------<br/>10010001 8000.0000<br/>......(因数据太多故省略之) <p>&nbsp;&nbsp;&nbsp;&nbsp;例4-2:查询表的全部数据<br/>use pangu<br/>select *<br/>from employee<br/><br/>运行结果如下<br/>emp_id e_name birthday job_level dept_id hire_date e_wage<br/>-------- -------------------- --------------------------- --------- ------- ---------------------------<br/>10010001 张三 1968-02-14 00:00:00.000 1 1001 1996-08-02 00:00:00.000 8000.0000<br/>......<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;例4-3:查询工作级别为"2"的员工姓名,查询结果按部门分组<br/>use pangu<br/>select e_name, dept_id<br/>from employee<br/>where job_level = '2'<br/>group by dept_id e_name</p><p>运行结果如下:<br/>e_name dept_id<br/>-------------------- -------<br/>李四 1001<br/>......</p><p>&nbsp;&nbsp;&nbsp;&nbsp;以上是对SQL 语言的简单介绍,对没有接触过SQL 语言的读者,看了这一节就算入门了.我们在后面的章节中会用到更多类型的SQL 语句,Step By Step,您会成为SQL 高手。</p>

狂踩日本狗 发表于 2006-12-8 01:35

[em06][em06]

xiaojie 发表于 2006-12-8 18:24

呵呵,知道拉

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.