[计算机]SQL循序渐进教程_第1页
[计算机]SQL循序渐进教程_第2页
[计算机]SQL循序渐进教程_第3页
[计算机]SQL循序渐进教程_第4页
[计算机]SQL循序渐进教程_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.SQL循序渐进教程介绍SQLSQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如&qu

2、ot;Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。但是,不象其它的语言,如C、Pascal等,SQL没有循环结构(比如if-then-else、do-while)以及函数定义等等的功能。而且SQL只有一个数据类型的固定设置,换句话说,你不能在使用其它编程语言的时候创建你自己的数据类型。SQL功能强大,但是概括起来,它可以分成以下几组:DML(Data Manipulation Lang

3、uage,数据操作语言):用于检索或者修改数据; DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象; DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。DML组可以细分为以下的几个语句:SELECT:用于检索数据; INSERT:用于增加数据到数据库; UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE ALTER TABLE DROP TABLE CR

4、EATE INDEX DROP INDEXDCL命令用于创建关系用户访问以及授权的对象。下面是几个DCL命令: ALTER PASSWORD GRANT REVOKE CREATE SYNONYM为了让你对SQL有一个直观的认识,下面先给出一个简单SQL语句的例子:我们使用SQL语句来从Employees中检索Department ID为CS的姓名:SELECT Employees.NameFROM EmployeesWHERE Employees.DeptID = "CS"可能你现在一开始不太理解这些语句,也许你会一头雾水,不要紧的,通过本教程的学习后,你会发现这段语句是

5、多么的普通。为了不让你困惑,下面我也进行一番解释:先对FROM子句吧,语句中的FROM Employees意思是从Employees表中检索数据。而语句WHERE Employees.DeptID = "CS"意思是检索Employees的DeptID列为”CS”的行,这样SQL语句检索的结果将是DeptID为CS的列的所有数据,比如:EmpIDNameDept123PurpleCS124ZscCS最后,我们来解释一个SELECT子句,它指定了从Name列检索来的所有数据,比如NamePurpleZsc好吧,开始我们下一节的教程-表的基本知识。表的基础知识关系数据库通常包含

6、多个表。数据库实际上是表的集合,数据库的数据或者信息都是存储在表中的。表是对数据进行存储和操作的一种逻辑结构,每一个表都代表一个对用户意义的对象。例如,一个公司数据库中,会有雇员表、部门表、库存表、销售表、工资表等等。我们经常见到的成绩表就是一种表,它是有行和列组成的,我们并且可以通过名字来识别数据。列包含了列的名字、数据类型以及列的其它属性;行包含了列的记录或者数据。下面给出一个成绩单,其中姓名、语文、数学、英语都是列,而行包含了这个表的数据,即每个人的各科成绩:姓名语文数学英语王小童7810087张柳风859295紫云飞658986黄天龙986775数据检索在SQL中SELECT语句通常用

7、于检索数据库,或者检索满足你设定条件的数据,以下是简单的SELECT语句的格式:select "column1","column2",etc from "tablename"where "condition" = optional 其中列的名字跟着SELECT关键字,它决定了哪一列将被作为结果返回。你可以任意指定多个列,或者你可以使用"*"来选择所有的列。表的名字是紧跟着FROM关键字的,它指出了哪个表格将作为最后结果被查询。而WHERE子句(可选)指出哪个数据或者行将被返回或者显示,它是根据关

8、键字WHERE后面描述的条件而来的。在WHERE子句中可以有以下的条件选择:= 等于> 大于< 小于>= 大于等于<= 小于等于<> 不等于LIKE 参见以下注释注释:LIKE 模式匹配操作符同样可以使用在WHERE子句的条件条件中。LIKE是一个功能强大的操作符,它可以让你选择你"喜欢"指定的行。百分号"%" 可以被用来匹配任何可能的字符,它可以出现在指定字符的前面或者后面,例如:select first, last, cityfrom empinfowhere first LIKE 'Er%' 以上

9、这条SQL语句将会匹配任何名字以'Er'开始的名字,这里必须使用单引号。或者你也可以使用"%"在字符的前面,例如: select first, last from empinfowhere last LIKE '%s' 这条SQL语句将会匹配任何名字以's'结尾的名字。这个"%"的作用就跟DOS命令的""号很相似。select * from empinfowhere first = 'Eric' 以上的SQL语句只选择first名字为'Eric'的行。 这

10、里有一个名为"empinfo"的表:first last id age city province Zhang Jiangsheng 95123043 23 汕头 广东 Huang Weidong 98122001 23 深圳 广东 Li Simin 98111234 34 珠海 广东 Zhang Sanmei 99232211 26 厦门 福建 Jiang Dongsheng 98000190 28 重庆 四川 Liu Tongxin 97231231 31 海南 海南 下面我们使用SELECT语句来进行一些检索:首先你可以从empinfo中检索出列为first、last

11、、city的数据,语句如下:select first, last, city from empinfo; 这时候你将来得到以下的数据:first last id Zhang Jiangsheng 95123043 Huang Weidong 98122001 Li Simin 98111234 Zhang Sanmei 99232211 Jiang Dongsheng 98000190 Liu Tongxin 97231231 如果你使用以下语句:select last, city, age from empinfowhere age > 30; 那就检索到以下的数据:last city

12、 age Simin 汕头 34 Tongxin 海南 31 若是使用:select first, last, city, province from empinfowhere first LIKE 'J%' 将得到以下的数据:first last city Province Jiang Dongsheng 重庆 四川 你如果想列出所有的数据,可以使用以下的语句:select * from empinfo; 这时候检索到的数据为:first last id age city province Zhang Jiangsheng 95123043 23 汕头 广东 Huang We

