面向算题语言又称面向问题语言,为了易于描述和求解某类指定问题而专门设计的一种非过程语言。
面向算题语言又称面向问题语言,为了易于描述和求解某类指定问题而专门设计的一种非过程语言。
为了易于描述和求解某类指定问题而专门设计的一种非过程语言。利用它在计算机上解题时,只要指出问题、输入数据和输出格式,就可由相应的计算机系统给出结果。
面向问题语言的同义语有面向应用语言,专用语言,专业化应用语言,或者专业化应用领域的语言。与面向过程语言相比,面向问题语言不要求程序人员描述问题的计算过程或算法。其主要特点是:
1、申述性。程序人员只要指明“做什么”(及有关参数),而不必详细说明“如何做”,后者由系统自动解决。
2、对用户友善。面向问题语言一般是为最终用户没计的,专业性强,用户稍经训练便会使用。
3、效率高。
早在20世纪60年代,数值计算的面向问题语言(如线性代数语言)和非数值计算的面向问题语言(如机床控制语言)曾经蓬勃发展。自60年代末以来,随着数据库、软件工程、微型计算机和网络等迅猛发展,出现了很多功能强大的面向问题语言,如数据库检索语言,以至诞生了含义更为丰富的名字——第四代语言4GL。
面向问题语言的主要缺点是:
①无标准、难移植;
②通用性差;
③适应性差,不适应计算机资源的扩充升级。
关系型数据库模型已经成为数据库设计事实上的标准。这不仅因为关系模型自身的强大功能,而且还由于它提供了称为结构化查询语言(SQL)的标准接口。结构化查询语言(Structured Query Language,SQL)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索。
SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统System R上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。
SQL从功能上可以分为4部分:数据查询、数据操纵、数据定义和数据控制。
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。其特点是:
1、数据描述、操纵、控制等功能一体化。
2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌人到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。
3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理操作等均由系统自动完成。
4、语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了8个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。
数据查询是数据库应用的核心功能,在许多数据库应用系统中主要的功能在于查询。
最简单的查询语句
下面的SQL语句是最简单的查询形式,生成的记录集包含整个表的全部数据:
SELECT*FROM学生
其中,“ * ”指表中所有字段(列)。FROM子句用于指定数据表。
SELECT语句的基本语法
在实际应用中,往往需要从一个或多个表中选择符合特定条件的记录构成记录集,因此应对SELECT语句的语法有一定的了解。SELECT语句的基本语法如下:
SELECT * | 字段列表
FROM表名
]
]
说明:
* | 字段列表:“ * ”表示所有字段;“字段列表”指定字段,多个字段间用逗号分隔,来自不同表的同名字段前须加表的名称和圆点。
FROM子句:指定表。若指定多个表,用逗号分隔。
WHERE子句:指定选择记录的条件。
GROUP BY及HAVING子句:分组过滤,将分组字段中同值记录合并为一条记录。
ORDER BY:排序。ASC为升序(默认);DESC为降序。
在SELECT语句的各子句中,WHERE子句使用频率最高。该子句指明查询的条件。在WHERE子句中可使用各种关系(比较)运算符表示筛选记录的条件。
图所示为用SQL语句生成记录集示例。
例1:选择“学生”表中所有男生构成记录集:
SELECT*FROM 基本信息 WHERE 性别 =“男”
例2:取“学生”表中张三的学号和姓名,根据其学号取“成绩”表中该学生的各科成绩构成记录集:
SELECT学生.学号,学生.姓名,成绩.课号,成绩.分数 FROM 学生,成绩
WHERE学生.学号=成绩.学号 AND 学生.姓名=“张三”
在WHERE子句中使用Like运算符可实现模糊查询。SQL语句中Like运算符的通配符是“%”,可代表任何字符,字符数不限。
例3:用Like运算符进行模糊查询。
①查询所有姓“张”的学生:
SELECT * FROM 学生 WHERE 姓名 Like“张%”
②查询所有姓名中含有“小”字的学生:
SELECT * FROM 学生 WHERE 姓名 Like“%小%”
③查询姓名最后一个字为“刚”的所有学生:
SELECT * FROM 学生 WHERE 姓名 like“&刚”