数据库管理系统中的SQL语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库管理系统中的SQL语言

SQL的9条核心命令动词:

SELECT 数据查询

CREATE/DROP/ALTER 数据定义

INSERT/UPDATE/DELETE 数据操纵

GRANT/REVOKE 数据控制

数据库的定义

SQL的作法:CREATE DATABASE <数据库文件名>

VFP的作法:无直接创建数据库的SQL命令

数据库的管理

1、显示数据库信息

SP_HELPDB [数据库名]

2、配置数据库

SP_DBOPTION['数据库名'][,'选项名'][,'值']

3、重新命名

SP_RENAMEDB'原名','新名'

4、删除数据库

DROP DATABASE 数据库名

数据表的定义

在SQL Server 2000和Visual FoxPro中都可以使用SQL语言定、操作管理和删除数据表

SQL基本表作法:CREATE TABLE [数据库名,[所有者,]]<表名>

VFP基本表作法:CREATE TABLE|DBF <表名>[FREE](<字段名1><类型>(<长度>[,<小数位数>])

数据表的管理

1、查看表的结构

SQL作法:SP_HELP[[@OBJNAME=]NAME]

2、修改表结构

SQL作法:ALTER TABALE 表名

ADD |ALTER COLUMN | DROP COLUMN <字段名1>[类型[(长度)]]

[ NULL] [ NOT NULL]

VFP作法:ALTER TABALE 表名

ADD |ALTER [COLUMN ]<字段名1><类型>(<长度>[,<小数位数>]

[ NULL] [ NOT NULL]

3、表的删除

SQL作法和VFP作法相同

DROP TABALE <表名>

4、数据的插入

SQL作法:INSERT [INTO]<表名>[(列名)] VALUES (表达式)

VFP作法:INSERT INTO <表名>(<字段名1>[,<字段名2>]…)VALUES (<表达式1>,<表达式2>]…)

5、数据的更新

SQL作法:UPDATE <表名>SET 列名=<表达式| DEFAULT | NULL>[,…]

[WHERE <条件>]

VFP作法:UPDATE [库名!] <表名>SET 字段=<表达式>[,…]

[WHERE <条件>]

6、数据的删除

SQL作法:DELETE [FROM] <表名>[WHERE <条件>]

VFP作法:DELETE FROM <表名>[WHERE <条件>]

索引的建立与删除

索引的创建

SQL作法:CAEATE [UNIQUE] [ CLUSTERED] INDEX <索引名>ON <表名>

VFP作法:无创建索引的SQL语句

索引的删除

SQL作法:DROP INDEX <表名>. <索引名>[,…]

VFP作法:无

视图的定义与删除

定义视图

SQL作法:CREATE VIEW <视图名>[(列名1, 列名2[,…])]

[WITH ENCRYRTION]

AS查询语句

[WITH CHECK OPTION]

VFP作法:CREATE VIEW <视图名>[(列名[,列名…])] AS 任意SELECT 语句

视图的删除

SQL作法:DROP VIEW <视图名>[,…]

VFP作法:DROP VIEW <视图名>

SQL语言的数据查询功能

SQL中SELECT作法:SELECT [ALL | DISTINCT] <[表名.]列名表达式| [表名.] *>[ AS 列标题] [,…] FROM <表名或视图名>[,…]

[WHERE <条件表达式>]

VFP中SELECT作法:SELECT [ALL | DISTINCT] [别名.]<字段表达式>[ AS 列名][,…]

FROM [库名!] <表名或视图名>[ [AS] 本地别名]

简单查询

1、查询单表所有字段

SQL作法和VFP作法相同

SELECT *FROM 表名

2、查询数据表的指定列

EG:

在QL Server 2000中查找表STUDENT1中XH、XM、CJ三列的全部行,并将CJ列用“成绩”标题表示SQL作法:SELECT XH、XM、CJ AS 成绩FROM STUDENT1

在Visual FoxPro中,查询课程KC的KM、XF字段的全部记录,并将KM字段用“课程名”表示

VFP作法:SELECT KM AS 课程名,XF FROM KC

3、使用列表达式查询

EG:

在QL Server 2000中,查询表STUDENT1中XM列及4门课程的平均成绩,并且查询每人的出生年份

SQL作法:SELECT XM ,ROUND (CJ/4,1) AS 平均成绩, YEAR (GETDATE ())-NL AS 出生年份FROM STUDENT1

在Visual FoxPro中,查询课程表KC的KH、KM、XF的全部记录,并将XF字段值加1用“总学分”表示

VFP作法:SELECT KH、KM、XF+1 AS 总学分FROM KC

4、不输出重复行的查询

EG:

在QL Server 2000中,查询表STUDENT1全部行的XB和NL列值,再查询不符合重复行的情况

SQL作法:SELECT XB,NL FROM STUDENT1

在Visual FoxPro中,查询课程表KC的XF字段的全部记录,不显示重复记录

VFP作法:SELECT DISTINCT XF FROM KC

5、查询结果排序输出

EG:

在QL Server 2000中,查询表STUDENT1时要求先按年龄由小到大,再按总平均成绩由大到小显示学生信息

SQL作法:SELECT *FROM STUDENT1 ORDER BY NL,CJ/4 DESC

在Visual FoxPro中,查询课程表KC中XF按降序排列,KH按升序排列后的的结果

VFP作法:SELECT *FROM KC ORDER BY XF DESC,KH

6、只输出部分行的查询

EG:

在QL Server 2000中,查询表STUDENT1时要求先按年龄由小到大排序后显示前3条学生信息,或显示前60%记录SQL作法:SELECT TOP *3 FROM STUDENT1 ORDER BY NL

SELECT TOP 60 PERCENT *FROM STUDENT1 ORDER BY NL

在Visual FoxPro中,只显示KC 表排序后的70%的记录,再显示前3条记录

VFP作法:SELECT *FROM KC ORDER BY XF DESC TOP 70 PERCENT

SELECT *FROM KC ORDER BY XF DESC TOP 3

7、满足逻辑条件的查询

EG:

在QL Server 2000中,查询表STUDENT1中总成绩大于等于300分的男学生

SQL作法:SELECT *FROM STUDENT1 WHERE CJ>=300 AND XB='男'

在Visual FoxPro中,查询课程表KC中XF字段值不为5的全部记录

VFP作法:SELECT *FROM KC WHERE XF!=5

8、查询含有空值NULL的记录

语法格式:IS NULL / IS NOT NULL

EG:

在QL Server 2000中,查询表STUDENT1中性别XB为空的行

SQL作法和VFP作法相同:

SELECT *FROM STUDENT1 WHERE XB IS NULL

9、控制输出方向

EG:

在QL Server 2000中,查询表STUDENT1中只有女生数据的子集作为查询结果备份

SQL作法:SELECT *INTO STUDENT_A FROM STUDENT1 WHERE XB='女'

在Visual FoxPro中,查询KC表所有字段的全部记录,并用打印机方式输出

VFP作法:SELECT *FROM KC TO PRINTER

10、使用统计(聚合)函数查询

EG:

在QL Server 2000中,在表STUDENT按NL平均值和CJ总分统计查询

相关文档
最新文档