数据库原理第三章关系数据库SQL语言
第三章 关系数据库SQL语言32. SQL数据库的体系结构及术语:
SQL数据库的体系结构也是三级,但术语与传统的关系模型不同。
关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。
33. SQL数据库的体系结构要点是什么:
(1) 一个SQL数据库是表(table)的汇集,它用一个或多个SQL模式定义。一个SQL模式是表和授权的表态定义。
(2) 一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。
(3) 一个表或者是一个基本表,或者是一个视图。(视图只保存定义,不保存数据)
(4) 一个基本表可跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储器上一个物理文件对应。
(5) 用户可用SQL语句对视图和基本表进行查询等操作。
(6) SQL用户可以是应用程序,也可以是终端用户。
34. SQL的组成分成几部分:
SQL主要分成四部分:
(1) 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
(2) 数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
(3) 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
(4) 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。
35. SQL模式的撤消有哪两种方式:
CASCADE(连锁式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤消。
RESTRICT(约束式)方式:执行DROP语句时,只有当SQL模式中没有任何下属元素时,才能撤消SQL模式,否则拒绝执行DROP语句。
36. SQL提供的基本数据类型有哪些?每种举两个例子:
(1) 数值型:INTEGER长整数、SMALLINT短整数
(2) 字符串型:CHAR(N)长度为N的定长字符串、VARCHAR(N)具有长度为N的变长字符串。
(3) 位串型:BIT(N)长度为N的二进制位串、BIT VARYING(N)长度为N的变长二进制位串
(4) 时间型:DATE日期、TIME时间
SQL2允许用户使用“CREATE DOMAIN”语句定义新的域。
37. 完整性约束主要有哪三种子句:
完整性约束主要有三种子句:主键子句(PRIMARY KEY),检查子句(CHECK)和外键子句(FOREIGN KEY)
38. 什么是视图,它与表的区别是什么:
在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。
39. 对于视图元组的更新操作(INSERT、DELETE、UPDATE)有哪三条规则:
(1) 如果一个视图是从多个基本表使用联接操作导出的,那么不允许对这个视图执行更新操作。
(2) 如果在导出视图的过程中,使用了分组和聚合操作,也不允许对这个视图执行更新操作。
(3) 如果视图是从单个基本表使用选择、投影操作导出的,并且包含了基本表的主键或某个候选键,那么这样的视图称为“行列子集视图”,并且可以被执行更新操作。
SQL2中,允许更新的视图在定义时,必须加上“WITH CHECK OPTION”短语。
40. SQL语言有哪两种使用方式:
一种是在终端交互方式下使用,称为交互式SQL;
另一种是嵌入在高级语言的程序中使用,称为嵌入式SQL,而这些高级语言可以是C、PASCAL、COBOL等,称为宿主语言。
41. 嵌入式SQL的实现有哪两种处理方式:
一种是扩充宿主语言的编译程序,使之能处理SQL语句;
另一种是采用预处理方式。目前多数系统采用后一种。
42. 在宿主语言的程序中使用SQL语句有哪些规定:
(1) 在程序中要区分SQL语言与宿主语句。所有SQL语句前必须加上前缀标识“EXEC SQL”,并以“END_EXEC”作为语句的结束标志。(结束标志在不同的宿主语言中不同)
(2) 允许嵌入的SQL语句引用宿主语言的程序变量(共享变量),但有两条规定:
1) 引用时,这些变量前必须加冒号“:”作为前缀,以示与数据库中变量有区别。
2) 这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。
43. 用游标机制协调SQL的集合处理方式所用的SQL语句有哪些:
与游标有关的SQL语句有下列四个:
(1) 游标定义语句(DECLARE)
(2) 游标打开语句(OPEN)
(3) 游标推进语句(FETCH)
(4) 游标关闭语句(CLOSE)
44. SQL DML的嵌入使用技术:
(1) 若是INSERT、DELETE、UPDATE语句,则不必涉及游标,只要加上前缀标识和结束标志就能嵌入宿主语言程序中使用。
(2) 若是已知查询结果肯定是单元组的SELECT语句,则不必涉及游标,也可加上前缀标识和结束标志后嵌入宿主语言程序中使用,但此时应该在SELECT语句中增加一个INTO子句,指出找到的值应送到相应的共享变量中去。
(3) 若是已知查询结果为多个元组的SELECT语句,则必须涉及到游标,用游标机制把多个元组一次一个地传送给宿主程序处理。
绛旓細绗簩鏉¤鍙ラ噷闈紝鍙煡璇㈠嚭鏉ヤ竴涓猰ediacontent.sourcefilename瀛楁锛屾庝箞鍘诲~鍐檙s.Fields("assetid")銆乺s.Fields("programname")鍛紵 浣犳敼鎴愯繖鏍疯瘯璇曪細sq = "select * from program,mediacontent where program.hasvoid = '鏈' and program.assetid = mediacontent.assetid"
绛旓細鎵浠ュ湪鏁版嵁鎸栨帢鍒嗘瀽棰嗗煙,SQL鏄繀澶囨妧鑳姐傛垜浠垎鏋愪竴涓婼QL浠1970s鏃╂湡寮鍙戝嚭,鍒扮幇鍦ㄨ繕缁忎箙涓嶈“鐨勫師鍥:涓銆佸叕鍙稿熀鏈兘灏嗘暟鎹瓨鍌ㄥ湪鍏崇郴鏁版嵁搴绠$悊绯荤粺(RDBMS)鎴栧叧绯绘暟鎹祦绠$悊绯荤粺(RDSMS)涓,鎵浠ラ渶瑕佷娇鐢⊿QL鏉ュ疄鐜拌闂係QL鏄氱敤鐨勬暟鎹瑷,鍙互浣跨敤SQL鍜屽嚑涔庡叾瀹冧换浣曟暟鎹簱杩涜浜や簰,鐢氳嚦鍙互鍦ㄦ湰鍦板缓绔嬭嚜宸辩殑鏁版嵁搴!
绛旓細sql 璇彞鑾峰彇涓鍒椾腑鐨勬渶澶у间娇鐢∕AX() 鍑芥暟 涓銆丮AX() 鍑芥暟杩斿洖鎸囧畾鍒楃殑鏈澶у笺備簩銆丼QL MAX() 璇硶锛歋ELECT MAX(column_name) FROM table_name;涓夈佸弬鏁拌В閲 column_name锛氬垪鍚 table_name锛氳〃鍚
绛旓細SQLSERVER鐨勪功鏄拡瀵瑰井杞嚭鐨鏁版嵁搴杩涜鎿嶄綔鐨勶紝鍏朵腑涔熶粙缁嶄簡sql璇█銆俿ql璇█杩樺彲浠ラ氱敤oracle绛夊叾浠栨暟鎹簱
绛旓細鍥犳,澶у瀷澶嶆潅鐨勪俊鎭郴缁熷ぇ澶氫互鏁版嵁搴撲负鏍稿績,鏁版嵁搴撶郴缁熷湪璁$畻鏈哄簲鐢ㄤ腑璧风潃瓒婃潵瓒婇噸瑕佺殑浣滅敤銆 鐮旂┒璇鹃 鏁版嵁搴撶爺绌剁殑璇鹃,涓昏娑夊強涓変釜棰嗗煙銆 鏁版嵁搴撶鐞嗙郴缁熻蒋浠剁殑鐮斿埗 DBMS鏄暟鎹簱绯荤粺鐨勫熀纭銆傜爺鍒禗BMS鐨勫熀鏈洰鏍,鏄墿澶у姛鑳,鎻愰珮鎬ц兘鍜屽彲鐢ㄦ,浠庤屾彁楂樼敤鎴风殑鐢熶骇鐜囥70骞翠唬浠ユ潵,鐮斿埗鐨勯噸鐐规槸鎺㈢储鍏崇郴鏁版嵁搴绠$悊...
绛旓細ORACLE鏁版嵁搴撴槸鐩墠涓栫晫涓婁娇鐢ㄦ渶涓哄箍娉涚殑鏁版嵁搴撶鐞嗙郴缁燂紝浣滀负涓涓氱敤鐨勬暟鎹簱绯荤粺锛屽畠鍏锋湁瀹屾暣鐨勬暟鎹鐞嗗姛鑳斤紱浣滀负涓涓鍏崇郴鏁版嵁搴锛屽畠鏄竴涓畬澶囧叧绯荤殑浜у搧锛涗綔涓哄垎甯冨紡鏁版嵁搴撳畠瀹炵幇浜嗗垎甯冨紡澶勭悊鍔熻兘銆備絾瀹冪殑鎵鏈夌煡璇嗭紝鍙鍦ㄤ竴绉嶆満鍨嬩笂瀛︿範浜哋RACLE鐭ヨ瘑锛屼究鑳藉湪鍚勭绫诲瀷鐨勬満鍣ㄤ笂浣跨敤瀹冦
绛旓細闂涓:鐜板湪杞欢鍏徃閮界敤浠涔堟暟鎹簱? 鍍 鍗庝负銆佷腑鍏 杩欑被鍏徃,鐢ㄧ殑鏈澶氱殑鏄疧racle 鏁版嵁搴,涓皬鍨 鍏徃 涓鑸槸MySQL,鍏舵 灏辨槸SQLServer銆丼ybase鏁版嵁搴,鍏崇郴鏁版嵁搴 鍜岄潪鍏崇郴鏁版嵁搴,鎴戣寰椾綘鍙互鍏堟妸鍏崇郴鍨嬫暟鎹簱瀛﹀ソ,鍐嶆悶澶ф暟鎹,濡係QLServer ,涓鑸 鏂瑰悜鐨勭敤鐨勬瘮杈冨涓浜 闂浜:鐜板湪鍋氭暟鎹簱涓鑸敤浠涔堣蒋浠 鍋...
绛旓細閫氱敤鐩稿叧鎶鏈細鏀寔鏃ュ織绯荤粺涓悇绉嶆暟鎹彂閫佽呭畾鍒剁殑姘存ЫNG瀹炴椂鏃ュ織鏀堕泦绯荤粺锛岀敤浜庨噰闆嗘暟鎹紝鍚屾椂绠鍗曞鐞嗘暟鎹紝Logstore鏄紑婧愭湇鍔″櫒绔暟鎹鐞嗘祦姘寸嚎锛屽彲浠ュ悓鏃朵粠澶氫釜婧愰噰闆嗘暟鎹紝鏁版嵁琚浆鎹紝鐒跺悗灏嗘暟鎹彂閫佺粰"瀛樺偍搴"锛SQOP鐢ㄤ簬灏鍏崇郴鏁版嵁搴鍜孒adoop涓殑鏁版嵁浼犻佸埌Hadoop锛孒adoop涓殑鏁版嵁鍙互瀵煎叆鍒板叧绯绘暟鎹簱...
绛旓細鍙嶅鍏崇郴鏁版嵁搴涓ゆ淳涔嬮棿鐨勮京璁恒傝繖娆¤憲鍚嶇殑杈╄鎺ㄥ姩浜嗗叧绯绘暟鎹簱鐨勫彂灞,浣垮叾鏈缁堟垚涓虹幇浠f暟鎹簱浜у搧鐨勪富娴併1970 骞村叧绯绘ā鍨嬪缓绔嬩箣鍚,IBM鍏徃鍦⊿an Jose瀹為獙瀹ゅ鍔犱簡鏇村鐨勭爺绌朵汉鍛樼爺绌惰繖涓」鐩,杩欎釜椤圭洰灏辨槸钁楀悕鐨凷ystem R銆傜洰鏍囨槸璁鸿瘉涓涓叏鍔熻兘鍏崇郴DBMS鐨勫彲琛屾с傝椤圭洰缁撴潫浜1979骞,瀹屾垚浜嗙涓涓疄鐜癝QL鐨凞BMS銆
绛旓細GSDB鏄熀鍥犵粍搴忓垪鏁版嵁搴擄紙GenomeSequenceDataBase锛夛紝鐢辩編鍥芥柊澧ㄨタ鍝ュ窞SantaFe鐨勫浗瀹跺熀鍥犵粍璧勬簮涓績鍒涘缓銆侴SDB鏀堕泦銆佺鐞嗗苟涓斿彂甯冨畬鏁寸殑DNA搴忓垪鍙婂叾鐩稿叧淇℃伅锛屼互婊¤冻鍩哄洜缁勬祴搴忎腑蹇冮渶瑕併傝鏁版嵁搴撻噰鐢ㄦ湇鍔″櫒-瀹㈡埛鏈鍏崇郴鏁版嵁搴妯″紡锛屽ぇ瑙勬ā娴嬪簭鏈烘瀯鍙互閫氳繃璁$畻鏈虹綉缁滃悜鏈嶅姟鍣ㄦ彁浜ゆ暟鎹紝骞跺湪鍙戦佷箣鍓嶅鏁版嵁杩涜妫鏌ワ紝...