freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫原理與設(shè)計03關(guān)系數(shù)據(jù)語言sql-資料下載頁

2025-09-25 18:09本頁面
  

【正文】 組成 每一個內(nèi)嵌 SQL語句的 C程序包括兩個部分:應(yīng)用程序首部和應(yīng)用程序體。嵌入 C程序中的 SQL語句前須加前綴 EXEC SQL,以便與宿主語言的語句相區(qū)別。 1. DECLARE段 定義宿主變量( Host Variable),又稱共享變量,它既可在 C語句中使用,也可在 SQL語句中使用,應(yīng)用程序可以通過宿主變量與數(shù)據(jù)庫傳遞數(shù)據(jù)。 DECLARE段用下列語句作為開始和結(jié)束: EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION; Home 內(nèi)嵌 SQL語句的 C程序組成 為了在宿主語言中檢測可執(zhí)行 SQL語句的執(zhí)行結(jié)果狀態(tài),過去許多 SQL的實現(xiàn)版本常用一個特殊的狀態(tài)指示字段變量 SQLCODE。 SQL2和 SQL3標(biāo)準(zhǔn)規(guī)定使用一個特殊的共享變量 SQLSTATE。 SQLSTATE是一個由 5個字符構(gòu)成的字符數(shù)組,可以在 DECLARE 段中定義。 SQL2和 SQL3標(biāo)準(zhǔn)還規(guī)定了WHENEVER語句和 GET DIAGNOSTICS語句。 Home 內(nèi)嵌 SQL語句的 C程序組成 2. CONNECT 語句 EXEC SQL CONNECT TO <數(shù)據(jù)庫名> USER <用戶名> 3.應(yīng)用程序體 應(yīng)用程序體包含若干可執(zhí)行 SQL語句。 當(dāng)對數(shù)據(jù)庫的操作完成后,應(yīng)該提交和退出數(shù)據(jù)庫,這可使用簡單的命令: COMMIT WORK RELEASE 無游標(biāo)的操作 Home 常用的無游標(biāo)操作有 INSERT、 UPDATE、 DELETE和只返回一行的SELECT。 例 向表 STUDENTS插入一個新記錄行,其學(xué)號、姓名、年齡、性別、 籍貫分別由宿主變量 PNO、 PNAME、 AGE、 SEX、 HOME給出。 EXEC SQL INSERT INTO STUDENTS (SNO, SNAME, AGE, SEX, BPLACE) VALUES (:PNO, :PNAME, :AGE, :SEX, :HOME) 例 從學(xué)生表 STUDENTS中找出學(xué)號為 990027的學(xué)生姓名和年齡,分別存入到宿主變量 PNAME和 AGE中。 EXEC SELECT SNAME, AGE INTO :PNAME, :AGE FROM STUDENTS WHERE SNO= 990027 帶游標(biāo)的查詢操作 Home 當(dāng)需要返回多行的查詢時,則要用到游標(biāo)。 “阻抗失配”問題,即 SQL是在集合上操作的,而宿主語言( C語言)是在集合的成員上操作的。為此需要用游標(biāo)機(jī)制,將集合操作轉(zhuǎn)換成單個元組處理。 游標(biāo)的作用是: DBMS建立一個結(jié)果表,它包含通過嵌入在 C應(yīng)用程序中的 SQL語句查詢獲得的所有數(shù)據(jù)行;游標(biāo)標(biāo)識并指向結(jié)果表的當(dāng)前行。 Home 帶游標(biāo)的查詢操作 一個已命名的游標(biāo)和一條 SELECT語句相關(guān)聯(lián)。游標(biāo)必須先定義,然后通過 3條專門的 SQL語句,對數(shù)據(jù)進(jìn)行操作。 DECLARE CURSOR (定義游標(biāo)) OPEN CURSOR (打開游標(biāo)) FETCH (取一行數(shù)據(jù)) CLOSE CURSOR (關(guān)閉游標(biāo)) 打開游標(biāo)就是執(zhí)行相應(yīng)的 SELECT語句的查詢操作,檢索多行數(shù)據(jù),把所有滿足查詢條件的數(shù)據(jù)行組成一個集合,稱為游標(biāo)活動集( Active Set)或結(jié)果表,并把游標(biāo)指針置于其首端。 Home 帶游標(biāo)的查詢操作 1.定義游標(biāo) EXEC SQL DECLARE <游標(biāo)名> CURSOR FOR < SELECT 語句> 例 定義一個名為 CSR1的游標(biāo),用于從表ENROLLS中查詢學(xué)生的課程與成績。 EXEC SQL DECLARE CSR1 CURSOR FOR SELECT CNO, GRADE FROM ENROLLS WHERE SNO= :PNO Home 帶游標(biāo)的查詢操作 2.打開游標(biāo) 打開游標(biāo)的語句形式為: EXEC SQL OPEN <游標(biāo)名> 例如,打開游標(biāo) CSR1的命令為 EXEC SQL OPEN CSR1 Home 3.取數(shù)據(jù) 通過游標(biāo)取數(shù)據(jù)的語句形式為: EXEC SQL FETCH <游標(biāo)名> INTO :<宿主變量 1> , :<宿主變量 2>, … 例如,把游標(biāo) CSR1檢索結(jié)果賦給宿主變量 c,grade。 EXEC SQL FETCH CSR1 INTO :c, :grade 在默認(rèn)情況下,每執(zhí)行一次 FETCH語句就把游標(biāo)指針移到活動集的下一行位置,一行一行向前推進(jìn),不退行。 帶游標(biāo)的查詢操作 帶游標(biāo)的查詢操作 4.卷游標(biāo) 卷游標(biāo)的定義語句形式為: EXEC SQL DECLARE <游標(biāo)名> SCROLL CURSOR FOR < SELECT 語句> 使用卷游標(biāo) FETCH語句的形式為: EXEC SQL FETCH {NEXT | PRIOR | FIRST | LAST | RELATIVE <整數(shù)> | ABSOLUTE <整數(shù)> } FROM <游標(biāo)名> INTO :<宿主變量 1> , :<宿主變量 2>, … Home 其中, NEXT是指游標(biāo)從當(dāng)前位置向前進(jìn)一行; PRIOR是指游標(biāo)從當(dāng)前位置往回退一行; FIRST是把指游標(biāo)定位到結(jié)果表的第一行; LAST是把指游標(biāo)定位到結(jié)果表的最后一行; RELATIVE 是指游標(biāo)從當(dāng)前位置移動<整數(shù)>行,若<整數(shù)>為正,則向前進(jìn);為負(fù),則往回退; ABSOLUTE 是指游標(biāo)定位到第<整數(shù)>行,若<整數(shù)>為正,則定位到結(jié)果表的正數(shù)第<整數(shù)>行;為負(fù),則定位到結(jié)果表的倒數(shù)第<整數(shù)>行。 帶游標(biāo)的查詢操作 Home 5.關(guān)閉游標(biāo) 關(guān)閉游標(biāo)的語句形式為: EXEC SQL CLOSE <游標(biāo)名> 例如,關(guān)閉游標(biāo) CSR1的命令為 EXEC SQL CLOSE CSR1 帶游標(biāo)的查詢操作 Home 例 根據(jù)學(xué)號,從選課表 ENROLLS中查詢學(xué)生所選課程號和成績,并顯示在屏幕上。 # include EXEC SQL BEGIN DECLARE SECTION VARCHAR uid[20]。 int pno。 char c[4]; float grade。 CHAR SQLSTATE[6]。 EXEC SQL END DECLARE SECTION; 帶游標(biāo)的查詢操作 Home void main( ) { strcpy (uid,LILI)。 EXEC SQL WHENEVER SQLERROR STOP。 EXEC SQL CONNECT TO teaching_db USER :uid。 printf(Connected to teaching_db by User %s\ n,uid)。 EXEC SQL DECLARE CSR1 CURSOR FOR SELECT CNO, GRADE FROM ENROLLS WHERE SNO= :pno。 EXEC SQL OPEN CSR1。 EXEC SQL WHENEVER NOT FOUND STOP; printf(SNO COURSE GRADE\ n)。 scanf(Please enter the student NO: %d,pno)。 for(。) 帶游標(biāo)的查詢操作 Home { EXEC SQL FETCH CSR1 INTO :C, :grade。 printf(%10d,%4s,%\ n,pno,c,grade)。 } EXEC SQL CLOSE CSR1; EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL COMMIT WORK RELEASE; EXEC SQL DISCONNECT CURRENT。 exit(0)。 } 帶游標(biāo)的查詢操作 Home 構(gòu)造數(shù)據(jù)類型、域定義與動態(tài) SQL 構(gòu)造數(shù)據(jù)類型 域定義 動態(tài) SQL Home 構(gòu)造數(shù)據(jù)類型 1.聚合類型 在 SQL中聚合類型是數(shù)組,它是元素的集合。定義聚合類型的 SQL語句格式為: <數(shù)據(jù)類型> ARRAY [<無符號整數(shù)> ] | ARRAY ??(<無符號整數(shù)> ??) 其中,<無符號整數(shù)>給出數(shù)組元素的最大數(shù)目;方括號 [ ]是確定的符號,不是 BNF括號。 引用數(shù)組元素的 SQL語句格式為: <數(shù)組變量> [<數(shù)值變量> ] | <數(shù)組變量> ?? (<數(shù)值變量> ??) Home 例 使用聚合類型 ARRAY建立一個地址表,并插入一行數(shù)據(jù)。 CREATE TABLE mailout ( name CHAR (8), address CHAR(20) ARRAY [5]) INSERT INTO TABLE mailout (name, address) VALUES (39。Wang39。, ARRAY[39。10 Fuxin Road39。, 39。Shanghai39。,39。2022039。]) 構(gòu)造數(shù)據(jù)類型 Home 2.行類型 在 SQL中行類型是一行數(shù)據(jù),關(guān)系表中的一行(元組)是行類型的一個示例,同一個表中的所有的行具有相同的行類型。定義行類型的目的是為了將一個完整的行存儲在變量中,供程序使用。 定義行類型的 SQL語句格式為: ROW (<字段名><數(shù)據(jù)類型> [{,<字段名><數(shù)據(jù)類型> }…] 行引用的 SQL語句格式為: ROW ({<表名> | <查詢名> | <關(guān)聯(lián)> }) 字段引用的 SQL語句格式為: <行變量> .<字段名> 構(gòu)造數(shù)據(jù)類型 Home 例 使用行類型建立一個表,并檢索其中的一個字段數(shù)據(jù)。 CREATE TABLE lineage ( name CHAR (8), status CHAR (10), lastone ROW ( baby CHAR(8), birth DATE)) SELECT name, status, lastone FROM lineage WHERE =39。Liming39。 構(gòu)造數(shù)據(jù)類型 Home 域定義 域定義( Domain Definition)是一個特定的數(shù)據(jù)類型,用于建立用戶自定義的列(屬性)的數(shù)據(jù)類型,它由帶有約束的數(shù)據(jù)類型和缺省值一起構(gòu)成。 域定義的語句形式為: CREATE DOMAIN <域名> [AS] <數(shù)據(jù)類型> [DEFAULT <確省值>= [<域約束列表> ] Home 例 建立一個建筑公司的數(shù)據(jù)庫
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1