当前位置:文档之家› SQL数据库完全操作手册

SQL数据库完全操作手册

SQL数据库完全操作手册
SQL数据库完全操作手册

SQL数据库完全操作手册

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 studen t.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(降序)排列。

在WHERE子句中的条件表达式F中可出现下列操作符和运算函数:

算术比较运算符:<,<=,>,>=,=,<>。

逻辑运算符:AND,OR,NOT。

集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。

集合成员资格运算符:IN,NOT IN

谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。

聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。

F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。

上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。

下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:

1.无条件查询

例:找出所有学生的的选课情况

SELECT st_no,su_no

FROM score

例:找出所有学生的情况

SELECT*

FROM student

“*”为通配符,表示查找FROM中所指出关系的所有属性的值。

2.条件查询

条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。例:找出任何一门课成绩在70以上的学生情况、课号及分数

SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score

FROM student,score

WHERE score.score>=70 AND score.stno=student.st_no

这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。

例:找出课程号为c02的,考试成绩不及格的学生

SELECT st_no

FROM score

WHERE su_no=‘c02’AND score<60

3.排序查询

排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。例:查找不及格的课程,并将结果按课程号从大到小排列

SELECT UNIQUE su_no

FROM score

WHERE score<60

ORDER BY su_no DESC

4.嵌套查询

嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名

SELECT st_no,st_name

FROM student

WHERE stno IN (SELECT st_no

FROM score

WHERE su_no=‘c03’ AND score>80 )

这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。

5.计算查询

计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:

COUNT(*) 计算元组的个数

COUNT(列名) 对某一列中的值计算个数

SUM(列名) 求某一列值的总和(此列值是数值型)

AVG(列名) 求某一列值的平均值(此列值是数值型)

MAX(列名) 求某一列值中的最大值

MIN(列名) 求某一列值中的最小值

例:求男学生的总人数和平均年龄

SELECT COUNT(*),AVG(st_age)

FROM student

WHERE st_sex=‘男’

例:统计选修了课程的学生的人数

SELECT COUNT(DISTINCT st_no)

FROM score

注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DISTINCT进行过滤。

##2 (三) 数据更新

数据更新包括数据插入、删除和修改操作。它们分别由INSERT语句,DELETE语句及UPDATE语句完成。这些操作都可在任何基本表上进行,但在视图上有所限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,上述三种操作都不能进行。

1.数据插入

将数据插入SQL的基本表有两种方式:一种是单元组的插入,另一种是多元组的插入。单元组的插入:向基本表score中插入一个成绩元组(100002,c02,95),可使用以下语句:INSERT INTO score(st_no,su_no,score) VALUES(‘100002’,‘c02’,95)

由此,可以给出单元组的插入语句格式:

INSERT INTO表名(列名1[,列名2]…) VALUES(列值1[,列值2]…) 其中,列名序列为要插入值的列名集合,列值序列为要插入的对应值。若插入的是一个表的全部列值,则列名可以省略不写如上面的(st_no,su_no,score)可以省去;若插入的是表的部分列值,则必须列出相应列名,此时,该关系中未列出的列名取空值。

多元组的插入:这是一种把SELECT语句查询结果插入到某个已知的基本表中的方法。

例如:需要在表score中求出每个学生的平均成绩,并保留在某个表中。此时可以先创建一个新的基本表stu_avggrade,再用INSERT语句把表score中求得的每一个学生的平均成绩(用SELECT求得)插入至stu_avggrade中。

CREATE TABLE stu_avggrade

(st_no CHAR(10) NOT NULL,//定义列st_no学号,类型为10位定长字符串,非空

age_grade SMALLINT NOT NULL )// 定义列age_grade平均分,类型为短整形,非空INSERT INTO stu_avggrade(st_no,age_grade)

SELECT st_no,AVG(score)

FROM score

GROUP BY st_no //因为要求每一个学生所有课程的平均成绩,必须按学号分组进行计算。

2.数据删除

SQL的删除操作是指从基本表中删除满足WHERE<条件表达式>的记录。如果没有WHERE 子句,则删除表中全部记录,但表结构依然存在。其语句格式为:

DELETE FROM表名[WHERE 条件表达式]

下面举例说明:

单元组的删除:把学号为100002的学生从表student中删除,可用以下语句:

DELETE FROM student

WHERE st_no=‘100002’//因为学号为100002的学生在表student中只有一个,所以为单元组的删除

多元组的删除:学号为100002的成绩从表score中删除,可用以下语句:

DELETE FROM score

WHERE st_no=‘100002’//由于学号为100002的元组在表score中可能有多个,所以为多元组删除

带有子查询的删除操作:删除所有不及格的学生记录,可用以下语句

DELETE FROM student

WHERE st_no IN

(SELETE st_no

FROM score

WHERE score<60)

3.数据修改

修改语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记录的相应列值。其语句格式如下:

