hibernate 逻辑删除除所以所有姓刘同学的记录

当前位置: >>
关系数据库标准语言SQL
第4章 关系数据库标准语言SQL VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院本章要点4.1 4.2 4.3 4.4 4.5 SQL语言的基本概述 数据定义 数据操纵 数据管理 SQL中的数据查询语句 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院SQL语言的特点 1.综合统一SQL 语 言 集 数 据 定 义 ( DDL ) 、 数 据 操 纵 (DML)、数据管理(DCL)的功能于一体,语 言风格统一,可以独立完成数据库的全部操作。2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方式 5.语言简洁,易学易用 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院表 3.1 SQL 语言的动词 SQL 功 能 数 据 定 义 数 据 查 询 数 据 操 纵 数 据 控 制 动 词 CREATE, DROP, ALTER SELECT INSERT,UPDATE DELETE GRANT,REVOKE VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院数据定义表 3.2 SQL 的数据定义语句 操 作对 象 表 视 图 索 引 操 作 方 式 创 建 CREATE TABLE CREATE VIEW CREATE INDEX 删 除 DROP TABLE DROP VIEW DROP INDEX 修 改 ALTER TABLE VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院数据定义定义(创建)表 【格式】CREATE TABLE &表名& (&字段名 1&& 数 据 类 型 &[ ( & 宽 度 &[ , & 小 数 位 数&])][完整性约束][NULL | NOT NULL][,&字段名2&…])【功能】定义(也称创建)一个表。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院SQL建表举例【例4-1】创建一个表STUD(学生信息表),它 【例4-2】创建一个表SC(课程成绩表),它 由以下字段组成:学号 (C,10);姓名(C, 由以下字段组成:学号(C,10);课程号 8);性别(C,2);班级名(C,10);系别代 (C,2)。 号(C,2);地址(C,50);出生日期 (D); 是否团员 (L);备注 (M)。 CREATE TABLE SC(学号 C(10),课程号 CREATE C(2)) TABLE STUD ( 学 号 C(10), 姓 名 C(10),性别 C(2),班级名 C(10),系别代号 LIST STRUCTURE C(2),地址 C(50),出生日期 D,是否团员 L, 备注 M,照片 G) LIST STRUCTURE VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院常用完整性约束C 主码约束: PRIMARY KEY 主索引候选索引C 唯一性约束:UNIQUE C 非空值约束:NOT NULL C 参照完整性约束PRIMARY KEY与 UNIQUE的区别? VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院修改表【格式】ALTER TABLE &表名&[ADD &新字段 名&&数据类型&[(&宽度&[,&小数位数&])][完整 性约束][NULL | NOT NULL]][DROP [完整性约 束]][alter &字段名&&数据类型&] 【功能】修改表结构。 【说明】ADD子句用于增加指定表的字段变量名、 [例3] 【例4-3】在课程成绩表SC中,增加一个成绩字段变量 删除属性列 将年龄的数据类型改为日期。 数据类型、宽度和完整性约束条件;DROP子句用 (N,3)。 直接删除属性列:(新) ALTER TABLE Student ALTER 年龄 DATE; 于删除指定的的完整性约束条件;alter子句用于 ALTER TABLE Drop ADD 成绩 N(3) 修改原有的字段变量的值。 例:ALTER TABLE Student SC Scome; 注:修改原有的列定义有可能会破坏已有数据LIST STRUCTURE VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院删除数据库【格式】DROP DATABASE &数据库名&【功能】删除指定数据库的结构和数据。 【说明】谨慎使用。删除表【格式】DROP TALBE &表名&【功能】删除指定表的结构和内容(包括在此表上建立 的索引)。【说明】如果只是想删除一个表中的所有记录,则应使 用DELETE语句。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院数据操纵数据操纵语言是完成数据操作的命令,一般分为 两种类型的数据操纵,它们统称为DML: ● 数据检索(常称为查询):寻找所需的具体数据。 ● 数据修改:添加、删除和改变数据。数据操纵语言一般由INSERT(插入)、DELETE (删除)、UPDATE(更新),SELECT(检索, 又称查询)等组成,由于SELECT比较特殊,所以 一般又将它以查询(检索)语言单独出现。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院插入记录【格式1】INSERT INTO &表名& [&字段名表&] VALUES (&表达式表&) 【格式2】INSERT INTO &表名& FROM ARRAY &数组名& | FROM MEMVAR 【功能】在指定的表文件末尾追加一条记录。格式1用表达式表中的各表达式值赋值给&字段名表&中 的相应的各字段。格式2用数组或内存变量的值赋值给表文件中各字段。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院【例4-4】在表文件STUD的末尾追加三条记录。 ***用表达式方式追加第一条记录***INSERT INTO STUD (学号,姓名,性别,班级 名,系别代号,地址,出生日期,是否团员) VALUES (&011110&,& 李 建 国 &,& 男 &,& 计 0121&,&01&,&湖北武汉&,{09/28/02},.T.) VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院***用数组方式追加第二条记录***DIMENSION DATA[8] DATA(1)=&011103& DATA(2)=&李宁& DATA(3)=&女& DATA(4)=&电0134& DATA(5)=&02& DATA(6)=&江西九江& DATA(7)={05/06/85} DATA(8)=.F.INSERT INTO ARRAY DATASTUDFROM VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院***用内存变量方式追加第三条记录***学号=&011202& 姓名=&赵娜& 性别=&女& 班级名=&英0112& 系别代号=&03& 地址=&广西南宁& 出生日期={02/21/84} 是否团员=.F.INSERT MEMVAR LISTINTOSTUDFROM VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院更新记录命令 【格式】UPDATE &表文件名& SET &字段名 1&=& 表 达 式 & [ , & 字 段 名 2&=& 表 达 式 &…] [WHERE &条件&] 【功能】更新指定表文件中满足WHERE条件子 句的数据。其中SET子句用于指定列和修改的 值 , WHERE 用 于 指 定 更 新 的 行 , 如 果 省 略 WHERE子句,则表示表中所有行。 【例4-5】将成绩表(SC)中,所有课程号为02的成绩各加5分。 UPDATE SC SET 成绩=成绩+5 ;WHERE课程号=&02& VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院删除记录 【格式】DELETE FROM &表名& WHERE &表达 式&【功能】从指定的表中删除满足WHERE子句条件的 所有记录。如果在DELETE语句中没有WHERE子句, 则该表中所有记录都将被删除。 【说明】这里的删除是逻辑删除,即在删除的记录前 加上一个删除标记“*”。 【例4-7】删除STUD表中所有性别为男的记录。DELETE FROM STUD ; WHERE 性别=“男” VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院SQL中的数据查询语句 数据库中的数据很多时侯是为 了查询的,因此,数据查询是数 据库的核心操作。而在SQL语言 中,查询语言中有一条查询命令, 即SELECT语句。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院基本查询语句【格式】SELECT [ALL | DISTINCT] &字段列表& FROM &表&【说明】 ALL: 表示显示全部查询记录,包括重复记录。DISTINCT: 表示显示无重复结果的记录。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院基本查询语句举例【例4-8】显示STUD(学生信息数据表)中的 所有记录。 SELECT * FROM STUD命令中的*表示 输出 显示所有的字段,数据来 源是STUD表,表中的内容以浏览方式显示。【例4-9】显示STUD(学生信息数据表)中 的所有的学生的姓名,同时能去除重名。SELECT DISTINCT FROM STUD 姓名; VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院【格式】SELECT [ALL | DISTINCT] &字 【例】显示STUD(学生信息数据表)中的所 有学生的姓名和年龄。 段列表& FROM &表&SELE 姓名,YEAR(DATE())-YEAR(出生日期) &字段列表& 可以是下列表达式: AS 年龄 FROM STUDC 算术表达式C 字符串常量【例4-10】显示SC(课程成绩表)中的所有记 C 函数 、集函数 录,并将成绩一项乘以0.7。C 列别名SELECT 学 号 , 课 程 号 , 成 绩 * 0.7 AS 成 绩 ; FROM SC VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院带条件(WHERE)的查询语句【格式】SELECT [ALL | DISTINCT] &字段 列表& FROM &表& [WHERE &条件表达式& ] 【功能】从一个表中查询满足条件的数据。 【说明】&条件表达式&由一系列用AND 或 OR 连接的条件表达式组成,条件表达式的格式 可以是以下几种: VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院WHERE子句常用的查询条件表 3.3 常用的查询条件查 询 条 件 比 较 谓 词 =,&, &,&=, &=,!=, &&,!&,!&; NOT + 上述比较运算符 BETWEEN AND, NOT BETWEEN AND IN, NOT IN LIKE, NOT LIKE IS NULL,IS NOT NULL AND, OR确定范围 确定集合 字符匹配 空 值 多重条件 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院(1) 比较大小在WHERE子句的&比较条件&中使用 比较运算符=,&,&,&=,&=,!= 或 &&,!&,!&,C 逻辑运算符NOT + 比较运算符[例] 查询所有年龄在20岁以下的学生姓名及其年龄。 SELECT 姓名,年龄 SELECT 姓名,年龄 FROM Student WHERE NOT 年龄 &= 20FROMStudent或WHERE 年龄 & 20 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院(2) 确定范围? 使用谓词 BETWEEN … AND …NOT BETWEEN … AND …[例] 查询年龄在20~23岁(包括20岁和23岁)之间 在 的学生的姓名、系别和年龄在变成不在呢? 。SELECT 姓名,系别,年龄;FROM SWHERE 年龄 BETWEEN 20 AND 23 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院(3) 确定集合使用谓词 IN &值表&, NOT IN &值表&&值表&:用逗号分隔的一组取值[例]查询信息系、数学系和计算机系学生的姓名 和性别。 SELECT 姓名,性别 FROM Student WHERE 系别 IN ( '信息','数学','计算机' ) VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院(4) 字符串匹配? [NOT] LIKE ‘&匹配串&’? &匹配串&:指定匹配模板? 匹配模板:固定字符串或含通配符的字符串?当匹配模板为固定字符串时? 可以用 = 运算符取代 LIKE 谓词 ? 用 != 或 & &运算符取代 NOT LIKE 谓词 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院通配符1. % (百分号)的字符串C 例:a%b表示以a开头,以b结尾的任意长度 的字符串。如acb,addgb,ab 等都满足该 匹配串代表任意长度(长度可以为0)2._ (下横线)代表任意单个字符C 例:a_b表示以a开头,以b结尾的长度为3的 任意字符串如acb,afb等都满足该匹配串 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院例 题1) 匹配模板为固定字符串[例] 查询学号为95001的学生的详细情况。SELECT * FROM Student WHERE 学号 LIKE '95001' 等价于: SELECT * FROM StudentWHERE 学号 = '95001' VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院例题(续)2) 匹配模板为含通配符的字符串假如改为不姓刘呢?[例] 查询所有姓刘学生的姓名、学号和性别。 SELECT 姓名,学号,性别 FROM Student WHERE 姓名 LIKE ‘刘%’; VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院例题(续)匹配模板为含通配符的字符串(续)[例] 查询姓“欧阳”且全名为三个汉字的 学生的姓名。SELECT 姓名 FROM Student WHERE 姓名 LIKE '欧阳__'; VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院例题(续)匹配模板为含通配符的字符串(续)[例] 查询名字中第2个字为“阳”字的学 生的姓名和学号。SELECT 姓名,学号 FROM Student WHERE 姓名 LIKE '__阳%'; VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院(6) 多重条件查询用逻辑运算符AND和 OR来连接多个查询条件? AND的优先级高于OR ? 可以用括号改变优先级 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院例题[例] 查询计算机系年龄在20岁以下的 学生姓名。SELECT 姓名 ; FROM S WHERE 系别= '计算机' AND 年龄&20 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院改写[例12][例12] 查询信息系(IS)、数学系(MA)和 计算机科学系(计算机)学生的姓名和性别。 SELECT 姓名,性别 FROM Student WHERE 系别 IN ( 'IS','MA','计算机' ) 可改写为: SELECT 姓名,性别;FROM SWHERE 系别= ' IS ' OR 系别= ' MA' OR 系别= ' 计算机 ' VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院改写[例10] [例10] 查询年龄在20~23岁(包括20岁和 23岁)之间的学生的姓名、系别和年龄。SELECT 姓名,系别,年龄 FROM Student WHERE 年龄 BETWEEN 20 AND 23可改写为:SELECT 姓名,系别,年龄 FROM StudentWHERE 年龄&=20 AND 年龄&=23 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院SQL的复杂查询1.连接查询【说明】在一个数据库中的多个表之间一 般都存在着某些联系,在一个查询语句中同 时涉及到两个或两个以上的表时,这种查询 称之为连接查询(也称为多表查询)。在多 表之间查询必须处理表与表之间的连接关系。 SELECT [ALL | DISTINCT] &字段列表& FROM &表1&[,表2…..] WHERE &条件表达式& 【例4-14】查询并显示各个学生的学号,姓名, 宁波大学 信息科学与工程学院 各科成绩及课程名。Ningbo UniversityVFP:关系数据库标准语言SQLSELECT a. 学 号 ,a. 姓 名 ,b. 课 程 名 ,c. 成 绩 FROM STUD a,COURSE b,SC c WHERE a. 学号=c.学号 AND b.课程号=c.课程号【例4-15】查询并显示各个学生所学课程的情 况。 SELECT STUD.学号,STUD.姓名,COURSE. 课程名 FROM STUD,SC,COURSE WHERE STUD. 学 号 =SC. 学 号 AND SC. 课 程 号 =COURSE.课程号 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院2.连接问题(1)内连接 INNER JOIN (2)外连接 LEFT OUTER JOIN RIGHT OUTER JOIN FULL JOIN内连接是指包括符合条件 的每个表的记录,也称之 为全记录操作。外连接是指把两个表分为左右两个表。 右外连接是指连接满足条件右侧表的全部记录。 左外连接是指连接满足条件左侧表的全部记录。 全外连接是指连接满足条件表的全部记录。 VFP:关系数据库标准语言SQL【例4-16】查询并显示各个学生的学号,所学 课程及课程成绩。Ningbo University宁波大学信息科学与工程学院SELECT SC.学号, COURSE.课程名, SC.成绩 FROM SC, COURSE WHERE SC.课程号 =COURSE.课程号 如果采用内连接方式,则命令如下: SELECT a.学号, b.课程名, 成绩 ;FROM SC a INNER JOIN COURSE b ON a.课程号=b.课程号 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院3.嵌套查询在 SQL 语 句 中 , 一 个 SELECT - FROM - WHERE语句称为一个查询块。将一个查询块嵌 套在另一个查询块的WHERE子句或HAVING短 语的条件中的查询称为嵌套查询或子查询。【例4-17】显示“李宁”所在班级的学生名 单。 SELECT 学号,姓名,班级名 ; FROM STUD ; WHERE 班级名=(SELECT 班级名 FROM VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院4.分组与计算查询【格式】SELECT [ALL | DISTINCT] &字段列表& FROM &表& [WHERE &条件& [GROUP BY &分类字段列表&…] [HAVING &过滤条件&] [ORDER BY &排序项& [ASC | DESC]【功能】包括有排序、函数运算和谓词演算 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院对查询结果排序使用ORDER BY子句? 可以按一个或多个属性列排序? 升序:ASC;降序:DESC;缺省值 为升序当排序列含空值时? ASC:排序列为空值的元组最后显示 ? DESC:排序列为空值的元组最先显示 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院【例4-18】按出生日期降序显示STUD 表中的学号,姓名,出生日期。 SELECT 学号,姓名,出生日期 ; FROM STUD ; ORDER BY 出生日期 DESC [例] 查询全体学生情况,查询结果按所在 系的系号升序排列,同一系中的学生按 年龄降序排列。 SELECT * FROM Student ORDER BY 系 别,年龄 DESC; VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院集函数格式COUNT SUM AVG MAX MIN([DISTINCT|ALL] &列名&)SELE 部门,AVG(考核成绩) GROUP BY 部门 HAVING COUNT(部门)&=10 ORDER BY 2 DESC FROM 雇员表 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院对查询结果分组【例4-23】显示各班总人数。SELECT 班级名,COUNT(班级名) AS 总人数 ;FROM STUD ; GROUP BY 班级名 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院集合查询标准SQL直接支持的集合操作种类 并操作(UNION)一般商用数据库支持的集合操作种类 并操作(UNION) 交操作(INTERSECT) 差操作(MINUS) VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院1. 并操作? 形式&查询块& UNION &查询块& C参加UNION操作的各结果表的列数 必须相同;对应项的数据类型也必 须相同 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院【例4-25】显示选修了英语或数学科目的学生 学号。 SELECT 学号,课程号 FROM SC ; WHERE 课程号=“01” UNION ; SELECT 学号,课程号 FROM SC ; WHERE 课程号=“02”方法二:SELECT 学号,课程号 FROM SC WHERE 课程号=&01& or 课程号=&02& VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院2. 交操作标准SQL中没有提供集合交操作,但可用其他方法间接实现。 VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院【例4-27】显示既选修了01课程又选修了 02课程学生的名单。 SELECT 学号 FROM SC ;WHERE 课程号=“01” AND 学号 IN ;(SELECT 学号 FROM SC ; WHERE 课程号=“02”) VFP:关系数据库标准语言SQL宁波大学Ningbo University信息科学与工程学院5.查询去向[INTO& 目 标 &|TO FILE& 文 件 名 &|TO SCREEN| TO PRINTER]子句选择查询去向: TO FILE&文件名 INTO ARRAY 数组名: &[ADDITIVE]:将查 将查询结果保存到一个数组中。 询结果保存到文本文件 INTO CURSOR& 临时表名&: 中。 将查询结果保存到一个临时表中。 TO SCREEN:将查询 INTO DBF | TABLE &表名&: 结果保在屏幕上显示。 将查询结果保存到一个永久表中。 TO PRINTER:将查 询结果送打印机打印。默认情况下,查询输出到一个浏览窗口,用户在“SELECT” 语句中可使用
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。以下试题来自:
填空题在删除表记录时,一般先使用DELETE命令给记录加删除标记(即逻辑删除),然后使用PACK命令清理带删除标记的记录(即物理删除)。如果要彻底删除表中所有记录,可以使用效率更高的命令(). ZAP
为您推荐的考试题库
你可能感兴趣的试题
1.填空题 TO Printer2.填空题 drop3.填空题 候选索引4.填空题 MD5.填空题 8
热门相关试卷
最新相关试卷没有更多推荐了,
不良信息举报
举报内容:
从Visual FoxPro中的记录号与逻辑删除谈起...
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!实验四自我检测_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
实验四自我检测
&&Visual FoxPro程序设计
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 逻辑删除和物理删除 的文章

 

随机推荐