999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

門診管理數據庫SQL查詢設計與實現

2019-07-16 03:14:59張建莉高欣
電腦知識與技術 2019年15期
關鍵詞:數據庫

張建莉 高欣

摘要:結構化查詢語言(Structured Query Language,SQL)是一種通用的、功能性極強的國際標準關系數據庫語言。本文以ACCESS為操作平臺,結合自行設計的門診管理數據庫通過創建實例介紹了SQL主要語句的功能與實現,尤其對核心語句SELECT 進行了充分的分析和實例設計與實現。

關鍵詞:結構化查詢語言;數據庫;數據表;查詢

中圖分類號:TP391 ? ? 文獻標識碼:A

文章編號:1009-3044(2019)15-0035-03

SQL語言專門用于與關系數據庫管理系統進行數據交互,集數據定義、數據查詢、數據操縱、數據控制功能于一體,語言風格統一,為數據庫應用系統開發提供了良好的環境。與通常的高級語言不同,SQL只要說明做什么,不需要說明怎么做,具體操作全部由數據庫管理系統自動完成,且語言簡潔,易學易用。本文以ACCESS為操作平臺,以小型“門診管理系統”數據庫為例進行了SQL語句的查詢設計與實現。

1在Access中使用SQL語句

Access 2010中,任何一個查詢都對應著一個SQL語句,可以說查詢對象的實質是一條SQL語句。在查詢設計視圖創建查詢時,Access 2010便會自動撰寫出相應的SQL代碼。除了可以查看SQL代碼,還可以編輯它。

查看或輸入SQL代碼,可以在進入查詢的設計視圖后,單擊工具欄上的“視圖”下拉按鈕,選擇“SQL視圖”項,然后編輯。輸入完SQL語句后,單擊功能區的“運行”按鈕,得到SQL語句的執行結果。本文將根據實際應用的需要,主要介紹數據定義、數據查詢和數據操作等基本語句。

SQL只有為數不多的幾條命令,且其語法接近英語口語,十分簡單,易學易用,對于數據統計方便直觀。SQL的數據定義、操作、查詢和控制功能的語言動詞見表1。注意:

(1)SQL窗口中只能輸入一條SQL語句,但可分行輸入,系統會把分號“;”作為命令的結束標志,但一般在輸入命令時,不必人為地輸入分號。當需要分行輸入時,不能把SQL語句的關鍵字或字段名分在不同行。

(2)SQL語句中所有的標點符號和運算符號均為英文字符。

(3)每兩個單詞之間至少要有一個空格或有必要的逗號。

2門診管理數據庫SQL查詢設計與實現

2.1門診管理數據庫介紹

“門診管理系統”數據庫的各個表設置表結構,描述如下(主鍵加下劃線,外鍵斜體):

科室(科室號,科室類別,科室名稱,聯系方式,科室簡介)

病人(病人ID,病人姓名,病人性別,出生日期,婚否,地址,城市,地區,電話,過敏史)

醫生(醫生工號,醫生姓名,科室號,職稱,最高學歷,是否黨員,照片)

藥品(藥品編號,藥品名稱,藥品規格,單位,單價,庫存量,訂購量,中止)

處方(處方號,病人ID,醫生工號,開出日期,臨床診斷)

處方明細(處方號,藥品編號,單位,數量,用法)

收費單(收費單號,病人ID,醫療類型,金額,日期)

掛號單(掛號單號,掛號方式,日期,掛號費,病人ID,科室名稱,醫生工號)

在“門診管理系統”數據庫中各個表之間的關系如圖1所示。

2.2數據表定義語句

(1)CREATE語句

建立數據庫的主要操作之一是定義基本表。在SQL語言中,可以使用CREATE TABLE語句定義基本表。

例1 在“門診管理”數據庫中建立表“醫生1”表,其結構為(醫生工號/文本/6/主鍵,醫生姓名/文本/20,科室號/文本/3,職稱/文本/10,最高學歷/文本/10,是否黨員/是否,照片/ OLE型)。

語句格式如下:

CREATE TABLE 醫生1(醫生工號 TEXT(6) PRIMARY KEY, 醫生姓名 TEXT(8) NOT NULL, 科室號 TEXT(3),職稱 TEXT(10),最高學歷 TEXT(10),是否黨員 LOGICAL,照片 GENERAL);

此例中,TEXT、LOGICAL、GENERAL分別代表文本型、是否型和OLE型,另外SMALLINT、INTEGER、FLOAT、MEMO、DATE分別代表整型、長整型、雙精度型、備注型、日期型。

(2)ALTER語句

創建后的表可根據需要使用ALTER TABLE語句修改結構。

