SQL数据库简介
- 格式:doc
- 大小:52.50 KB
- 文档页数:16
SQL数据库简介SQL全称是“结构化查询语言(Structured Query Language)”SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL同时也是数据库脚本文件的扩展名。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用S QL语言可以写出非常复杂的语句。
结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE 语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。
如今无论是像、、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。
ANSI 是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。
ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。
ANSI 发布与国际标准组织相应的美国标准。
1992年,ISO和IEC发布了SQL国际标准,称为S QL-92。
ANSI随之发布的相应标准是ANSI SQL-92。
ANSI SQL-92有时被称为AN SI SQL。
尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循AN SI SQL 标准。
SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循A NSI制定的SQL-92标准。
SQL语言包含4个部分:※数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。
※数据查询语言(DQL),例如:SELECT语句。
※数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL语言包括三种主要程序设计语言类别的陈述式:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
SQL发展历史1970:. Codd 发表了关系数据库理论(relational database theory);1974-79:IBM 以Codd的理论为基础开发了“Sequel”,并重命名为"SQL";1979:Oracle 发布了商业版SQL1981-84:出现了其他商业版本,分别来自IBM(DB2),Data General(DG/SQL), Relational Technology(INGRES);SQL/86:ANSI 跟ISO的第一个标准;SQL/89:增加了引用完整性(referential integrity);SQL/92(aka SQL2):被数据库管理系统(DBMS)生产商广发接受;1997+:成为动态网站(Dynamic web content)的后台支持;SQL/99:Core level跟其他8种相应的level,包括递归查询,程序跟流程控制,基本的对象(object)支持包括oids;SQL/2003:包含了XML相关内容,自动生成列值(column values);2005-09-30:“Data is the next generation inside...SQL is the new HTML”! Tim O'eilly提出了Web 理念,称数据将是核心,SQL将成为“新的HTML";SQL/2006:定义了SQL与XML(包含XQuery)的关联应用;2006:Sun公司将以SQL基础的数据库管理系统嵌入Java V6DDLDDL 用于定义和管理物件,例如资料库、资料表以及检视表(第18章将会解释何谓检视表)。
DDL 陈述式通常包括每个物件的CREATE、ALTER 以及DROP 命令。
举例来说,CREATE TABLE、ALTER TABLE 以及DROP TABLE 这些陈述式便可以用来建立新资料表、修改其属性(如新增或删除资料行)、删除资料表等,下面我们会一一介绍。
CREATE TABLE 陈述式使用DDL 在MyDB 资料库建立一个名为Customer_Data 的范例资料表,本章后面的例子我们会使用到这个资料表。
如前所述,CREATE TABLE 陈述式可以用来建立资料表。
这个范例资料表被定义成四个资料行,如下所示:Use MyDBCREATE TABLE Customer_Data(customer_id smallint,first_name char(20),last_name char(20),phone char(10))GO这个陈述式能产生Customer_Data 资料表,这个资料表会一直是空的直到资料被填入资料表内。
ALTER TABLE 陈述式ALTER TABLE 陈述式用来变更资料表的定义与属性。
在下面的例子中,我们利用ALTER TABLE 在已经存在的Customer_Data 资料表中新增middle_initial 资料行。
ALTER TABLE Customer_DataADD middle_initial char(1)GODROP TABLE 陈述式DROP TABLE 陈述式用来删除资料表定义以及所有的资料、索引、触发程序、条件约束以及资料表的权限。
要删除我们的Customer_Data 资料表,可利用下列命令:DROP TABLE Customer_DataGODMLDML 利用INSERT、SELECT、UPDATE 及DELETE 等陈述式来操作资料库物件所包含的资料。
INSERT 陈述式INSERT 陈述式用来在资料表或检视表中插入一列资料。
例如,如果要在Cust omer_Data 资料表中新增一个客户,可使用类似以下的INSERT 陈述式:INSERT INTO Customer_Data(customer_id, first_name, last_name, phone)VALUES (777, 'Frankie', 'Stein', '00')请注意SQL 陈述式中第二行的资料行名称清单,清单上资料行名称的次序决定了资料数值将被放在哪个资料行。
举例来说,第一个资料数值将被放在清单列出的第一个资料行customer_id、第二个资料数值放在第二个资料行,依此类推。
由于我们在建立资料表时,定义资料资料行填入数值的次序与现在相同,因此我们不必特意指定栏位名称。
我们可以用以下的INSERT 陈述式代替:INSERT INTO Customer_DataVALUES (777, 'Frankie', 'Stein', '00')注意如果使用这种形式的INSERT 陈述式,但被插入的数值次序上与建立资料表时不同,数值将被放入错误的资料行。
如果资料的型别与定义不符,则会收到一个错误讯息。
UPDATE 陈述式UPDATE 陈述式用来更新或改变一列或多列中的值。
例如,一位名称为Franki e Stein 的客户想要在记录中改变他的姓氏为Franklin,可使用以下UPDATE 陈述式:UPDATE Customer_DataSET first_name = "Franklin"WHERE last_name = "Stein" and customer_id= 777我们在WHERE 子句中加入customer_id 的项目来确定其他名称为Stein 的客户不会被影响-只有customer_id为777的客户,姓氏会有所改变。
--------------------------------------------------------------------------------说明当您使用UPDATE 陈述式时,要确定在WHERE 子句提供充分的筛选条件,如此才不会不经意地改变了一些不该改变的资料。
--------------------------------------------------------------------------------DELETE 陈述式DELETE 陈述式用来删除资料表中一列或多列的资料,您也可以删除资料表中的所有资料列。
要从Customer_Data 资料表中删除所有的列,您可以利用下列陈述式:DELETE FROM Customer_Data或DELETE Customer_Data资料表名称前的FROM 关键字在DELETE 陈述式中是选择性的。
除此之外,这两个陈述式完全相同。
要从Customer_Data 资料表中删除customer_id 资料行的值小於100的列,可利用下列陈述式:DELETE FROM Customer_DataWHERE customer_id < 100现在我们已经快速浏览了SQL 提供的DDL 与DML 陈述式,接著,下面将介绍T-SQL。
DCLDCL是用来管理数据库的语言。
包含管理权限及数据更改。
-------------------------------------------------------------------------------- SELECT 陈述式SELECT 陈述式用来检索资料表中的资料,而哪些资料被检索由列出的资料行与陈述式中的WHERE 子句决定。
例如,要从之前建立的Customer_Data 资料表中检索customer_id 以及first_name 资料行的资料,并且只想取出每列中first_n ame 资料行值为Frankie 的资料,那麼可以利用以下的SELECT 陈述式:SELECT customer_id, first_name FROM Customer_DataWHERE first_name = "Frankie"如果有一列符合SELECT 陈述式中的标准,则结果将显示如下:customer_id first_name------------- ------------777 FrankieSQL中的五种数据类型简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型字符型VARCHAR VS CHARVARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。