收 藏
投 稿
繁 体
RSS
首 页
运 营
学 院
建 站
论 坛
Web
master8.net
网站运营
欢迎在本站发布信息,在线投递稿件
请点这里
。编辑QQ:4908220,欢迎联系交流。
业界动态
创业故事
推广研究
策划盈利
电子商务
企业平台
站长工具
SEO查询
Whois查询
Pr查询
域名查询
IP查询
网页编辑器
技术学院
投递稿件请点这里:)
网页设计
HTML
XHTML
CSS
Javascript
Frontpage
Dreamweaver
图形图像
PhotoShop
FireWorks
Flash
Coreldraw
程序开发
PHP
ASP
.NET
JSP
CGI
XML
数据库
MySQL
Oracle
MSSQL
Access
综合应用
设计理论
建站系统
服务器管理
常用下载
办公应用
建站服务
如有建站意向,请尽快联系我们,以便安排时间...
QQ:4908220
作品展示
服务范围
服务流程
服务报价
联系方式
付款方式
站长论坛
注册
/
登陆
/
忘密?
交流区
站长酒吧
SEO&推广
网赚交流
建站系统
服务&信息
招聘求职
项目外包
广告发布
网络资源
技术区
网页设计师
界面设计师
WEB程序员
计算机应用
文章正文
» 您的当前位置:
首页
>>
学院
>>
数据库
>>
SQLServer
SQL数据库完全手册_1
来源:
互联网
| 时间:2005-10-04 | 浏览:
相关评论
|
报告错误
|
发布文章
【字号:
大
|
中
|
小
】 【背景色
】
SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
##1    二、SQL数据库数据体系结构
    SQL数据库的数据体系结构基本上是***结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^:
##1    三、SQL语言的组成
    在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
    1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
    2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
    3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
    4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
    5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
    6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
##1    四、对数据库进行操作
    SQL包括了所有对数据库的操作,主要是由4个部分组成:
    1.数据定义:这一部分又称为“SQL  DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
    2.数据操纵:这一部分又称为“SQL  DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
    3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
    4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
    下面我们将分别介绍:
