




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)SQLServer/SQlite教程授課教師:第3章數(shù)據(jù)庫(kù)基礎(chǔ)計(jì)算機(jī)信息管理技術(shù)和信息管理應(yīng)用系統(tǒng)的發(fā)展,為數(shù)據(jù)庫(kù)理論和數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的發(fā)展提供了強(qiáng)大的推動(dòng)力,無(wú)論是基于C/S模式還是基于B/S模式信息管理系統(tǒng)的開(kāi)發(fā)都離不開(kāi)數(shù)據(jù)庫(kù)系統(tǒng),不論是加入許多新特性的VisualFoxpro數(shù)據(jù)庫(kù),還是SQLServer、Oracles、MySQL、Sybase等數(shù)據(jù)庫(kù),在微型計(jì)算機(jī)上得到了推廣運(yùn)用,服務(wù)于人們的學(xué)習(xí)和工作。第3章
數(shù)據(jù)庫(kù)基礎(chǔ)目錄3.1SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)3.2SQLServerManagementStudio的使用3.3標(biāo)識(shí)符概述3.4SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫(kù)3.5SQLServer系統(tǒng)內(nèi)置函數(shù)3.1SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988年推出了第一個(gè)OS/2版本,隨后推出了SQLServer7.0、SQLServer2000、SQLServer2008、SQLServer2015、SQLServer2019等版本。本書(shū)以SQLServer2008R2為例,介紹SQLServer。SQLServer2008R2是Microsoft公司2010年推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng),它可以將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)(如圖像和音樂(lè))直接存儲(chǔ)到數(shù)據(jù)庫(kù)中,提供了豐富的集成服務(wù),可以對(duì)數(shù)據(jù)進(jìn)行查詢、搜索、同步、報(bào)告和分析之類的操作。數(shù)據(jù)可以存儲(chǔ)在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計(jì)算機(jī)和移動(dòng)設(shè)備。3.1.1
SQLServer概述SQLServer2008R2提供一個(gè)可信的、高效率的智能數(shù)據(jù)平臺(tái),允許您在使用Microsoft.NET和VisualStudio開(kāi)發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù)。SQLServer2008R2提供的版本有企業(yè)版、標(biāo)準(zhǔn)版、開(kāi)發(fā)版、學(xué)習(xí)版等版本。本書(shū)以學(xué)習(xí)版為例,學(xué)習(xí)版是SQLServer的一個(gè)免費(fèi)版本。3.1.1
SQLServer概述SQLServer2008R2支持32位和64位操作系統(tǒng),這里主要介紹SQLServer2008R2
64位的安裝需求。3.1.2
SQLServer2008R2的安裝1.安裝需求2)軟件需求1)硬件需求安裝需求(1)處理器:PentiumⅢ兼容處理器或處理速度更快的處理器。CPU最低為1.0GHz,建議≥2.0GHz。(2)內(nèi)存:最小512MB,建議≥2GB。(3)硬盤(pán):在安裝SQLServer2008R2時(shí),需要系統(tǒng)驅(qū)動(dòng)器提供至少2.0GB的可用磁盤(pán)空間用來(lái)存儲(chǔ)WindowsInstaller創(chuàng)建的安裝臨時(shí)文件。安全安裝SQLServer2008R2需要約2.0GB磁盤(pán)空間,以下是SQLServer2008R2各組件磁盤(pán)空間需求情況,如表3-1所示(表3-1見(jiàn)教材28頁(yè))。(4)顯示器:VGA或更高分辨率,SQLServer圖形工具要求1024×768像素或更高分辨率。3.1.2
SQLServer2008R2的安裝1.安裝需求1)硬件需求(1)框架支持:安裝SQLServer2008R2所需的軟件組件有SQLServerNativeClient(SQLServer本地客戶端);.NETFramework3.5SP1(.NET框架);SQLServer2008R2安裝程序支持文件。(2)軟件:MicrosoftWindowsInstaller4.5或更高版本。Microsoft數(shù)據(jù)訪問(wèn)組件(MDAC)2.8SP1或更高版本。(3)操作系統(tǒng):Windows10操作系統(tǒng)。3.1.2
SQLServer2008R2的安裝1.安裝需求2)軟件需求以Windows10為操作系統(tǒng)平臺(tái),SQLServer2008R2學(xué)習(xí)版安裝文件已經(jīng)下載到D盤(pán)的sq文件夾,其安裝過(guò)程如下:(1)展開(kāi)D:\sq文件夾,雙擊“setup應(yīng)用程序”安裝,出現(xiàn)如圖3-2所示。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-2啟動(dòng)SQLServer2008R2安裝文件(2)如果出現(xiàn)Microsoft.NETFramework安裝對(duì)話框,則勾選接受許可并安裝。必備組件安裝完成后,安裝向?qū)нM(jìn)入“SQLServer安裝中心”,如圖3-3所示。單擊“全新安裝或向現(xiàn)有安裝添加功能”選項(xiàng),安裝向?qū)нM(jìn)行“安裝程序支持規(guī)則”檢查。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-3SQLServer2008R2安裝中心界面(3)通過(guò)安裝程序支持規(guī)則檢查以后,進(jìn)入“許可條款”操作界面,勾選“我接受許可條款”,如圖3-4所示。再次檢查安裝程序支持文件,如果通過(guò)則進(jìn)入“功能選擇”界面。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-4許可條款界面(4)在如圖3-5所示的“功能選擇”界面,單擊“全選”按鈕,單擊“下一步”,進(jìn)入“實(shí)例配置”界面。注意:“共享功能目錄”的文件夾不可以更改,否則安裝過(guò)程出錯(cuò)。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-5功能選擇界面3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-6實(shí)例配置界面(5)在如圖3-6所示的“實(shí)例配置”界面,用戶可以使用默認(rèn)實(shí)例名MSSQLSERVER,也可以選擇命名實(shí)例SQLExpress,實(shí)例根目錄為C:\ProgramFiles\MicrosoftSQLServer\,單擊“下一步”進(jìn)入“服務(wù)器配置”界面。(6)在“服務(wù)器配置”界面,根據(jù)選擇的安裝功能指定SQLServer服務(wù)的登錄賬戶??梢詾樗蠸QLServer服務(wù)分配相同的登錄賬戶,也可以分別配置每個(gè)服務(wù)賬戶,還可以指定服務(wù)類型為自動(dòng)、手動(dòng)或禁用。如圖3-7所示。單擊“對(duì)所有SQLServer服務(wù)使用相同的賬戶(U)”彈出對(duì)話框,單擊“瀏覽...”選擇賬戶,設(shè)置密碼。單擊“下一步”進(jìn)入“數(shù)據(jù)庫(kù)引擎配置”界面。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-7服務(wù)器配置界面(7)在“數(shù)據(jù)庫(kù)引擎配置”界面,可以設(shè)置SQLServer實(shí)例的身份驗(yàn)證模式為Windows身份驗(yàn)證模式或混合模式。在“指定SQLServer管理員”欄,必須至少指定一個(gè)系統(tǒng)管理員,也可以添加或刪除賬戶。如圖3-8所示。單擊“下一步”進(jìn)入“ReportingServices配置”界面。可以采用混合模式,SQLServer身份驗(yàn)證和WINDOWS身份驗(yàn)證兩種,為SQLServer系統(tǒng)管理員SA賬戶指定密碼。為后續(xù)的第9章的學(xué)習(xí)作好準(zhǔn)備。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-8數(shù)據(jù)庫(kù)引擎配置界面(8)“ReportingServices配置”界面,指定要?jiǎng)?chuàng)建的ReportingServices安裝的類型:安裝本機(jī)模式默認(rèn)配置、安裝SharePoint集成模式默認(rèn)配置、安裝但不配置ReportingServices,如圖3-8所示。單擊“下一步”進(jìn)入“錯(cuò)誤報(bào)告”界面,單擊“下一步”,進(jìn)入“安裝規(guī)則”界面,然后進(jìn)入“安裝進(jìn)度”界面。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-9ReportingServices配置界面(9)在“安裝進(jìn)度”界面,監(jiān)視安裝進(jìn)度,如圖3-10所示。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-10安裝進(jìn)度界面(10)安裝完成后,“完成”頁(yè)會(huì)提供指向安裝日志文件摘要以及其他重要說(shuō)明的鏈接。提示已完成SQLServer安裝過(guò)程,單擊“關(guān)閉”按鈕。如圖3-11所示。3.1.2
SQLServer2008R2的安裝2.安裝步驟圖3-11安裝完成界面3.2SQLServerManagementStudio的使用SQLServerManagementStudio(簡(jiǎn)稱SSMS)是一個(gè)訪問(wèn)、配置和管理所有SQLServer組件(數(shù)據(jù)庫(kù)引擎、AnalysisServices、IntegrationServices、ReportingServices和XQuery等)的集成環(huán)境,提供用于配置、監(jiān)視和管理SQL實(shí)例的工具,使用SSMS部署、監(jiān)視和升級(jí)應(yīng)用程序使用的數(shù)據(jù)層組件,以及生成查詢和腳本,為各種技術(shù)水平的開(kāi)發(fā)人員和管理員通過(guò)易用的圖形工具和豐富的腳本編輯器使用和管理SQLServer。3.2
SQLServerManagementStudio的使用在使用SQLServer2008R2數(shù)據(jù)庫(kù)管理系統(tǒng)之前,必須先啟動(dòng)SQLServer服務(wù)。下面介紹兩種啟動(dòng)SQLServer服務(wù)的方法。3.2.1
啟動(dòng)SQLServer2008R2服務(wù)器
1.使用SQLServer配置管理器啟動(dòng)服務(wù)2.使用Windows服務(wù)管理器啟動(dòng)服務(wù)啟動(dòng)SQLServer服務(wù)的方法SQLServer配置管理器是一種用于管理與SQLServer相關(guān)聯(lián)的服務(wù)、配置SQLServer使用的網(wǎng)絡(luò)協(xié)議以及從SQLServer客戶端計(jì)算機(jī)管理網(wǎng)絡(luò)連接配置的工具。打開(kāi)SQLServer配置管理器:開(kāi)始→所有程序→單擊“MicrosoftSQLServer2008R2”展開(kāi)→單擊“配置工具”展開(kāi)→SQLServer配置管理器,如圖3-12所示。在SQLServer配置管理器中單擊“SQLServer服務(wù)”,在詳細(xì)信息窗格中,右鍵單擊“SQLServer(SQLEXPRESS)”,彈出菜單,然后單擊“啟動(dòng)”即可,反之則可停止。同理,可以啟動(dòng)或停止其他SQLServer服務(wù)(如Analysis、Reporting)。3.2.1
啟動(dòng)SQLServer2008R2服務(wù)器1.使用SQLServer配置管理器啟動(dòng)服務(wù)圖3-12SQLServer配置管理器打開(kāi)Windows服務(wù)管理:在桌面上選中“我的電腦”,右擊鼠標(biāo)彈出快捷菜單選擇“管理”打開(kāi)“計(jì)算機(jī)管理”操作界面,單擊“服務(wù)和應(yīng)用程序”→雙擊“SQLServer配置管理器”→雙擊“SQLServer服務(wù)”展開(kāi)→右擊“SQLServer(SQLEXPRESS)”→彈出快捷菜單,單擊“啟動(dòng)”,即可啟動(dòng)SQLServer服務(wù),如圖3-13所示。執(zhí)行類似的操作可以啟動(dòng)其他的選項(xiàng)。3.2.1
啟動(dòng)SQLServer2008R2服務(wù)器2.使用Windows服務(wù)管理器啟動(dòng)服務(wù)圖3-13計(jì)算機(jī)管理啟動(dòng)SQLServer服務(wù)單擊“開(kāi)始”→“所有程序”→單擊展開(kāi)“MicrosoftSQLServer2008R2”→單擊“SQL
ServerManagementStudio”,如圖3-14所示。3.2.2
啟動(dòng)SQLServerManagementStudio圖3-14SQLServerManagementStudio登錄窗口在“連接到服務(wù)器”對(duì)話框中需要指定服務(wù)器類型、服務(wù)器名稱、身份驗(yàn)證。其中,服務(wù)器類型有“數(shù)據(jù)庫(kù)引擎”“AnalysisServices”“ReportingServices”“IntegrationServices”等選項(xiàng)。服務(wù)器名稱:服務(wù)器名稱\實(shí)例名稱,如xwq123\SQLEXPRESS。身份驗(yàn)證:可設(shè)置“Windows身份驗(yàn)證”和“SQLServer身份驗(yàn)證”兩種。SQLServerManagementStudio不僅可以連接本地?cái)?shù)據(jù)庫(kù)服務(wù)器,還可以連接遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器,并將其顯示在同一工作界面上。單擊圖3-14所示的“連接到服務(wù)器”界面中的“連接”按鈕,進(jìn)入“MicrosoftSQLServerManagementStudio”工作界面。3.2.2
啟動(dòng)SQLServerManagementStudioSSMS工作界面是一個(gè)標(biāo)準(zhǔn)的Windows界面,由標(biāo)題欄、菜單欄、工具條、屬性面板和樹(shù)窗口組成。單擊“新建查詢”,在工作窗口打開(kāi)腳本文件*.sql文件,進(jìn)入編輯界面,如圖3-15所示。3.2.2
啟動(dòng)SQLServerManagementStudio圖3-15SQLServerManagementStudio工作界面3.3標(biāo)識(shí)符概述數(shù)據(jù)庫(kù)對(duì)象的名稱即為標(biāo)識(shí)符,SQLServer中的所有內(nèi)容都可以有標(biāo)識(shí)符。服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象(例如表、視圖、列、索引、存儲(chǔ)過(guò)程、觸發(fā)器、約束及規(guī)則等)也都可以有標(biāo)識(shí)符。使用標(biāo)識(shí)符要注意以下幾點(diǎn):(1)標(biāo)識(shí)符必須是統(tǒng)一碼(Unicode2.0)標(biāo)準(zhǔn)中規(guī)定的字符以及其他一些語(yǔ)言字符(如漢字),如表3-2所示。(2)標(biāo)識(shí)符不能有空格或特殊字符_、#、@、$以外的字符。(3)標(biāo)識(shí)符不允許是Tansact-SQL的保留字。(4)標(biāo)識(shí)符長(zhǎng)度不得超過(guò)128個(gè)字符。另外,在SQLServer中,還有許多具有特殊意義的標(biāo)識(shí)符,如表3-3所示。(表3-2、3-3見(jiàn)教材37頁(yè))3.3
標(biāo)識(shí)符概述3.4SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫(kù)啟動(dòng)SQLServerManagementStudio連接數(shù)據(jù)庫(kù)引擎后,展開(kāi)“數(shù)據(jù)庫(kù)”→“系統(tǒng)數(shù)據(jù)庫(kù)”文件夾,可以看到master、model、msdb和tempdb4個(gè)系統(tǒng)數(shù)據(jù)庫(kù)。具體如下:(1)master:記錄SQLServer系統(tǒng)的所有系統(tǒng)級(jí)別信息,包括登錄賬戶、系統(tǒng)配置和SQLServer初始化信息。(2)model:用于創(chuàng)建數(shù)據(jù)庫(kù)的模板。(3)msdb:供SQLServer代理程序調(diào)度警報(bào)、作業(yè)和記錄操作員時(shí)使用。(4)tempdb:保存所有的臨時(shí)表和臨時(shí)存儲(chǔ)過(guò)程。每次啟動(dòng)時(shí)都重新創(chuàng)建tempdb,并根據(jù)需要自動(dòng)增長(zhǎng)。3.4
SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫(kù)1.系統(tǒng)數(shù)據(jù)庫(kù)SQLServer中的服務(wù)器除了數(shù)據(jù)庫(kù)引擎外,還有AnalysisServices(分析服務(wù)器)、ReportingServices(報(bào)表服務(wù)器)等,其中報(bào)表服務(wù)器使用SQLServer數(shù)據(jù)庫(kù)引擎來(lái)存儲(chǔ)元數(shù)據(jù)和對(duì)象定義。為了將永久性數(shù)據(jù)存儲(chǔ)與臨時(shí)存儲(chǔ)要求分開(kāi),ReportingServices使用兩個(gè)SQLServer關(guān)系數(shù)據(jù)庫(kù)用作內(nèi)部存儲(chǔ),在默認(rèn)情況下,這兩個(gè)數(shù)據(jù)庫(kù)分別命名為Reportserver和ReportserverTempDB,隨報(bào)表服務(wù)器主數(shù)據(jù)庫(kù)一同創(chuàng)建,用于存儲(chǔ)臨時(shí)數(shù)據(jù)、會(huì)話信息和緩存的報(bào)表。根據(jù)本例的數(shù)據(jù)庫(kù)實(shí)例名SQLEXPRESS,這兩個(gè)報(bào)表數(shù)據(jù)庫(kù)名稱為“Reportserver$-SQ-LEXPRESS”和“Reportserver$SQLEXPRESSTempDB”。3.4
SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫(kù)2.報(bào)表數(shù)據(jù)庫(kù)3.5SQLServer系統(tǒng)內(nèi)置函數(shù)為了讓用戶更方便地對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,SQLServer在T-SQL中提供了許多內(nèi)置函數(shù),用戶可以通過(guò)調(diào)用內(nèi)置函數(shù)并為其提供所需要的參數(shù)來(lái)執(zhí)行一些特殊的運(yùn)算或完成復(fù)雜的操作。函數(shù)其實(shí)就是一段程序代碼,T-SQL提供的函數(shù)有系統(tǒng)函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、數(shù)學(xué)函數(shù)、轉(zhuǎn)換函數(shù)等。3.5
SQLServer系統(tǒng)內(nèi)置函數(shù)系統(tǒng)函數(shù)用于獲取有關(guān)計(jì)算機(jī)系統(tǒng)、用戶、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象的信息??梢栽诓恢苯釉L問(wèn)系統(tǒng)表的情況下,獲取SQLServer系統(tǒng)表中的信息。用戶在得到信息后使用條件語(yǔ)句,根據(jù)返回的信息進(jìn)行不同的操作。與其他函數(shù)一樣,可以在select語(yǔ)句的select和
where子句以及表達(dá)式中使用系統(tǒng)函數(shù)。系統(tǒng)函數(shù)的類型如表3-4所示(表3-4見(jiàn)教材38頁(yè))。例3-1
返回圖書(shū)信息表books中bookid為1、書(shū)名title列的長(zhǎng)度及其值的長(zhǎng)度。代碼如下:selectcol_length('books','title')asname_col_length,datalength(title)astitle_data_lengthfrombookswherebookid=13.5.1
系統(tǒng)函數(shù)2.去空格函數(shù)4.字符串比較函數(shù)3.取子串函數(shù)1.字符轉(zhuǎn)換函數(shù)3.5.2
字符串函數(shù)字符串函數(shù)對(duì)二進(jìn)制數(shù)據(jù)、字符串和表達(dá)式執(zhí)行不同的運(yùn)算。此類型函數(shù)作用于char、varchar、binary和varbinary數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為char或varchar的數(shù)據(jù)類型??梢栽趕elect語(yǔ)句的select和where子句及表達(dá)式中使用字符串函數(shù)。字符串函數(shù)的類型如下。1)ascii()功能:返回字符表達(dá)式最左端字符的ASCII碼值。語(yǔ)法:ascii(character_expression)返回類型:int示例:selectascii(123),ascii('A'),返回結(jié)果為“49”“65”。2)char()功能:用于將ascii碼轉(zhuǎn)換為字符。語(yǔ)法:char(integer_expression)返回類型:char示例:selectchar(65),char(123),返回結(jié)果為“A”“{”。1.字符轉(zhuǎn)換函數(shù)3.5.2
字符串函數(shù)1.字符轉(zhuǎn)換函數(shù)3)lower()功能:把字符串全部轉(zhuǎn)換為小寫(xiě)。語(yǔ)法:lower(character_expression)返回類型:varchar示例:selectlower('abc'),lower('A李C'),返回結(jié)果為“abc”“a李c”。4)upper()功能:把字符串全部轉(zhuǎn)換為大寫(xiě)。語(yǔ)法:upper(character_expression)返回類型:varchar示例:selectupper('Abc'),upper('a李c'),返回結(jié)果為“ABC”“A李C”。3.5.2
字符串函數(shù)1.字符轉(zhuǎn)換函數(shù)5)str()功能:把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。語(yǔ)法:str(float_expression[,length[,decimal]])返回類型:char說(shuō)明:length指定返回字符串的長(zhǎng)度,decimal指定返回的小數(shù)位數(shù)。如果沒(méi)有指定,則length的值為10,decimal缺省值為0。示例:selectstr(123.5),str(123456,3),str(123.456,8,2),str(-12123.456,8,2),其返回的結(jié)果為“124”“…”“123.46”“-12123.5”。3.5.2
字符串函數(shù)2.去空格函數(shù)1)ltrim()功能:把字符串頭部的空格去掉。語(yǔ)法:ltrim(character_expression)返回類型:varchar示例:selectltrim('A'),返回結(jié)果為“A”。2)rtrim()功能:把字符串尾部的空格去掉。語(yǔ)法:rtrim(character_expression)返回類型:varchar示例:selectltrim('A'),rtrim('李'),返回結(jié)果為“A”“李”。例3-2
去掉字符串頭部和尾部的空格。示例:selectrtrim(ltrim('李')),返回的結(jié)果為“李”。3.5.2
字符串函數(shù)3.取子串函數(shù)1)left()功能:返回從字符串左邊開(kāi)始指定個(gè)數(shù)的字符。語(yǔ)法:left(character_expression,integer_expression)返回類型:varchar示例:selectleft('ABC',2),left('A西林C',2),其返回的結(jié)果為“AB”“A西”。2)right()功能:返回從字符串右邊開(kāi)始指定個(gè)數(shù)的字符。語(yǔ)法:right(character_expression,integer_expression)返回類型:varchar示例:selectright('ABC',2),right('A西林C',2),其返回的結(jié)果為“BC”“林C”。3.5.2
字符串函數(shù)3.取子串函數(shù)3)substring()功能:返回字符串、binary、text表達(dá)式的一部分。語(yǔ)法:substring(expression,start,length)返回類型:varchar,nvarchar,varbinary示例:selectsubstring('ABC',2,1),substring('ABC',2,4)3.5.2
字符串函數(shù)1)charindex()功能:返回字符串中某個(gè)指定的子串出現(xiàn)的起始位置。語(yǔ)法:charindex(substring_expression,expression[,start_location]),其中substring_expression是所要查找的字符表達(dá)式;expression可為字符串也可為列名表達(dá)式;start_location表示要查詢的開(kāi)始位置,省略該參數(shù)默認(rèn)為1。如果沒(méi)有發(fā)現(xiàn)子串則返回0值。此函數(shù)不能用于text和image數(shù)據(jù)類型。返回類型:int示例:selectcharindex('B','ABC'),charindex('AD','ABCD'),charindex('B','ABCDEF',3),其返回的結(jié)果為“2”“0”“0”。4.字符串比較函數(shù)3.5.2
字符串函數(shù)2)replace()功能:用第三個(gè)表達(dá)式替換第一個(gè)字符串表達(dá)式中出現(xiàn)的所有第二個(gè)給定字符串表達(dá)式。語(yǔ)法:replace('string_expression1','string_expression2','string_expression3')返回類型:與表達(dá)式類型一致示例:selectreplace('ABC','B','12'),replace('ABCD','BD','ERR'),其返回的結(jié)果為“A12C”“ABCD”。4.字符串比較函數(shù)3.5.2
字符串函數(shù)日期和時(shí)間函數(shù)用來(lái)顯示關(guān)于日期和時(shí)間的信息,其數(shù)據(jù)類型為datetime和
smalldatetime值,可以對(duì)這些值執(zhí)行算術(shù)運(yùn)算,最后將返回一個(gè)字符串、數(shù)字值或日期和時(shí)間值。1)day()功能:返回date_expression中的日期值。語(yǔ)法:day(date_expression)返回類型:int示例:selectday('2018-05-01'),day('05/04/2018'),其返回的結(jié)果為“1”和“4”。3.5.3
日期和時(shí)間函數(shù)2)month()功能:返回date_expression中的月份值。語(yǔ)法:month(date_expression)返回類型:int示例:selectmonth('2018-05-01'),month('06-01-2018'),其返回的結(jié)果值為“5”和“6”。3)year()功能:返回date_expression中的年份值。語(yǔ)法:year(date_expression)返回類型:int示例:selectyear('2018-05-01'),year('06-01-2019'),其返回的結(jié)果值為“2018”和“2019”。3.5.3
日期和時(shí)間函數(shù)4)getdate()功能:按datetime數(shù)據(jù)類型格式返回當(dāng)前系統(tǒng)日期和時(shí)間。語(yǔ)法:getdate()返回類型:datetime示例:selectgetdate(),其返回當(dāng)前日期和時(shí)間。5)datepart()功能:返回代表指定日期的指定日期部分的整數(shù)。語(yǔ)法:datepart(datepart,date)返回類型:int示例:selectdatepart(year,getdate()),datepart(month,'2018-05-01'),其返回的結(jié)果為“2021”和“5”。3.5.3
日期和時(shí)間函數(shù)6)dateadd()功能:在向指定日期加上一段時(shí)間的基礎(chǔ)上,返回新的datetime值。語(yǔ)法:dateadd(datepart,number,date)返回類型:datetime示例:selectdateadd(day,20,'2020-05-01'),其返回的結(jié)果為“2020-05-2100:00:00.000”。7)datediff()功能:返回跨兩個(gè)指定日期的日期和時(shí)間邊界數(shù)。語(yǔ)法:datediff(datepart,startdate,enddate)返回類型:int示例:selectdatediff(day,'2018-03-01','2018-05-01'),其返回的結(jié)果為“61”。3.5.3
日期和時(shí)間函數(shù)1.round()功能:返回?cái)?shù)字表達(dá)式并四舍五入為指定的長(zhǎng)度或精度。語(yǔ)法:round(numeric_expression,length[,function])返回類型:與numeric_expression相同示例:selectround(24.567,2),round(24.25,0),其返回的結(jié)果為“24.570”和“24.00”。3.5.4
其他函數(shù)2.case()在T-SQL語(yǔ)句中,可以使用case語(yǔ)句實(shí)現(xiàn)程序中多條件分支。1)簡(jiǎn)單case函數(shù)功能:將某個(gè)表達(dá)式與一組簡(jiǎn)單表達(dá)式進(jìn)行比較以確定結(jié)果。語(yǔ)法格式:caseinput_expressionwhenwhen_expressionthenresult_expression[...n]elseelse_result_expressionend3.5.4
其他函數(shù)2.case()例3-3
查詢學(xué)生信息,將性別以英文顯示。代碼如下:selectstudno,studname,學(xué)生性別=casestudsexwhen'男'then'male'when'女'then'female'else'性別不詳'endfromstudinfo3.5.4
其他函數(shù)2.case()2)case搜索函數(shù)功能:計(jì)算一組布爾表達(dá)式以確定結(jié)果。語(yǔ)法格式:casewhenboolean_expressionthenresult_expression[...n]elseelse_result_expressionend3.5.4
其他函數(shù)2.case()例3-4
統(tǒng)計(jì)各學(xué)生的平均分,并按等級(jí)顯示。代碼如下:selectstudno,avg(studscore)avgscore,casewhenavg(studscore)>=90then“優(yōu)秀”whenavg(studscore)>=80andavg(studscore)<90then“優(yōu)秀”whenavg(studscore)>=70then“中等”whenavg(studscore)>=60then“及格”else“不及格”endasscorelevelfromstudscoreinfogroupbystudno3.5.4
其他函數(shù)習(xí)題1.在“服務(wù)器引擎配置”界面,可以
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)駕駛技術(shù)測(cè)試合作協(xié)議
- 《創(chuàng)新課程設(shè)計(jì):物理游戲化教學(xué)法教案》
- 八年級(jí)英語(yǔ)語(yǔ)法知識(shí)總結(jié)與提升教學(xué)教案
- 鋼筋綁扎承包合同
- 阿甘正傳節(jié)選與人生哲學(xué)的思考:英語(yǔ)文學(xué)賞析教學(xué)教案
- 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估及防御合作協(xié)議
- 裝修工程區(qū)域消防安全協(xié)議書(shū)
- 航空航天材料科技知識(shí)重點(diǎn)梳理
- 數(shù)據(jù)空間發(fā)展戰(zhàn)略藍(lán)皮書(shū)內(nèi)容
- 知識(shí)產(chǎn)權(quán)授權(quán)轉(zhuǎn)讓與使用協(xié)議
- 2023信息系統(tǒng)密碼應(yīng)用高風(fēng)險(xiǎn)判定指引
- 2023年12月全國(guó)大學(xué)外語(yǔ)等級(jí)考試考務(wù)工作手冊(cè)
- 第三單元《 There is a cake on the table 》大單元教案 四年級(jí)英語(yǔ)下冊(cè)(重大版)
- 普通高中語(yǔ)文課程標(biāo)準(zhǔn)課件
- 你是獨(dú)一無(wú)二的自己主題班會(huì)課件
- 交通運(yùn)輸行業(yè)駕駛員違規(guī)處理規(guī)范培訓(xùn)
- 華為企業(yè)數(shù)據(jù)架構(gòu)、應(yīng)用架構(gòu)及技術(shù)架構(gòu)設(shè)計(jì)方法
- 合理化建議運(yùn)行流程圖
- 新高考2024屆高三物理二輪復(fù)習(xí)策略講座
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
- JGJ135-2007載體樁設(shè)計(jì)規(guī)程
評(píng)論
0/150
提交評(píng)論