资源预览内容
第1页 / 共136页
第2页 / 共136页
第3页 / 共136页
第4页 / 共136页
第5页 / 共136页
第6页 / 共136页
第7页 / 共136页
第8页 / 共136页
第9页 / 共136页
第10页 / 共136页
亲,该文档总共136页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中国科学院西安网络中心,1,SQL 语言,中国科学院西安网络中心,2,前 言,中国科学院西安网络中心,3,SQL概述,中国科学院西安网络中心,4,增强 SQL,中国科学院西安网络中心,5,SQL产品,中国科学院西安网络中心,6,资 源,中国科学院西安网络中心,7,DBMS和RDBMS,中国科学院西安网络中心,8,关系型DBMSRDBMS,中国科学院西安网络中心,9,关系数据库模型的十三条准则,中国科学院西安网络中心,10,关系数据库模型的十三条准则,中国科学院西安网络中心,11,关于 ODBC,中国科学院西安网络中心,12,客户机/服务器开发工具,Microsoft 公司的 Visual Basic、 Visual C+Borland 公司的 DelphiPowerSoft 公司的 PowerBuilder,中国科学院西安网络中心,13,数据类型,在 SQL 语言 中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。SQL Server 提供系统数据类型集,定义了可与 SQL Server 一起使用的所有数据类型。下面列出系统提供的数据类型集。精确数字,近似数字,字符串,Unicode 字符串,二进制字符串,其它数据类型。有关数据类型的细节请看SQL Server 联机丛书。,中国科学院西安网络中心,14,使用 Unicode 数据,统一的字符编码标准, 采用双字节对字符进行编码。Unicode 规格为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 规格将 Unicode 数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。有关Unicode的细节请看SQL Server 联机丛书。,中国科学院西安网络中心,15,一般的语法规则,SQL 语法建议:Microsoft SQL Server 2000 Transact-SQL 版遵从 Entry 级 SQL-92标准,并支持 Intermediate 级和 Full 级标准中的很多附加功能。有关Unicode的细节请看SQL Server 联机丛书。,中国科学院西安网络中心,16,样本数据库,中国科学院西安网络中心,17,表、行、列,行:SQL 表中构成表中的水平行的元素集合。表中的每一行代表由该表建模的对象的一个出现,并存储该对象所有特性的值。例如,在 Northwind 示例数据库中,Employees 表建立 Northwind Traders 公司职员的模型。表中的第一行记录职员 ID 为 1 的职员的全部信息(例如姓名和头衔)。列:SQL 表中每一行中的区域,存储用该表制作模型的某个对象特性的数据值。例如,Northwind 示例数据库中的 Employees 表建立 Northwind Traders 公司职员的模型。Employees 表的每个行中的 LastName 列存储该行所代表的职员的姓氏,就象窗口或表单中的 Last Name 字段包含姓氏一样。,中国科学院西安网络中心,18,SQL Server服务管理器,中国科学院西安网络中心,19,使用查询分析器,中国科学院西安网络中心,20,查询分析器连接 SQL Server,本地连接(local).主机名 (用ipconfig/all查询主机名)IP地址远程连接主机名 IP地址,中国科学院西安网络中心,21,第一单元,查 询,中国科学院西安网络中心,22,错误信息,select服务器: 消息 170,级别 15,状态 1,行 1 第 1 行: select 附近有语法错误。,中国科学院西安网络中心,23,第一个查询,select * from authors星号*告诉数据库返回由from指定的表的所有列,返回顺序由数据库决定。大小写不影响查询结果。select au_id,au_lname,au_fname, phone,address,city,state,zip, contract from authors与前一条SQL语句有相同的结果。,中国科学院西安网络中心,24,改变列的顺序,select au_id, phone, au_lname, au_fname, address,city,state,zip, contract from authors现在你有了控制各列输出顺序的能力。,中国科学院西安网络中心,25,选择个别列,如果你只对某些列感兴趣,比如只想检索au_lname, au_fname, phone, address,就应该这样写SQL语句:select au_lname,au_fname, phone,address from authors现在你已经得到你感兴趣的列了。,中国科学院西安网络中心,26,选择另一张表,如果你需要另一张表中的信息,该怎么办呢?select * from discounts,中国科学院西安网络中心,27,结果不重复的查询,观察下面查询的输出:select city from authors你会发现有相同的城市,两个人住在同一个城市这很正常,但如果你想看看到底有那几个城市在表中怎么办呢?试试这个:select distinct city from authorsSQL语法中还有一个和distinct对应的关键字allselect all city from authors你会发现查询结果和上面的第一个SQL语句相同,既然如此,谁还想自找麻烦呢?,中国科学院西安网络中心,28,第二单元,表达式、条件和操作符,中国科学院西安网络中心,29,表达式,表达式用于返回一个值。它包括:字符串、数字、布尔表达式。其实你已经用过表达式了,跟在select和from中间的东西都是表达式。表达式是符号与运算符的组合。简单的表达式可以是一个常量、变量、列或标量函数。可以用运算符将两个或更多的简单表达式联接起来组成复杂的表达式。,中国科学院西安网络中心,30,条件,中国科学院西安网络中心,31,Where子句,Where子句的语法:where 先来回顾一下我们前面所学的“第一个查询”select * from authors你会看到,结果返回了数据库pubs中表authors的所有内容,如果你想查某一作者的情况,可以键入 :select * from authors where au_lname =Smith我们得到了想要的结果。,中国科学院西安网络中心,32,操作符,操作符是条件表达式中用于精确表示你想从数据库中查询出什么数据的运算符号。操作符大致分为六类:算术操作符、比较操作符、字符操作符、逻辑操作符、集合操作符和其他操作符。,中国科学院西安网络中心,33,算术操作符(+),加号有两种不同的用法,可以作算术操作符,也可以作字符操作符,我们先用它作算术操作符。键入:select discounttype,stor_id,lowqty, highqty,discount from discounts现在我们把所有的折扣增加0.5元,可以键入 :select discounttype,stor_id,lowqty, highqty,discount+0.5 from discounts我们得到了想要的结果。SQL允许你将已有的列进行组合或计算,以建立虚拟列和导出字段,原始表并不发生变化。,中国科学院西安网络中心,34,算术操作符(+) 续,观察一下discount+0.5字段的标题是(无列名),太不好听了,我们把它改一改。键入:select discounttype,stor_id,lowqty, highqty,discount+0.5 新折扣 from discounts很好,我们可以重新命名列标题。重新命名任意字段列标题的语法格式:列名 别名(注意它们之间有空格)加号还可以作为字符操作符,后面你将看到这种用法。,中国科学院西安网络中心,35,建立虚拟列,我们想把原来的折扣和新折扣加以对照,键入:select discounttype,stor_id,lowqty, highqty, discount 旧折扣,discount+0.5 新折扣 from discounts太好了!我们不仅建立了一个新的列,还可以重新命名任意列标题。,中国科学院西安网络中心,36,算术操作符(-),减号也有两种用法:可以用某列减去一个常数,或者用一列减去另一列。另一种用法是改变某数的符号。我们先来改变一列数的符号,键入:select discounttype,stor_id,lowqty, highqty, discount-3 from discounts用一列减去另一列,键入:select discounttype,stor_id,lowqty, highqty, discount 旧折扣, discount+4 新折扣, discount+4-discount 折扣差 from discounts,中国科学院西安网络中心,37,算术操作符(-) 续,如果不小心在数据类型是字符串的字段使用了减号:select -discounttype,stor_id, lowqty, highqty, discount from discounts你将看到类似下面的结果:服务器: 消息 403,级别 16,状态 1,行 1 对数据类型而言运算符无效。运算符为 minus,类型为 varchar。,中国科学院西安网络中心,38,算术操作符(/),除号只有一种用法:select discounttype,stor_id, lowqty, highqty, discount/3 from discounts或者:select discounttype,stor_id,lowqty, highqty, discount 旧折扣, discount+4 新折扣, (discount+4)/discount 折扣比 from discounts,中国科学院西安网络中心,39,算术操作符(*),乘号也只有一种用法:select discounttype,stor_id, lowqty, highqty, discount*3 from discounts或者:select discounttype,stor_id,lowqty, highqty, discount 旧折扣, discount+4 新折扣, (discount+4)*discount 折扣乘 from discounts,中国科学院西安网络中心,40,算术操作符(%),模运算返回除法操作的余数:select discounttype,stor_id,lowqty, lowqty%3 模, highqty, discount from discounts后面我们将会看到,模运算还可以作为函数。,中国科学院西安网络中心,41,算术操作符优先级,先乘除后加减,括号优先。,中国科学院西安网络中心,42,比较操作符,比较操作符比较两个表达式并返回如下三个值之一,TRUE,FALSE或NULL。重要 不能将空值用于区分表中两行所需的信息(例如,外键或主键)。如果数据出现空值,则逻辑运算符和比较运算符有可能返回 TRUE 或 FALSE 以外的第三种结果 UNKNOWN。需要三值逻辑是导致许多应用程序出错之源。,中国科学院西安网络中心,43,NULL,空值NULL的概念:在数据库术语中,如果某记录的某字段里没有数据,则该字段的值就是NULL。NULL并不意味着字段包含一个0值或长度为0的字符串。0值是一个整数,而长度为0的字符串也是字符串的一个具体值。NULL意味着什么也没有!操作符is null用来检测变量是否为空值。重要 为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值。对查询和数据修改语句进行规划,使空值的影响降到最小。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号