收藏 分销(赏)

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

上传人:精*** 文档编号:10167988 上传时间:2025-04-24 格式:DOCX 页数:11 大小:20.65KB
下载 相关 举报
数据库管理系统中的SQL语言.docx_第1页
第1页 / 共11页
数据库管理系统中的SQL语言.docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述
数据库管理系统中的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 202和 Visual FoxPi中都可以使用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 | DISTINC别名.]< 字段表达式〉[AS 列名][,] FROM [库名!]〈表名或视图名〉[[AS本地别名] 简朴查询 1、查询单表所有字段 SQL作法和VFP作法相同 SELECT * FROM 表名 2、查询数据表的指定列 EG: 在QL Server 202中查找表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 202中,查询表STUDENT1中XM列及4门课程的平均成绩,并且查询每人的出生年份 SQL 作法:SELECT XM ,ROUND (CJ4,1) AS 平均成绩,YEAR (GETDATE ())-NL 出生年份 FROM STUDENT1 在Visual FoxPi中,查询课程表KC的KH、KM、XF的所有记录,并将XF字段值加1用“总学分”表达 VFP 作法:SELECT KH、KM、XF+1 AS 总学分 FROM KC 4、不输出反复行的查询 EG: 在QL Server 202中,查询表STUDENT1所有行的XB和NL列值,再查询不符合反复行的情况 SQL 作法:SELECT XB,NL FROM STUDENT1 在Visual FoxPro,查询课程表KC的XF字段的所有记录,不显示反复记录 VFP 作法:SELECT DISTINCT XF FROM KC 5、查询结果排序输出 EG: 在QL Server 202中,查询表STUDENT1时规定先按年龄由小到大,再按总平均成绩由大到小显示学生信息 SQL 作法:SELECT * FROM STUDENT1 ORDER BY NL,CJ/ DESC 在Visual FoxPro,查询课程表KC中XF按降序排列,KH按升序排列后的的结果 VFP 作法:SELECT * FROM KC ORDER BY XF DESC,KH 6、只输出部分行的查询 EG: 在QL Server 202中,查询表STUDENT1时规定先按年龄由小到大排序后显示前3条学生信息,或显示前60%记录 SQL 作法:SELECT TOP * 3 FROM STUDENT1 ORDER BY NL SELECT TOP 60 PERCENT * FROM STUDENT1 ORDER BY NL 在Visual FoxPr中,只显示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 202中,查询表STUDENT1中总成绩大于等于3分的男学生 SQL 作法:SELECT * FROM STUDENT1 WHERE CJ>=3 AND XB= 男' 在Visual FoxPro,查询课程表KC中XF字段值不为5的所有记录 VFP 作法:SELECT * FROM KC WHERE XF!=5 8、查询具有空值NULL的记录 语法格式:IS NULL / IS NOT NULL EG: 在QL Server 202中,查询表STUDENT1中性别XB为空的行 SQL作法和VFP作法相同: SELECT * FROM STUDENT1 WHERE XB IS NULL 9、控制输出方向 EG: 在QL Server 202中,查询表STUDENT1中只有女生数据的子集作为查询结果备份 SQL 作法:SELECT * INTO STUDENT_A FROM STUDENT1 WHERE XB='女' 在Visual FoxPro,查询KC表所有字段的所有记录,并用打印机方式输出 VFP 作法:SELECT * FROM KC TO PRINTER 10、使用记录(聚合)函数查询 EG: 在QL Server 202中,在表STUDENT按NL平均值和CJ总分记录查询 SQL 作法:SELECT,记录,AS 类别,AVG (NL ) AS 平均年龄,SUM (CJ) AS 总分 FROM STUDENT1 在Visual FoxPro,记录KC表XF字段的最大值 VFP作法:SELECT,记录,AS类别,MAX (XF) AS 最高学分FROM KC 11、分组查询 EG: 在QL Server 202中,在表STUDENT1中记录NL值不同的学生人数 SQL 作法:SELECT '记录,AS 类别,NL AS 年龄,COUNT (XB ) AS 人数,AVG(CJ) AS总平均分 FROM STUDENT1 GROUP BY NL 在Visual FoxPr中,记录KC表中按XF的不同分组各门课程的数量 VFP 作法:SELECT,记录,AS 类别,XF AS学分,COUNT (KH)AS 课程数 FROM KC GROUP BY XF 12、带清单的记录查询 EG: 登记表STUDENT1中学生平均年龄总人数和总平均分 SELECT * FROM STUDENT1 COMPUTE AVG(NL), COUNT(XH), AVG(CJ) 13、模糊查询 EG: 在QL Server 202中,查询表STUDENT1中所有李姓的学生 SQL 作法:SELECT * FROM STUDENT1 WHERE XM LIKE '李%’ 在Visual FoxPr中,显示KC表中KH数的第二位是2的所有课程记录 VFP 作法:SELECT * FROM KC WHERE KH LIKE ’ 一2_’ 14、使用BETWEEN查询 语法格式:[NOT] BETWEEN 〈表达式1> ADN <表达式2> EG: 在QL Server 202中,查询表STUDENT1中所有成绩在3~320的学生 SQL 作法:SELECT * FROM STUDENT1 WHERE CJ BETWEEN 3 AND 320 (求反,在 WHERE 前加 NOT) 在Visual FoxPr中,显示KC表中XF在3~5的记录 VFP 作法:SELECT * FROM WHERE XF BETWEEN 3 AND 15、使用IN查询 语法格式:[NOT] IN (表达式1,表达式2[,]) EG: 在QL Server 202中,查询表STUDENT1中年龄是20或18的学生 SQL 作法:SELECT * FROM STUDENT1 WHERE NL IN(20,18) 在Visual FoxPro,显示KC表中XF是3或5的记录 VFP 作法:SELECT * FROM KC WHERE XF IN ( 3,5) 高级查询 1、连接查询 SQL作法和VFP作法相同,具有两个命令格式 ①SELECT〈列名表〉FROM 〈表1> [类型]JOIN〈表2>ON 〈表1.列>=〈表2.列〉 ②ELECT〈列名表〉FROM〈表1,表2>WHERE 〈表1.列>=〈表2.列〉 2、嵌套查询 3、联合查询 语法格式:〈查询语句〉UNION [ALL] <查询语句〉[UNION [ALL] EG: 在QL Server 202中,两个班级的学生表STUDENT1和STUDENT_A,将成绩大于等于350分的学生挑出来组参赛明星对 SQL 作法:SELECT XH,XM,XB,CJ FROM STUDENT1 WHERE CJ >=350 SELECT XH,XM,XB,CJ FROM STUDENT_A WHERE CJ >=350 在Visual FoxPi中,同时将JZG1和JZG2表的基本工资大于4的人显示输出 JBZG>4 VFP 作法:SELECT XM,ZC FROM JZG1 WHERE JBGZ> 4 UNION SELECT XM,ZC FROM JZG2 WHERE
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服