例2 在表“醫生1”中增加一個“年齡”列,其語句格式如下:

ALTER TABLE醫生1 ?ADD年齡SMALLINT;

例3 刪除表“醫生1”中的“年齡”列,其語句格式如下:

ALTER TABLE 醫生1 ?DROP年齡;

(3)DROP語句

如果希望刪除某個不需要的表,可以使用DROP TABLE語句。

例3 刪除已建立的“醫生1”表,其語句格式如下:

DROP TABLE醫生1;

2.3數據操作語句

數據操作語句是完成數據操作的命令,它由INSERT(插入),DELETE(刪除),UPDATE(更新)和SELECT(查詢)等組成。

(1)INSERT語句

INSERT語句實現數據的插入功能,可以將一條新記錄插入到指定表中。

例4 向醫生1表中添加一條記錄。

INSERT INTO 醫生1(醫生工號, 醫生姓名, 科室號,職稱,最高學歷,是否黨員) VALUES("028010","張揚","028","住院醫師", "碩士",-1);

(2)UPDATE語句

UPDATE語句能夠對指定表所有記錄或滿足條件的記錄進行更新操作。

例5在“門診管理”數據庫中復制“藥品”表生成“藥品1”表,將“藥品1”表所有膠囊(藥品名稱后兩字是膠囊)的單價提高5%。

UPDATE 藥品1 ?SET 藥品1.單價=藥品1.單價*1.05 WHERE 藥品名稱 ?like ?"*膠囊";

(3)DELETE語句

DELETE語句用來對指定表所有記錄或滿足條件的記錄進行刪除操作。

例6刪除藥品1表中所有單位為支的記錄。

DELETE ?FROM 藥品1 ?WHERE ?單位=“支”;

(4)SELECT 語句

數據查詢是數據庫的核心操作。SQL提供了SELECT語句進行數據查詢,SELECT 語句功能強大、使用靈活,是SQL語言的核心,具有強大的單表和多表查詢功能,正因為如此,SELECT語句的可選項很多,語法也較復雜。其一般格式為:

SELECT ?[ALL︱DISTINCT] ?*︱<字段列表>

FROM <表名1>[,<表名2>] …

[WHERE <條件表達式>]

[GROUP BY <字段名> [HAVING <條件表達式>]]

[ORDER BY <字段名> [ASC︱DESC]];

命令格式中< >、[ ]分別表示必選項和可選項;“|”表示其前后任選一項。

該語句從指定的基本表中,創建一個由指定范圍內、滿足條件、按某字段分組、按某字段排序的指定字段組成的新記錄集。其中,ALL 表示檢索所有符號條件的記錄,默認值為ALL;DISTINCT表示檢索要去掉重復行的所有記錄;*表示檢索結果包括所有的字段;<字段列表>使用“,”將項分開,這些項可以是字段、常數或系統內部的函數;FROM子句說明要檢索的數據來自哪個或哪些表,可以對單個或多個表進行檢索;WHERE子句說明檢索條件,條件表達式可以是關系表達式,也可以是邏輯表達式;GROUP BY子句用于對檢索結果進行分組,可以利用它進行分組匯總;HAVING必須跟隨GROUP BY使用,它用來限定分組必須滿足的條件;ORDER BY 子句用來對檢索結果進行排序,如果排序時選擇ASC,表示檢索結果按某一字段值升序排序,如果選擇DESC,表示檢索結果按某一字段值降序排列。

例7 查找并顯示醫生表中的所有字段。

SELECT ?* ?FROM ?醫生;

例8 查找并顯示醫生表中“醫生工號”“醫生姓名”“職稱”和“是否黨員”4個字段。

SELECT醫生工號,醫生姓名,職稱,是否黨員FROM 醫生;

例9查找職稱為住院醫師的醫生,并顯示“醫生工號”,“醫生姓名”,“最高學歷”。

SELECT醫生工號,醫生姓名,最高學歷 FROM 醫生 WHERE 職務=“住院醫師”;

例10 統計職稱為主任醫師的人數,并將計算字段命名為“主任醫師人數”。

SELECT COUNT(*) AS主任醫師人數FROM 醫生 GROUP BY 職稱 HAVING職稱=“住院醫師”;

其中,AS子句后定義的是新字段名。

例11在處方明細表和藥品表檢索處方里哪些藥品,檢索結果按藥品編號升序排序。

SELECT DISTINCT 處方明細.藥品編號, 藥品.藥品名稱 FROM 處方明細, 藥品

WHERE 處方明細.藥品編號=藥品.藥品編號 ORDER BY 處方明細.藥品編號;

在處方明細表中,同一藥品可以出現在多張處方中。這種藥品只顯示一次即可,所以加上唯一值的設置(DISTINCT)。

