SQL语言
 1.1.1 SQL语言及其优点
首先,让我们来了解一下使用SQL语言的优点:
●  非过程化语言
●  统一的语言
●  是所有关系数据库的公共语言
1.非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录集,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
2.统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。只有c-tree等小型数据库管理系统当中还没有sql.
SQL为许多任务提供了命令,其中包括:
●  查询数据
●  在表中插入、修改和删除记录
●  建立、修改和删除数据对象
●  控制对数据和数据对象的存取
●  保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
3.是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
SQL语言有方言,需要克服。在写SQL语句的时候要注意:尽量使用单引号,尽量使用数据库管理系统无关的简单SQL语句。在制定表结构的时候要注意不要使用特殊名称作为字段名或其他数据库对象的名称。如:name, password等。字段名不要太长,不要用双引号扩起来。不要做大的表的叉乘。
SQL语言的分类及语法
1.1.2 SQL语言的分类及语法
  可执行的SQL语句的种类数目之多是惊人的。使用SQL,你可以执行任何功能:从一个简单的表查询,到创建表和存储过程,到设定用户权限。在这个章节中,我们将重点讲述如何从数据库中检索、更新和报告数据,也是基于这个目的,我们应该了解的最重要的SQL语句是:
●  SELCET
●  INSERT
●  UPDATE
●  DELETE
●  CREAT
●  DROP
以上这些命令可简要描述如表1.1所示,这些命令看起来并不困难,在下面的例子中,我们将在实例中应用这些命令,了解其功能。
1.1  重要的SQL语句
命令
类别
说明
SELECT
数据查询语言
从一个表或多个表中检索列和行
INSERT
数据操纵语言
向一个表中增加行
UPDATE
数据操纵语言
更新表中已存在的行的某几列
DELETE
数据操纵语言
从一个表中删除行
CREATE
数据定义语言
按特定的表模式创建一个新表
DROP
数据定义语言
删除一张表
1.SELECT语句语法
1.2  SELECT语句的组件
sql语句实现的四种功能
组件
说明
SELECT
指明要检索的数据的列
FROM
指明从哪()个表中进行检索
WHERE
指明返回数据必须满足的标准
GROUP BY
指明返回的列数据通过某些条件来形成组
HAVING
指明返回的集合必须满足的标准
ORDER BY
指明返回的行的排序顺序
SQL查询语句使用

一、简单查询
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,email
FROM testtable
WHERE name='张三'

()选择列表
    选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
SELECT *
FROM testtable

2、选择部分列并指定它们的显示次序
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:
SELECT nickname,email
FROM testtable

4、删除重复行
SELECT语句中使用ALLDISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。