13、idong 98122001 23 深圳 广东 Li Simin 98111234 34 珠海 广东 Zhang Sanmei 99232211 26 厦门 福建 Jiang Dongsheng 98000190 28 重庆 四川 Liu Tongxin 97231231 31 海南 海南 如果你想查询first和last列中last的最后字符为'g'的数据,你可以使用:select first, last, from empinfowhere last LIKE '%g' 此时查询到的数据有:first last Zhang Jiangsheng Huang

14、Weidong Jiang Dongsheng 你还可以这样来从first、last和age列中来查询last中间有'sh'字符的数据:select first, last, age from empinfo where last LIKE '%sh%' 结果为:first last age Zhang Jiangsheng 23 Jiang Dongsheng 28 最后,你还可以查询first为'Jiang'的数据:select * from empinfo where first = 'Jiang' 结果为:first la

15、st id age city province Jiang Dongsheng 98000190 28 重庆 四川 好吧,为了让你对本节教程能更好的掌握,下面给你几个练习巩固巩固:1 显示first和age列的每一个表中数据 2 显示first、last和city列中除了first=Jiang的所有表中的数据。3 显示所有age大于30的列的数据。4 显示first和last列中last是以"g"结尾的数据。5 显示所有first为"Zhang"的列千万不要认为这些很简单而不作练习。因此这些都是基础,打好基础对于以后的学习是有帮助的。创建表这个creat

16、e table语句是用于创建一个新的表格。以下是一个简单创建表格语句的格式: create table "tablename"("column1" "data type","column2" "data type", "column3" "data type");如果你想使用可选的约束,创建表格的格式为: create table "tablename"("column1" "data type"

17、 constraint,"column2" "data type" constraint,"column3" "data type" constraint); = optional 这里注意:你可以任意创建多列的表格,这个条件是可选的。为了更好的理解,下面举个例子:create table employee(first varchar(15),last varchar(20),age number(3),address varchar(30),city varchar(20),state varchar(20);为

18、了创建一个新表格,你可以在关键字create table之后跟着表的名字,然后一个圆左括号”(”,然后是第一列的名字,再是这一列的数据类型,接着是任意的可选约束,最后是圆右括号”)”。确保在开始表格内容之前使用圆左括号并且在表的最后一列定义之后使用圆右括号是相当重要的。你还要保证每一个列定义之间有逗号分隔。最后在SQL语句结束时候加上分号""。表格和列名必须以字母开头,第二个字符开始可以是字母、数字或者下划线,但是要保证名字的总长度不要超过30个字符。在定义表格和列名不要使用不要使用SQL预定的用于表格或者列名的关键字(比如"select"、"

19、create"、 "insert"等等),以避免错误的发生。 数据类型是指在特定的列使用什么样数据的类型。如果一个列的名字为"Last_Name",它是用来容纳人名的,所以这个特定列就应该采用"varchar" (variable-length character,变长度的字符型) 数据类型。以下是几种常见的数据类型:char(size) :固定长度的字符串型。Size是圆括号中指定的参数,它可以由用户随意设置,但是不能超过255个字节。varchar(size) :变长度的字符串型。它的最大长度是由括号中的参数size设定

20、的。number(size):数值型。最大数字的位数由括号中的参数size设置。date :日期数值型。number(size,d) :数值型。它的最大数字的位数由括号中的参数sieze设定,而括号中的参数d是设置小数点的位数。什么是约束呢?当表被创建的时候,可以一列也可以多列共用一个约束。约束是一个跟列有关的基本准则,返回的数据必须遵循这个准则。下面举个例子,一个约束指定在一列中不能有两个记录共用一个数值。它们必须单独的。其它两个流行的约束是:"not null",它设置了列不能留空白,即一定要有数据;以及"primary key"(主键),主键约束定

21、义了表中每一个记录(或行)的唯一标识。所有的这些将在以后的教程中再作进一步阐述。好吧,也许你已经有跃跃欲试的冲动了。作为本节练习,下面我们自己来设计和创建表格。你可以开始创建一个公司的雇员表格。你需要创建一个包含firstname、lastname、 title、 age和 salary的表格。插入数据到表Insert语句用于往表格中插入或者增加一行数据,它的格式为:insert into "tablename"(first_column,.last_column)values (first_value,.last_value); = optional 简单举个例子:ins

22、ert into employee(first, last, age, address, city)values ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co'); 这里要注意:每一个字符窜都要用单引号括起来。为了往表中插入数据,要在关键字insert into之后紧跟着表名,然后是左圆括号,接着是以逗号分开的一系列的列名,再是一个右圆括号,然后在关键字values之后跟着一系列用圆括号括起的数值。这些数值是你要往表格中填入的数据,它们必须与指定的列名相匹配。字符串笔译用单引

23、号括起来,而数字就不用。在上面的例子中,'Luke'必须与列first相匹配,而45必须与列age相匹配。假如你想往employee表格中插入以下数据;Zhang Weiguo,28,北京601信箱,北京那么你要使用以下的SQL语句:insert into employee(first, last, age, address, city)values (' Zhang', ' Weiguo' ,28, '北京601信箱', '北京');删除表Drop table命令用于删除一个表格或者表中的所有行。其语法格式为:d

24、rop table "tablename" 下面举个例子:drop table employee; 为了删除整个表(包括所有的行),可以使用drop table命令后加上tablename。Drop table命令跟从表中删除所有记录是不一样的:删除表中的所有记录是留下表格(只是它是空的)以及约束信息;而drop table是删除表的所有信息,包括所有行、表格以及约束信息等等。更新记录Update语句用于更新或者改变匹配指定条件的记录,它是通过构造一个where语句来实现的。其语句格式如下:update "tablename"set "columnname" = "newvalue","nextcolumn" = "newvalue2".where "columnn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论