##2    (一)数据定义
    SQL数据定义功能包括定义数据库、基本表、索引和视图。
    首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
    1.数据库的建立与删除
    (1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
    CREATE   DATABASE  <数据库名>  [其它参数]
    其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。[其它参数]因具体数据库实现系统不同而异。
    例:要建立项目管理数据库(xmmanage),其语句应为:
    CREATE   DATABASE  xmmanage
    (2) 数据库的删除:将数据库及其全部内容从系统中删除。
    其语句格式为:DROP   DATABASE  <数据库名>
    例:删除项目管理数据库(xmmanage),其语句应为:
    DROP   DATABASE  xmmanage
    2.基本表的定义及变更
    本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
    (1)基本表的定义:基本表是非导出关系,其定义涉及表名、列名及数据类型等,其语句格式为:
    CREATE   TABLE[<数据库名>.]<表名>
    (<列名>   数据类型  [缺省值]  [NOT  NULL / NULL]
    [,<列名>   数据类型  [缺省值]  [NOT  NULL / NULL]]......
    [,UNIQUE  (列名[,列名]......)]
    [,PRIMARY   KEY(列名)]
    [,FOREIGN   KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]......)]
    [,CHECK(条件)]  [其它参数])
    其中,〈数据库名〉.]指出将新建立的表存放于该数据库中;
    新建的表由两部分组成:其一为表和一组列名,其二是实际存放的数据(即可在定义表的同时,直接存放数据到表中);
    列名为用户自定义的易于理解的名称,列名中不能使用空格;
    数据类型为上面所介绍的几种标准数据类型;
    [NOT  NULL/NULL]指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是“不知道”或“无意义”的值,值得注意的是数据“0”和空格都不是空值,系统一般默认允许为空值,所以当不允许为空值时,必须明确使用NOT  NULL;
    [,UNIQUE]将列按照其规定的顺序进行排列,如不指定排列顺序,则按列的定义顺序排列;
    [PRIMARY   KEY]用于指定表的主键(即关系中的主属性),实体完整性约束条件规定:主键必须是唯一的,非空的;
    [,FOREIGN  KEY  (列名[,列名]......)  REFERENCE<表名>(列名[,列名]......)]是用于指定外键参照完整性约束条件,FOREIGN  KEY指定相关列为外键,其参照对象为另外一个表的指定列,即使用REFERENCE引入的外表中的列,当不指定外表列名时,系统将默认其列名与参照键的列名相同,要注意的是:使用外键时必须使用参照,另外数据的外键参照完整性约束条件规定:外键的值要么与相对应的主键相同,要么为空值(具体由实现系统不同而异)
    [,CHECK]用于使用指定条件对存入表中的数据进行检查,以确定其合法性,提高数据的安全性。
    例:要建立一个学生情况表(student)
    CREATE  TABLE  student  //创建基本表student
    (st_class  CHAR(8),// 定义列st_class班级,数据类型为8位定长字符串
    st_no  CHAR(10)  NOT  NULL,//定义列st_no学号,类型为10位定长字符串,非空
    st_name  CHAR(8) NOT  NULL,//定义列st_name姓名,类型为8位定长字符串,非空
    st_sex CHAR(2),//定义列st_sex性别,类型为2位定长字符串
    st_age SMALLINT,//定义列st_age年龄,类型为短整型
    PRIMARY  KEY (st_no))//定义st_no学号为主键。
    例:要建立课程设置表(subject)
    CREATE  TABLE  subject//创建基本表subject
    (su_no  CHAR(4) NOT  NULL,// 定义列su_no课号,类型为4位定长字符串,非空
    su_subject CHAR(20) NOT  NULL,// 定义列su_subject课程名,类型为20位定长字符串,非空
    su_credit  INTEGER,// 定义列su_credit学分,类型为长整数
    su_period  INTEGER,//定义列su_period学时,类型为长整数
    su_preno CHAR(4),//定义列su_preno先修课号,类型为4位定长字符串
    PRIMARY  KEY(su_no))//定义su_no课号为主键。
    例:要建立学生选课表(score)
    CREATE TABLE score  //创建基本表score
    (st_no  CHAR(10),//定义列st_no学号,类型为10位定长字符串
    su_no  CHAR(4),//定义列su_no课号,类型为4位定长字符串
    sc_score  INTEGER  NULL,//定义列sc_score,类型为长整形,可以为空值
    FOREIGN  KEY (st_no) REFERENCE  student,//从表student中引入参照外键st_no,以确保本表与表student的关联与同步
    FOREIGN  KEY (suno) REFERENCE  subject)//从表subject中引入参照外键su_no,以确保本表与表subject的关联与同步
    (2)基本表的删除:用以从数据库中删除一个基本表及其全部内容,其语句格式为:
    DROP TABLE[<数据库名>.]表名
    例如:将上面建立的表都删除
    DROP TABLE  student,subject,score
    (3)基本表的修改:在基本表建立并使用一段时间后,可能需要根据实际要求对基本表的结构进行修改,即增加新的属性或删除属性。
    增加属性的语句格式为:
    ALTER TABLE [<数据库名>.]表名 ADD
    (<列名> 数据类型 [缺省值] [NOT  NULL / NULL]
    [,<列名> 数据类型[缺省值][NOT  NULL / NULL]]......
    [,UNIQUE (列名[,列名]......)]
    [,PRIMARY  KEY(列名)]
    [,FOREIGN  KEY(列名[,列名]......) REFERENCE  <表名>(列名[,列名]......)]
    [,CHECK(条件)][其它参数])
    例如:在基本表student中加入列stborn出生日期,数据类型为DATE,且不能为空值
    ALTER  TABLE  student  ADD  (stborn  DATE  NOT  NULL)
    删除属性的语句格式为:
    ALTER  TABLE  [<数据库名>.]表名  DROP
    ( <列名>  数据类型 [缺省值][NOT  NULL / NULL]
    [,<列名>  数据类型 [缺省值][NOT  NULL / NULL]]......)
    例如:将基本表student中的列st_age删除
    ALTER  TABLE student  DROP (st_age)
    3.视图定义与删除
    在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的表,是从现有基本表中抽取若干子集组成用户的“专用表”。这种构造方式必须使用SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在系统的数据中,而并不直接存储视图对应的数据,直到用户使用视图时才去求得对应的数据。
    (1)视图的定义:定义视图可以使用CREATE  VIEW语句实现,其语句格式为:
    CREATE  VIEW  视图名 AS SELECT语句
    从一个基本表中导出视图:
    例:从基本表student中导出只包括女学生情况的视图
    CREATE  VIEW  WOMANVIEW  AS //创建一个视图WOMANVIEW
    SELECT  st_class,st_no,st_name,st_age //选择列st_class,st_no,st_name,st_age显示
    FROM  student //从基本表student引入
    WHERE st_sex=‘女’//引入条件为性别为“女”,注意字符变量都使用单引号引用
    从多个基本表中导出视图:
    例如:从基本表student和score中导出只包括女学生且分数在60分以上的视图
    CREATEVIEW  WOMAN_SCORE  AS //定义视图WOMANSCORE
    SELECT  student.st_class,student.st_no,student.st_name,student.st_age,score.sc_score //有选择性显示相关列
    FROM  student.score //从基本表student和score中引入
    WHERE  student.st_sex=‘女’AND   score.sc_score>=60  AND  student.st_no=score.st_no  //选择条件:性别为“女” 且分数在60分以上。并使用st_no将两表联系起来。
    以后如果进行这一视图的应用,则只需使用语句
    SELECT * FROM WOMAN_SCORE //其中“*”为通配符,代表所有元素
    (2)视图的删除:用于删除已不再使用的视图,其语句格式如下:
    DROP  VIEW  视图名
    例:将上面建立的WOMAN_SCORE视图删除
    DROP  VIEW  WOMAN_SCORE
    4.索引的定义与删除
    索引属于物理存储概念,而不是逻辑的概念。在SQL中抛弃了索引概念,直接使用主键概念。值得一提的是,有些关系DBMS同时包括索引机制和主键机制,这里我们推荐使用主键机制,因为它对系统资源占用较低且效率较高。
    (1)索引的定义:索引是建立在基本表之上的,其语句格式为:
    CREATE [UNIQUE] INDEX  索引名  ON
    [<数据库名>.]表名(列名 [ASC/DESC][,列名 [ASC/DESC]]......)
    这里,保留字UNIQUE表示基本表中的索引值不允许重复,若缺省则表示索引值在表中允许重复;DESC表示按索引键降序排列,若缺省或ASC表示升序排列。
    例:对基本表student中的st_no和st_age建立索引,分别为升序与降序,且索引值不允许重复
    CREATE  UNIQUE  INDEX  STINDEX  ON//创建索引STINDEX
    student(st_no ASC,st_age DESC)//对student中的st_no和st_age建立索引
    (2)索引的删除:
    DROP  INDEX  索引名
    例:删除上面建立的索引STINDEX
    DROP  INDEX  STINDEX
