基本的SQLSELECT语句.ppt
基本的SQL SELECT语句,Inspur group,主讲:韩云,基本的SQL SELECT语句,2023/11/12,Inspur group,本节内容:区分RDBMS和ORDBMS识别SELECT语句中的关键字、必需的子句以及可选子句。选择和查看一个表的所有列选择和查看一个表的一列显示一个表的多个列使用列别名说明一个特定列的内容在SELECT子句中执行基本的算术运算使用DISTINCT或UNIQUE关键字删除重复列合并字段、文字值和其他数据,基本的SQL SELECT语句,2023/11/12,Inspur group,DBMS,是一个通用术语,适用于允许用户与数据库进行交互的软件。但是,当你使用关系数据库时,DBMS软件被视为一个“关系数据库管理系统(RDBMS)”。RDBMS是用来创建数据库的软件程序,它允许你输入、处理和检索数据。Oracle9i不仅可以用来引用单个数据元素,还可以引用对象(由单个数据元素组成),所以它是一个“对象关系数据库管理系统”(ORDBMS)。本课程的数据库中存储的数据是由简单字母数据字符组成,所以例子和概念也适用于RDBMS,对象的使用通常是在高级应用程序开发课程中介绍的。,SELECT语句的语法,2023/11/12,Inspur group,使用了大写字母的单词(SELECT,FROM,WHERE等)是关键字,关键字开始的每一部份都称为一个子句。SELECT语句的要点以下几点:SELECT语句必需的子句只有SELECT和FROM方括号表示可选部分可以在几行或一行上输入SQL语句。大多数SQL语句的输入方式都市一个子句占据单独的一行,以便提高可读性,并且使用编辑变得更容易。要想在输入SQL语句之后执行它,有两个选择,通常,SQL语句是通过在于语句的最后一行输入一个分号(;)来执行的,如果忘了输入分号斌干ENTER键,那么仍然可以在SQL提示符上输入一个斜线(/)来执行这个语句。,SELECT语句的语法,2023/11/12,Inspur group,注意:在SQL提示符上输入SQL语句之后,它将存储在“SQL缓冲区”中供执行。SQL缓冲区时计算机内存中的一部分,它将包含将要执行的SQL语句。语句保留在缓冲区中,直到输入另一个SQL语句为止(也就是说缓冲区一次只保留一个SQL语句,它是临时的)。要想查看目前SQL缓存区中包含什么语句,可以在SQL提示符上输入一个分号(;)或字母L,然后按ENTER键。如果想要执行当前存储在缓冲区中的SQL语句,那么只需要在SQL提示符上键入run,r或一个斜线(/),然后按ENTER键即可。,选择表中的所有数据,2023/11/12,Inspur group,在SELECT后面键入*号,补充知识:在SQL提示符上输入SET LINESIZE 100,然后按ENTER键,这会将能够在一行上显示的字符数重置为100个字符。,选择表中的所有数据,2023/11/12,Inspur group,选择表中的所有数据,2023/11/12,Inspur group,如果你发现第二列的标题显示在结果的中间,那么在SQL提示符上输入SET PAGESIZE 100并按ENTER键,将扩展输出中的每一页所显示的行数,选择表中的所有数据,2023/11/12,Inspur group,state字段标题被截断了,只显示了ST,因为列是作为一个“字符字段”创建的,所以标题不会比这个字段中存储的数据宽度更长。如果字段是作为一个数字列定义的,那么将显示整个列标题,而与字段的宽度无关(如Customers#字段所示)。因为state字段定义为只存储连个字符,所以标题列中只显示了列名称的前两个字符。但是在任何SQL语句中引用state字段时,仍然需要指定完整的列名称,而不只是ST。,从表中选择一列,2023/11/12,Inspur group,在Oracle9i中,只在结果中返回特定的列。SELECT语句中选择特定列被称为“投影(projection)”。可以选择表中的一列,也可以选择多个列或者是所有的列。比如要查看数据库中所有图书的名称,我们查询BOOKS表中的TITLE字段,在Sql*Plus中的几种输入方式,关键字,表名和列名都不区分大小写。为了将关键字与SELECT语句的其他部分区分开,关键字使用了大写字母。要记住,这“不是”Oracle9i所必需的,只是用来提高可读性的一种习惯做法。,从表中选择多个列,2023/11/12,Inspur group,SELECT 语句的SELECT子句中指定多个列时,应该使用逗号将列出的列分开。可以加入空格来提高可读性。,注意:输出结果中的顺序,按SELECT子句中列出列的顺序对现实的列排序。如果感觉到屏幕混乱,可以按shift+del键清除屏幕,SELECT语句中的运算使用列别名,2023/11/12,Inspur group,可以使用“列别名”来代替在查询结果中显示的列名称。例如:如果显示数据库中存储的所有图书的列表,那么你可能想要将列标题显示为“Title of Books”,可以在SELCECT子句中列名称的后面列出列别名。注意可选关键字AS,以便区分列名称和列别名。在使用别名时,须要记住一些准则如果列名称包含空格、特殊符号、或者你不希望全部以大写字母显示它,那么必须将它包括在“”中。如果只包括一个单词,则不需要“”,SELECT语句中的运算使用算数运算,2023/11/12,Inspur group,SELECT子句中可以使用+,-,*,/这样的算术运算,Oracle9i中遵循以下算术运算:在算术等式中从左向右计算,首先计算任何乘法和除法。在进行乘法和除法之后才计算任何加法和减法,也是在等式中从左向右进行计算。可以使用括号覆盖计算顺序例如:希望获取每本书所产生的利润。Books表包含两个可以用来计算利润的字段:Cost和Retail。一本书的利润是书店为该书支付的金额(成本)与书的销售价格(零售价)之间的差值。我们为计算出的字段指定一个别名。,使用DISTINCT和UNIQUE,2023/11/12,Inspur group,删除重复的列可以使用DISTINCT例如:希望查看一下客户分布在那些地区,创建串联,2023/11/12,Inspur group,结合两个或更多列的内容被称为“串联”,创建串联,2023/11/12,Inspur group,要显示客户编号和姓名,并且客户号和姓名显示在独立的行上面,怎么处理?,CHR(10)指示在Oracle9i中插入一个换行符。,总结,2023/11/12,Inspur group,Oracle9i是一个()Oracle9iSQL中的基本查询包括()和()子句,在SELECT语句中,只有这两个子句是必须的。要想查看表中的所有列,指定一个()或在SELECT子句中单独列出所有列名称。在SELECT子句中列举列名称式,必须使用()来分隔列名称。()可以用来解释特定列的内容。如果其中包括空格或特殊符号,或者想要以任何小写字母显示该列,那么必须将其包括在()中。可以在SELECT子句中执行基本的()运算。要想删除重复的列表,可以包括()或()关键字。要想指定哪一个表包含想要的列,必须在关键字()后面列出表的名称。使用()来结合或串联字段,文字值以及其他数据。,谢谢大家!,2023/11/12,Inspur group,谢谢大家!,