例12從“醫生”、“處方”兩個表中查詢每個處方的處方號、病人ID、醫生姓名、臨床診斷。

SELECT 處方.處方號, 處方.病人ID, 醫生.醫生姓名, 處方.臨床診斷

FROM 醫生 INNER JOIN 處方 ON 醫生.醫生工號 = 處方.醫生工號;

當查詢涉及兩個以上的表時,該查詢稱為連接查詢。

以2個表為例的命令格式為:

SELECT ?<字段列表> ?FROM <表名1> INNER JOIN <表名2> ?ON <連接條件>;

SELECT ?<字段列表> FROM <表名1> ,<表名2> ?WHERE ?<連接條件>

拓展到以3個表為例的命令格式為:

SELECT ?<字段列表> ?FROM <表名1> INNER JOIN (<表名2> INNER JOIN <表名3> ON<連接條件2>) ?ON <連接條件1>;

SELECT ?<字段列表> ?FROM <表名1> ,<表名2>,<表名3> WHERE <連接條件1> AND <連接條件2>;

例13從“醫生”“處方”兩個表中查詢每個處方的處方號、病人ID、醫生姓名、臨床診斷。

SELECT 處方.處方號, 處方.病人ID, 病人.病人姓名, 醫生.醫生姓名, 處方.臨床診斷

FROM 醫生 INNER JOIN (病人 INNER JOIN 處方 ON 病人.病人ID = 處方.病人ID)

ON 醫生.醫生工號 = 處方.醫生工號;

在數據庫應用開發中SQL語言應用廣泛,并且有些查詢只能通過編寫SQL語句實現,掌握SQL語句非常重要。而通過在實際數據庫中設計實例并運行相應的命令是SQL語句的掌握的最佳途徑。

參考文獻:

[1] 朱燁 張敏輝.數據庫技術原理與設計[M].北京:高等教育出版社,2017.

[2] 王軍委.Access數據庫應用基礎教程[M].北京:清華大學出版社,2014.

【通聯編輯:梁書】

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 精品一区二区无码av| 欧洲欧美人成免费全部视频| 伊人色天堂| 91啦中文字幕| 国产高清无码麻豆精品| 精品国产www| 国产精品视频猛进猛出| 亚洲a免费| 四虎亚洲精品| 免费观看成人久久网免费观看| 57pao国产成视频免费播放| 国产视频入口| 亚洲中文字幕97久久精品少妇| 97视频在线观看免费视频| 欧美国产综合视频| 2021国产精品自拍| 久久天天躁狠狠躁夜夜躁| 国产精品极品美女自在线网站| 亚洲一区毛片| 久久黄色小视频| 毛片在线播放网址| 国产一区在线视频观看| 在线精品欧美日韩| 亚洲自偷自拍另类小说| 亚洲AⅤ波多系列中文字幕| 在线精品自拍| 国产精品开放后亚洲| 亚洲性一区| 国产亚洲精品资源在线26u| 在线精品视频成人网| 欧美午夜在线视频| 欧美成人手机在线观看网址| 午夜国产精品视频| 欧美成人日韩| 日韩欧美国产另类| 午夜啪啪福利| 久青草免费在线视频| 蜜臀AV在线播放| 亚洲床戏一区| 国产在线精品人成导航| 亚洲二区视频| 国产微拍一区| 久久国产热| 成年女人a毛片免费视频| 伊人国产无码高清视频| 亚洲性视频网站| 欧美精品v日韩精品v国产精品| 毛片基地美国正在播放亚洲| 亚洲人成网站在线播放2019| 日韩 欧美 小说 综合网 另类| 亚洲一级色| 一区二区欧美日韩高清免费 | 91毛片网| 99热6这里只有精品| 国产欧美自拍视频| 亚洲无限乱码一二三四区| 又黄又湿又爽的视频| 国产大片喷水在线在线视频| 欧美国产日韩一区二区三区精品影视| 永久在线精品免费视频观看| 香蕉蕉亚亚洲aav综合| 四虎国产永久在线观看| 国产成人调教在线视频| 日本91视频| 成人福利在线观看| 99免费视频观看| 在线免费观看AV| 中文字幕免费视频| 麻豆精品久久久久久久99蜜桃| 久久久国产精品免费视频| 最新午夜男女福利片视频| 国产91九色在线播放| 免费在线看黄网址| 亚洲欧美成人在线视频| 亚洲三级a| 国产精品九九视频| 91热爆在线| 91精品国产麻豆国产自产在线| 国产精品3p视频| 欧美日韩动态图| 亚洲天堂网视频| 高清国产va日韩亚洲免费午夜电影|