UPDATE 表名 SET 列名=列改变值[WHERE 条件表达式]

例:把c02的课程名改为英语,可以用下列语句:

UPDATE subject

SET su_subject=‘英语’

WHERE su_no=‘c02’

例:将课程成绩达到70分的学生成绩,再提高10%

UPDATE score

SET score=1.1*score

WHERE score>=70

SQL的删除语句和修改语句中的WHERE子句用法与SELECT中WHERE子句用法相同。数据的删除和修改操作,实际上要先做SELECT查询操作,然后再把找到的元组删除或修改。

##2 (四) 数据控制

由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。

1.安全性控制

数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。

存取权控制包括权力的授与、检查和撤消。权力授与和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。

(1)权力授与:权力授与有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:

|CONNECT |

GRANT|RESOURCE|TO 用户名[IDENTIFED BY 口令]

|DBA |

其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授与指定的用户。若要同时授与某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT 命令指定。

另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。

例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授与权力:GRANT CONNECT TO SSE INENTIFIED BY BD1928

GRANT RESOURCE TO SSE

用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:

|SELECT |

|INSERT |

|DELETE |

GRANT|UPDATE(列名1[,列名2]…)|O N|表名 |TO|用户名|[WITH GRANT OPTION]

|ALTER | |视图名| |PUBLIC|

|NDEX |

|ALL |

若对某一用户同时授与多种操作权力,则操作命令符号可用“,”相隔。

PUBLIC 表示将权力授与数据库的所有用户,使用时要注意:

任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他

用户权力。

例:如果将表student的查询权授与所有用户,可使用以下命令:

GRANT SELECT ON student TO PUBLIC

例:若将表subject的插入及修改权力授与用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:

GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION

这里,UPDATE后面跟su_subject是指出其所能修改的列。

(2)权力回收:权力回收是指回收指定用户原已授与的某些权力。与权力授与命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。

DBA专用的权力回收命令格式为:

|CONNECT |

REVOKE|RESOURCE|FROM用户名

|DBA |

用户可用的权力回收命令格式为:

|SELECT |

|INSERT |

|DELETE |

REVOKE|UPDATE(列名1[,列名2]…) |ON|表名 |FROM |用户名|

|ALTER | |视图名| |PUBLIC|

|INDEX |

|ALL |

例:回收用户SSE的DBA权力:

REVOKE DBA FROM SSE

2.完整性控制

数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的[CHECK]子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。

3.事务控制

事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。

SQL提供了事务提交和事务撤消两种命令:

(1)事务提交:事务提交的命令为:

COMMIT [WORK]

事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。

(2)事务撤消:事务撤消的命令是:

ROLLBACK [WORK]

事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。

当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令

SQL还提供了自动提交事务的机制,其命令为:

SET AUTO COMMIT ON

其对应的人工工作方式命令为:

SET AUTO COMMIT OFF

一旦规定了自动提交事务方式,则系统将每条SQL命令视为一个事务,并在命令成功执行完成时自动地完成事务提交。

4.并发控制

数据库作为共享资源,允许多个用户程序并行地存取数据。当多个用户并行地操作数据库时,需要通过并发控制对它们加以协调、控制,以保证并发操作的正确执行,并保证数据库的一致性。

在SQL中,并发控制采用封锁技术实现,当一个事务欲对某个数据对象操作时,可申请对该对象加锁,取得对数据对象的一定控制,以限制其他事务对该对象的操作。其语句格式为:|SHARE |

LOCK TABLE 表名(或表名集合)IN |EXCLUSVE |MODE [NOWAIT]

|SHARE UPDATE|

其中,表名(或表名集合)中指出封锁对象,若为多个表名,则各个表名间以“,”相隔;任选项NOWAIT表示多个用户要求封锁相同的关系时,后来提出的要求会被立即退回去,否则会等待该资源释放。

SHARE表示共享封锁方式;EXCLUSIVE表示独占封锁方式;SHARE UPDAE表示共享更新封锁方式。其中共享封锁方式允许其他事务读同一数据,但防止其他事务对已封锁的表进行更新,该锁主要防止在表的两次查询之间对该表的改动;共享更新封锁SHARE UPDATE是一个行封锁机制,它可改善表级封锁的并行性,它能允许并发事务读和修改一个表中的不同的行;独占封锁方式EXCLUSIVE禁止其他事务获得一个共享锁且禁止其他事务执行任何数据操作语句,即一旦某个运行事务对某个数据对象施加了排它锁,则其他任何事务都不能再对该数据对象施加任何方式的锁,只有处于等待状态。如果不想无限等待,则选择NOWAIT。

PHP(Hypertext Preprocessor,超文本预处理器)是一个递归的缩写名称,它是一种内嵌在HTML页面内的脚本语言。它的功能强大,使用方便,开发难度不大,而且可以免费使用。