##2    (二)数据查询
    SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:
    SELECT  目标表的列名或列表达式集合
    FROM 基本表或(和)视图集合
   [WHERE条件表达式]
   [GROUP BY列名集合
   [HAVING组条件表达式]]
   [ORDER BY列名[集合]…]
    整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。
上一篇:
SQL语言快速入门之三
下一篇:
万维网创始人博客处女秀
我要投稿
打印本文
推荐本文
加入收藏
返回顶部
关闭窗口
01-12
SQL Server 2005数据库分区数据的移入和移出
12-27
SQL Server 2008之备份压缩
12-02
SQL Server存储过程命名标准
11-21
SQL Server数据库触发器安全隐患解析
11-21
SQL Server数据备份处理过程探讨
如何上传.SQL文件到远程主机并用...
ACCESS改为SQL需要注意哪几个地方
SQL Server 2005 SP1发布
SQLServer数据库安全规划全攻略
Sql Server 常用函数
more..
» 相 关 评 论
验证码:
站长吧首页
-
网站运营
-
站长学院
-
SEO查询
-
站长论坛
-
建站服务
-
联系本站
-
广告/业务
©2005-2006 站长吧 Master8.NET All rights reserved 陕ICP备05010609号
九州未来科技提供服务器支持
| 网站空间 | 虚拟主机