简单数据库查询语句

数据查询语言(SELECT语句) 数据操纵语言(INSERT, UPDATE, DELETE语句) 数据定义语言(如CREATE, DROP等语句) 数据控制语言(如COMMIT, ROLLBACK等语句 超详细的SQL语句语法2008-07-11 14:25简单的Transact-SQL查询只包括选择列表、FROM 子句和WHERE子句 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email FROM testtable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出所查询列 它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行, 默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行, 而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable 9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,

基于ER图的数据库设计与简单操作管理信息系统

实验报告 实验名称:基于ER图的数据库设计与简单操作 班级: 姓名: 学号: 实验时间: 2010年5月18日 成绩:指导老师: 一、实验目的: (1能够正确运用数据库的基本理论和方法。 (2熟悉常用关系型数据库的设计和基本操作。 (3熟悉关系数据库规范化设计理论,能够设计并建立科学合理的数据库,正确建立数据库中表与表之间的关系。 (4进一步正确理解数据库设计思路,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。 二、实验设备及主要内容 实验设备:“Microsoft SQL Server”——“企业管理器”和“查询分析器”主要内容: 1.高等院校学生补考管理业务需求描述。高等院校补考管理系统应具备编辑补考学生信息、安排补考时间地点等基本管理功能,具体要求如下:

3对教室的编号、地点和容纳人数进行编辑。 4自动安排补考的时间、地点(即教室。 5录入学生的补考成绩。 6分别按照院系、专业、班级等查询参加补考的学生信息。 7按照补考的时间和地点查询参加补考的学生信息。 8查询和打印补考时间、地点的安排。 9查询和打印补考不及格学生的信息。 2.设计数据库。根据上述业务描述,设计数据库总体方案,明确数据库中表的结构,各表中关键字的设置,表与表之间的关系。 3.根据功能需求,以SQL语句的形式分类列出系统应涉及的数据操作。 4.利用Access、VFP或SQL server建立数据库,并成功实现基本数据操作。 5.提交书面实验报告。 三、实验步骤 步骤一:按照上述要求进行数据库和表的设计。具体包括:领域描述、概念模型用E-R图描述、从E-R图导出关系数据模型。 步骤二:选择Access、VFP或SQL server实现数据库操作。

SQL数据库图书管理系统(完整代码)

作品设计报告书题目:《图书管理系统》 班级网络2012-1班 学号 姓名 课程名称数据库应用技术 指导教师

目录

数据库课程设计报告书 一、设计目标 1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织 和实施。 2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试 运行等工作。 3.培养把所学知识运用到具体对象,并能求出解决方案的能力。 二、数据库存储设计指导思想 在数据库存储设计的无数选择中,简单是系统架构师和DBA 的秘密武器。 简单,有时候就来自于对一个特定的表或表空间没有选择最优I/O 特性,总有这么一种可能,一个富有经验的DBA 拥有高超的存储技能并可以没有时间限制的去为一个非常重要的表或者索引配置一个存储。然而这样做的问题是,就算能达到设计的最佳性能,为了维护原始对象,这也经常造成对一个系统的管理变得更加复杂。好的数据库存储设计的要点是,在一个动态系统上,实现所有目标应该是最初的系统设计的一部分,并应该在数据库运行过程中长期进行。这篇文档简单的最佳实践描述达到了这些目标并且几乎没有性能损失。 三、任务 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语言及查询结果。 2.上机实现。

1.问题描述 1.1背景 随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。 另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。 提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。 1.2数据需求 图书馆管理信息系统需要完成功能主要有: 1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。 2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。 3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。 4.书籍类别信息的查询、修改,包括类别编号、类别名称。 5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。 6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。 7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。 8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。 9.还书信息的输入,包括借书证编号、书籍编号、还书日期。 10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

数据库基础操作语句

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

SQL数据库系统期末试题

. 蚌埠学院2013—2014学年第一学期 《SQL 数据库系统》期末考试试题(A ) 注意事项:1、适用班级:11计算机科学与技术(本1、本2、本3班) 2、本试卷共2页。满分100分。 3、考试时间120分钟。 4、考试方式:闭卷 一、选择题(每小题1分,共25分) 1、在SQL SERVER 中,使用update 语句更新数据库表中的数据,以下说法正确的是( b )。 (A )每次只能更新一行数据 (B )每次可以更新多行数据 (C )如果没有数据项被更新,将提示错误信息 (D )更新数据时,必须带有WHERE 条件子句 2、在SQL Server 2008中,要防止大于100的数据被保存到int 类型的列,可以使用( d )。 (A )主键约束 (B )限制约束 (C )外键约束 (D )检查约束 3、在SQL Server 2008 中,有students(学生)表,包含字段:Sid(学号),SName(姓名),Grade(成绩)。现要将所有学员的成绩加10分。下列SQL 语句正确的是( d )。 (A )update students set Grade=Grade+10 where Sid=1 (B )update * set Grade=Grade+10 (C )update * from students set Grade=Grade=Grade+10 (D )update students set Grade=Grade+10 4、在SQL Server 2008 中,有一个product(产品)表,包含子段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或者“香蕉”的记录,下列语句正确的是( c )。 (A ) SELECT*FROM product ON pname=’苹果’OR pname=’香蕉’ (B ) SELECT*FROM product ON pname=’苹果’ AND pname=’香蕉’ (C ) SELECT*FROM product WHERE pname=’苹果’ OR pname=’香蕉’ (D ) SELECT*FROM product WHERE pname=’苹果’ AND pname=’香蕉’ 5、在SQL Server 2008中,附加数据库操作是指( b )。 (A )把SQL Server 数据库文件保存为其他数据库文件。 (B )根据数据库物理文件中的信息,把数据库在SQL Server 2008中恢复。 (C )把所有该数据库表的数据清空。 (D )把数据库删除掉。 6、在SQL Sever 2008中,假设表 users 包含主键列 id ,那么执行“Update users SET id=20 WHERE id=30”,执行的结果可能有( c )。 (A )如果表中含有id 为30的记录,但不包含id 为20的记录,则更新失败。 (B )执行出错,因为主键列不可以被更新。 (C )如果表中同时含有id 为20和id 为30的记录,则更新失败。 (D )如果表中不包含id 为20 和id 为30 的记录,则更新一行记录。 7、在SQL Sever 2008中,查找 student 表中所有身份证号码CardNo 的前三位为010或020的记录,以下语句正确的是( c )。 (A )select * from student where cardno like ‘010%’ and cardno like ‘020%’ (B )select * from student where cardno like ‘010%’ or ‘020%’ (C )select * from student where cardno like ‘0[1,2]0%’ (D )select * from student where cardno like ‘0(1,2)0%’ 8、在SQL Sever 2008中,学生表student 中包含以下字段:学生编号 sid (主键),学生姓名 sName ,现在查询所有姓名重复的记录,以下语句正确的是( b )。 (A )select * from student where count(sid)>1 (B )select a. * from student a, student b where a.sname=b.sname (C )select a.* from student a, student b where a.sname=b.sname and a.sid<>b.sid (D )select * from student group by sName where count(sid)>1 9、在SQL Sever 2008 中,有系统数据库和用户数据库,下列不属于系统数据库的是( d )。 (A ) master (B ) model (C ) msdb (D ) pubs 10、在SQL Server 2008中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,要求( a )。 装 订 线 内 不 要 答 题

MySQL数据库系统及应用综合练习

一、单项选择题(只有一个正确答案) 【1】执行语句“SELECT '2008-01-20'+ INTERVAL 2 DAY; ”结果为 A: 2008-01-22 B: 2010-01-20 C: 2008-02-11 D: 2008-03-20 答案: A 【2】下列哪个是不正确的MySQL的变量命名方式 A: _name B: n$ame C: name D: name! 答案: D 【3】字符串‘hel’lo’输出结果为 A: hel'lo B: 'hello' C: hel\'lo D: 'hel lo' 答案: A 【4】关系数据库模型是以下哪种方式组织数据结构 A: 树状 B: 文本 C: 二维表 D: 网状 答案: C 【5】使用下列哪个语句可以删除表中所有数据,但保留表结构 A: truncate table B: rename table C: delete D: drop talbe 答案: A 【6】E-R图设计属于()。 A: 概念结构设计 B: 物理结构设计 C: 逻辑结构设计 D: 需求分析设计 答案: B 【7】执行语句“GREATEST(10,9,128,1)”结果为()。 A: 9

B: 10 C: 128 D: 1 答案: C 【8】在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则称这个属性为 A: 数据项 B: 候选码 C: 主键 D: 主键值 答案: C 【9】数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。这种功能称为()。 A: 数据控制功能 B: 数据操纵功能 C: 数据管理功能 D: 数据定义功能 答案: B 【10】1999年10月1日在mysql中表示方法错误的是: A: "1999-10-01" B: "1999%10%01" C: "1999\10\01" D: "1999/10/01" 答案: D 【11】两个表中的行按照给定的条件进行拼接而形成新表的运算为 A: 连接 B: 投影 C: 集合 D: 选择 答案: A 【12】向表中插入一个行新的纪录的命令为 A: replace into B: insert into C: replace from D: insert from 答案: B 【13】\n在MySQL中表示 A: " B: 退格符 C: 回车符

2013-12--数据库复习题(精简)

一、选择题 1.数据库系统与文件系统的主要区别是。 A.数据库系统复杂,而文件系统简单; B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以 解决; C.文件系统只能管理程序文件,而数据库系统可以管理各类文件; D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量。 2.同一个关系模型的任意两个元组值。 A.不能全同; B.可以全同; C.必须全同; D.以上都不是。 3.授权编译系统和合法性检查机制一起组成了子系统。 A.安全性; B.完整性; C.并发控制; D.恢复。 4.事务的ACID性质中,关于原子性(atomicity)的描述正确的是。 A. 指数据库的内容不出现矛盾的状态。 B. 若事务正常结束,即使发生故障,更新结果也不会从数据库中消失。 C. 事务中的所有操作要么都执行,要么都不执行。 D. 若多个事务同时进行,与顺序实现的处理结果是一致的。 5.如果事务T获得了数据项Q上的排它锁,则T对Q 。 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读不能写 6.为了防止一个用户的工作不适当地影响另一个用户,应该采 取。 A 完整性控制 B 安全性控制 C 并发控制 D 访问控制 7.SQL语言中,删除一个表的命令是。 A DELETE B DROP C CLEAR D REMORE 8.SQL语言中,删除记录的命令是。 A DELETE B DROP C CLEAR D REMORE 9.设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为 W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE 。 A ‘_ _ W _ %’ B ‘_ % W _ _’ C ‘_ W _ _’ D ‘_ W _ %’ 10.学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8), 性别(XB,C,2)班级(BJ,C,6),用Insert 命令向XS表添加一条新记

SQL数据库管理系统 A

绝密★启用前学院 学年第二学期期末考试 级专业()《SQL数据库管理系统》试卷A 一、选择题(共20分,每题1分) 1、SQL-server数据库文件的扩展名为()。 A、.ndf B、.ldf C、.mdb D、.mdf 2、数据库文件初始大小,在SQL- server 2000 中默认值为()。 A、1MB B、2MB C、3MB D、4MB 3、SQL- server 2000辅助数据库文件的扩展名为()。 A、.ldf B、.ndf C、.mdb D、.mdf 4、创建用户数据库的Transact-SQL命令是()。 A、create table B、create C、create database D、drop 5、使用Transact-SQL语句创建数据库时,()关键字是用于指定数据库的事务日志文件。 A、log on B、primary C、filename D、filegrowth 6、在SQL中,create table为( )数据库中基本表结构的命令。 A、建立 B、修改 C、删除 D、查询 7、在SQL中,alter table为( )数据库中基本表结构的命令。 A、建立 B、修改 C、删除 D、查询 8、Microsoft公司的SQLServer2000数据库管理系统一般只能运行于( )。 A、Windows平台 B、UNIX平台 C、LINX平台 D、NetWare平台 9、SQLServer2000标准版不支持的操作系统是( )。 A、Windows 2000 Server B、Windows NT Server C、Windows98 D、Windows 2000 Advanced Server 10、在SQL Server2000中.( )为用户建立数据库提供模板。 A、master B、model C、tempdb D、msdb 11、SQL Server系统中的所有系统级信息存储于哪个数据库( )。 A、master B、model C、tempdb D、msdb 12、下列语句中正确的是()。表 score(sti_id,names,math,English,VB) A、select stu_id,sum(math) from score B、select sum(math),avg(VB) from score C、select * ,sum(english) from score D、delete * from score 13、表设计器的“允许空”单元格用于设置该字段是否可输入空值,实际上就是创建该字段的() 约束。 A、主键 B、外键 C、NULL D、CHECK 14、在Transact-SQL语句中,用以修改数据库结构的命令是()。 A、create database B、drop database C、alter database D、alter table 15、在Transact-SQL语句中,用以删除数据库的命令是()。 A、create database B、drop database C、alter database D、drop table 16、整数数据类型int的存储大小为()。 A、1B B、2B C、3B D、4B 17、money型数据的存储大小为()。 A、2B B、4B C、8B D、10B 18、SQL-server数据库中每个表至多可以有()列。 A、1024 B、512 C、256 D、65536 19、数据表的名称最长不超过()个字符。 A、64 B、128 C、256 D、512 20、每个表允许存在()个住键约束。 A、1 B、2 C、3 D、4 二、填空题(共20分,每空1分) 1、数据库系统由__________和__________________两部分组成。 2、在SQL中,主码约束的关键字为__________,外码约束的关键字为____________。 3、数据库管理系统的基本功能包括____________、____________、____________和___________。 4、数据完整性可以分为____________、___________、____________和用户自定义完整性。 5、在SQL中,create view、update和drop view命令分别为_______、_______和_______视图的 命令。 6、在新版的SQL中,表之间的连接共有三种方式,对应的关键字分别为_____________、 ______________和right join。 7、SQL Server采用的结构化查询语言称为__________________。 8、一般可以使用______命令来标识 Transact-SQL批处理的结束。 9、SQL Server中的整数类型包括bigint、________、___________和tinyint四种。 三、简答题(共20分,每个5分) 1、SQL-server注释语句有哪几种符号?各用于什么情况? 2、简述索引的分类。 3、什么叫存储过程?存储过程分为哪三类?

BCB讲座第十五讲简单数据库查询操作.

简单数据库查询操作 上一讲我们学习了数据库编程的基础知识,并对 MP3Collect 进行了一番改造,使其具有数据库访问能力。在本讲中,我们首先设置三个数据库元件 Query1、DataSource1和 DBGrid1的属性,接下来学习如何通过 Query 控件实现简单的数据库查询操作。 设置控件属性 Query1控件的用途是查询数据库,获取可以显示在窗体中的数据。 Query 控件和 Table 控件一样,它们都是从 VCL 类 TDataSet (数据集元件中继承来的,都代表数据库中一组记录的集合。不同的是, Table 控件代表库中实际存在的一个数据表对象, 而 Query 控件则代表一次查询的结果。 Query 控件支持通过 SQL 进行查询,因此比 Table 控件具有更大的灵活性,它可以同时访问多个数据表, 可以灵活访问数据表中的行和列,可以实现十分复杂的条件查询。 SQL 的全称是结构化查询语言,它是一种标准的数据库查询语言,具有自己的关键字(SQL 中的关键字是不分大小写的, SELECT 和 Select 的作用是相同的和语法,典型的 SQL 查询语句如下所示: SELECT [字段名 ] FROM [数据表名 ] WHERE [条件子句 ] 其中 SELECT 、 FROM 和 WHERE 都是 SQL 的关键字。 SELECT 代表查询操作, “字段名”表示返回的记录集中所包含的字段,字段名可以使用通配符 *,表示查询的数据表中的所有字段, “数据表名”表示在哪个数据表中进行查询, “条件子句”为查询的条件。 了解了 SQL 的基本语法后, 下面我们来设置 Query1控件的 SQL 属性。在对象监视器中双击 Query1控件的 SQL 属性(该属性为 TStrings*类型 ,打开字符串列表编辑器,在其中输入这样两句“ Select * From MP3Info”和“ Order by FileName ASC”。注意第二句要另起一行,这样在后面的编程中可以很方便地改变记录的排序方式。这两句合在一起的意思是获取 MP3Info 数据表中的所有记录,并以 FileName 字段为基

SQL数据库系统期末试题

蚌埠学院2013—2014学年第一学期 《SQL 数据库系统》期末考试试题(A ) 注意事项:1、适用班级:11计算机科学与技术(本1、本2、本3班) 2、本试卷共2页。满分100分。 3、考试时间120分钟。 4、考试方式:闭卷 一、选择题(每小题1分,共25分) 1、在SQL SERVER 中,使用update 语句更新数据库表中的数据,以下说法正确的是( b )。 (A )每次只能更新一行数据 (B )每次可以更新多行数据 (C )如果没有数据项被更新,将提示错误信息 (D )更新数据时,必须带有WHERE 条件子句 2、在SQL Server 2008中,要防止大于100的数据被保存到int 类型的列,可以使用( d )。 (A )主键约束 (B )限制约束 (C )外键约束 (D )检查约束 3、在SQL Server 2008 中,有students(学生)表,包含字段:Sid(学号),SName(姓名),Grade(成绩)。现要将所有学员的成绩加10分。下列SQL 语句正确的是( d )。 (A )update students set Grade=Grade+10 where Sid=1 (B )update * set Grade=Grade+10 (C )update * from students set Grade=Grade=Grade+10 (D )update students set Grade=Grade+10 4、在SQL Server 2008 中,有一个product(产品)表,包含子段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或者“香蕉”的记录,下列语句正确的是( c )。 (A ) SELECT*FROM product ON pname=’苹果’OR pname=’香蕉’ (B ) SELECT*FROM product ON pname=’苹果’ AND pname=’香蕉’ (C ) SELECT*FROM product WHERE pname=’苹果’ OR pname=’香蕉’ (D ) SELECT*FROM product WHERE pname=’苹果’ AND pname=’香蕉’ 5、在SQL Server 2008中,附加数据库操作是指( b )。 (A )把SQL Server 数据库文件保存为其他数据库文件。 (B )根据数据库物理文件中的信息,把数据库在SQL Server 2008中恢复。 (C )把所有该数据库表的数据清空。 (D )把数据库删除掉。 6、在SQL Sever 2008中,假设表 users 包含主键列 id ,那么执行“Update users SET id=20 WHERE id=30”,执行的结果可能有( c )。 (A )如果表中含有id 为30的记录,但不包含id 为20的记录,则更新失败。 (B )执行出错,因为主键列不可以被更新。 (C )如果表中同时含有id 为20和id 为30的记录,则更新失败。 (D )如果表中不包含id 为20 和id 为30 的记录,则更新一行记录。 7、在SQL Sever 2008中,查找 student 表中所有身份证号码CardNo 的前三位为010或020的记录,以下语句正确的是( c )。 (A )select * from student where cardno like ‘010%’ and cardno like ‘020%’ (B )select * from student where cardno like ‘010%’ or ‘020%’ (C )select * from student where cardno like ‘0[1,2]0%’ (D )select * from student where cardno like ‘0(1,2)0%’ 8、在SQL Sever 2008中,学生表student 中包含以下字段:学生编号 sid (主键),学生姓名 sName ,现在查询所有姓名重复的记录,以下语句正确的是( b )。 (A )select * from student where count(sid)>1 (B )select a. * from student a, student b where a.sname=b.sname (C )select a.* from student a, student b where a.sname=b.sname and a.sid<>b.sid (D )select * from student group by sName where count(sid)>1 9、在SQL Sever 2008 中,有系统数据库和用户数据库,下列不属于系统数据库的是( d )。 (A ) master (B ) model (C ) msdb (D ) pubs 10、在SQL Server 2008中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,要求( a )。 装 订 线 内 不 要 答 题

SQLSERVER教程(数据库应用部分)

第1章 SQL Server 初步 §1.1 SQL Server的简介 1.1.1 什么是SQL Server SQL:Structured Query Language SQL SERVER是一个以客户/服务器(c/s)模式访问、使用Transact-SQL语言的关系型数据库管理子统(RDBMS)。 SQL Server是一种基于网络的大型数据库软件。 主要是用SQL语言来管理、修改、和修改数据库。 主要运算在WINNT、WIN2000、也可运行在WIN9X上的一种DBMS。 1.1.2 SQL Server 2000的主要版本及发布时间 1.1. 2.1 主要版本 有个人(Personal)版、企业版(EnterPrise)、标准版和开发版等。 个人版:最多连接5个用户,可安装在WINDOWS 98、XP、WIN2000。 企业版:可连接1000个用户,需安装在WIN2000服务版上。 1.1. 2.2 SQL Server 2000的发布时间 1988年 MICROSOFT&SYBASE合作开发 1993年NT3.1平台上的SQL SERVER 4.2 1994年中止合作独自开发 1995年 SQL SERVER 6.0 1996年 SQL SERVER 6.5 1998年 SQL SERVER 7.0 2000年 SQL SERVER 2000 2005年 SQL SERVER 2005 SQL SERVER 2008将于2008年初上市

1.1.3 SQL Server的安装 运行安装盘上的AUTORUN.EXE。 1.1.4 SQL语言的特点 1、SQL具有自含式与嵌入式两种形式 ?交互式SQL:一般DBMS都提供联机交互工具,用户可直接键入SQL命令对数据库进行操作由DBMS来进行解释 ?嵌入式SQL:能将SQL语句嵌入到高级语言(宿主语言),使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力,一般需要预编译,将嵌入的SQL 语句转化为宿主语言编译器能处理的语句 ? SQL的语法结构基本一致 2、SQL具有语言简洁、易学易用的特点 3、SQL支持三级模式结构 一个SQL数据库的总体逻辑结构是基本表(Table)的集合,对应于概念模式SQL数据库的底层存储结构采用文件,一个或几个表对应一个存储文件,以及索引文件,对应内模式 用户所见的数据结构是视图(View),用户可直接操作的表,可为视图或部分基本表。对应外模式

MYSQL数据库基本操作详细教程

MYSQL数据库 学习目标: ●掌握MYSQL基本知识 ●学习数据库管理和操作 ●掌握数据库设计方法 ●熟练运用SQL编程语言 基本概念 MYSQL数据库是关系型数据库。 关系型:使用一个关系,来表示实体信息和实体之间的联系。关系:就是二维表,有行有列的表格。 这两张表通过班级名称关联起来。 关系型数据库:就是由二维表及其之间的联系组成的数据组织。 同一个表中数据结构完全一致。 数据是由记录组成 记录是由字段组成。 SQL:结构化查询语言 专门用于处理关系型数据库编程语言。 PHP也是编程语言 变量,流程控制,函数

数据库服务器的结构 DBS = DBMS + DB 数据库系统= 数据库管理系统+ 数据库(数据) 命令行客户端

数据在服务器上是如何存储的? 操作服务器 通过服务管理来操作服务器 开始->运行-> 3306是MYSQL服务程序的默认端口号 可以用netstat –an命令查看服务是否启动

命令行命令控制服务器的启动和关闭 Net start mysql Net stop mysql 错误原因:没有权限 解决办法:用管理员方式启动命令行窗口 C/S, client / server客户端/服务器方式访问数据库命令行客户端工具

流程: 1.连接和认证,提供4个参数,分别是主机地址,端口号,用户名,密码 2.向MYSQL数据库服务器发送SQL 3.MYSQL服务器接收并执行SQL,并且把结果返回给客户端 4.客户端对结果进行显示 5.断开服务器连接。Exit, quit, \q 2,3,4这几步可以循环执行 知识: 非关系型数据库,NOSQL,not only sql 不仅仅是SQL 代表:redis, mongodb 数据存储有点象数组,key/value SQL语言 存储数据: 首先建立数据库 之后建立数据表(字段定义) 操作数据 数据有哪些操作 CURD CREATE UPDATE READ DELETE(DROP)

MySQL数据库系统及应用综合练习

一、单项选择题(只有一个正确答案) 【1】执行语句“ SELECT '2008-01-20'+ INTERVAL 2 DAY; ”结果为 A: 2008-01-22 B: 2010-01-20 C: 2008-02-11 D: 2008-03-20 答案: A 【2】下列哪个是不正确的MySQL的变量命名方式 A: @_name B: @n$ame C: @name D: @name! 答案: D 【3】字符串‘ hel ' lo '输出结果为 A: hel'lo B: 'hello' C: hel\'lo D: 'hel lo' 答案: A 【4】关系数据库模型是以下哪种方式组织数据结构 A: 树状 B: 文本 C: 二维表 D: 网状 答案: C 【5】使用下列哪个语句可以删除表中所有数据, 但保留表结构 A: truncate table B: rename table C: delete D: drop talbe 答案: A 【6 】E-R 图设计属于()。 A: 概念结构设计 B: 物理结构设计 C: 逻辑结构设计 D: 需求分析设计答案: B 【7】执行语句“ GREATEST(10,9,128,1)”结果为()。 A: 9

B: 10 C: 128 D: 1 答案: C 【8】在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则称这个 属性为 A: 数据项 B: 候选码 C: 主键 D: 主键值 答案: C 【9】数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。 这种功能称为()。 A: 数据控制功能 B: 数据操纵功能 C: 数据管理功能 D: 数据定义功能 答案: B 【10 】1999 年10 月1 日在mysql 中表示方法错误的是: A: "1999-10-01" B: "1999%10%01" C: "1999\10\01" D: "1999/10/01" 答案: D 【11 】两个表中的行按照给定的条件进行拼接而形成新表的运算为 A: 连接 B: 投影 C: 集合 D: 选择 答案: A 【12 】向表中插入一个行新的纪录的命令为 A: replace into B: insert into C: replace from D: insert from 答案: B 【13】\n在MySQL中表示 A: " B: 退格符 C: 回车符

SQL数据库图书管理系统(完整代码)

广西交通职业技术学院信息工程系作品设计报告书题目:《图书管理系统》 班级网络2012-1班 学号 20120404026 姓名唐张森 课程名称数据库应用技术 指导教师乐文行 二O一三年六月

目录

数据库课程设计报告书 一、设计目标 1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织 和实施。 2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试 运行等工作。 3.培养把所学知识运用到具体对象,并能求出解决方案的能力。 二、数据库存储设计指导思想 在数据库存储设计的无数选择中,简单是系统架构师和DBA 的秘密武器。 简单,有时候就来自于对一个特定的表或表空间没有选择最优I/O 特性,总有这么一种可能,一个富有经验的DBA 拥有高超的存储技能并可以没有时间限制的去为一个非常重要的表或者索引配置一个存储。然而这样做的问题是,就算能达到设计的最佳性能,为了维护原始对象,这也经常造成对一个系统的管理变得更加复杂。好的数据库存储设计的要点是,在一个动态系统上,实现所有目标应该是最初的系统设计的一部分,并应该在数据库运行过程中长期进行。这篇文档简单的最佳实践描述达到了这些目标并且几乎没有性能损失。 三、任务 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语言及查询结果。 2.上机实现。

SQL-入门新手教程(重要)

SQL-入门新手教程(重要)

SQL 是用于访问和处理数据库的标准的计算机语言。 什么是SQL? ?SQL 指结构化查询语言 ?SQL 使我们有能力访问数据库 ?SQL 是一种ANSI 的标准计算机语言编者注:ANSI,美国国家标准化组织SQL 能做什么? ?SQL 面向数据库执行查询 ?SQL 可从数据库取回数据 ?SQL 可在数据库中插入新的纪录 ?SQL 可更新数据库中的数据 ?SQL 可从数据库删除记录 ?SQL 可创建新数据库 ?SQL 可在数据库中创建新表 ?SQL 可在数据库中创建存储过程 ?SQL 可在数据库中创建视图 ?SQL 可以设置表、存储过程和视图的权限 SQL 是一种标准- 但是... SQL 是一门ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的SQL 语言,但是为了与ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。注释:除了SQL 标准之外,大部分SQL 数据库程序都拥有它们自己的私有扩展! 在您的网站中使用SQL 要创建发布数据库中数据的网站,您需要以下要素: ?RDBMS 数据库程序(比如MS Access, SQL Server, MySQL) ?服务器端脚本语言(比如PHP 或ASP) ?SQL ?HTML / CSS

相关主题
文本预览
相关文档 最新文档