Java-Android-jwebee
          Java-Android-jwebee
          對(duì)IT人來(lái)說(shuō),要成為一個(gè)優(yōu)秀的技術(shù)型管理者,除了需要具備扎實(shí)的技術(shù)基礎(chǔ)之外,還應(yīng)該培養(yǎng)良好的人際關(guān)系能力、談判與溝通技能、客戶關(guān)系與咨詢技能、商業(yè)頭腦和財(cái)務(wù)技能以及創(chuàng)新意識(shí),此外還要有巧妙的激勵(lì)技巧和化解沖突與解決突發(fā)問(wèn)題的能力.

          ????? SQL(STructured Query Language)是一種資料庫(kù)查詢和程式設(shè)計(jì)語(yǔ)言,用於存取資料以及查詢、更新和管理關(guān)聯(lián)式資料庫(kù)系統(tǒng)。美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)與國(guó)際標(biāo)準(zhǔn)化組織(ISO)已經(jīng)制定了 SQL 標(biāo)準(zhǔn)。ANSI 是一個(gè)美國(guó)工業(yè)和商業(yè)集團(tuán)組織,發(fā)展美國(guó)的商務(wù)和通訊標(biāo)準(zhǔn)。ANSI 同時(shí)也是 ISO 和 International Electrotechnical Commission(IEC)的成員之一。ANSI 發(fā)佈與國(guó)際標(biāo)準(zhǔn)組織相應(yīng)的美國(guó)標(biāo)準(zhǔn)。1992年,ISO 和 IEC 發(fā)佈了 SQL 的國(guó)際標(biāo)準(zhǔn),稱為 SQL-92。ANSI 隨之發(fā)佈的相應(yīng)標(biāo)準(zhǔn)是 ANSI SQL-92。ANSI SQL-92 有時(shí)被稱為 ANSI SQL。儘管不同的關(guān)聯(lián)式資料庫(kù)使用的 SQL 版本有一些差異,但大多數(shù)都遵循 ANSI SQL 標(biāo)準(zhǔn)。SQL Server 使用 ANSI SQL-92 的擴(kuò)展集,稱為 T-SQL,其遵循 ANSI 制定的 SQL-92 標(biāo)準(zhǔn)。

          ????? SQL 語(yǔ)言包括兩種主要程式設(shè)計(jì)語(yǔ)言類(lèi)別的陳述式: 資料定義語(yǔ)言 (DDL)與資料操作語(yǔ)言 (DML)。下面我們將介紹這兩類(lèi)語(yǔ)言。

          DDL
           

          ????? DDL 用於定義和管理物件,例如資料庫(kù)、資料表以及檢視表。DDL 陳述式通常包括每個(gè)物件的CREATE、ALTER 以及 DROP 命令。舉例來(lái)說(shuō),CREATE TABLE、ALTER TABLE 以及 DROP TABLE 這些陳述式便可以用來(lái)建立新資料表、修改其屬性(如新增或刪除資料行)、刪除資料表等,下面我們會(huì)一一介紹。

          CREATE TABLE 陳述式
           

          使用 DDL 在 MyDB 資料庫(kù)建立一個(gè)名為 Customer_Data 的范例資料表,本章后面的例子我們會(huì)使用到這個(gè)資料表。如前所述,CREATE TABLE 陳述式可以用來(lái)建立資料表。這個(gè)范例資料表被定義成四個(gè)資料行,如下所示:

          Use MyDB
          CREATE TABLE Customer_Data
          (customer_id smallint,
          first_name char(20),
          last_name char(20),
          phone char(10))
          GO
          這個(gè)陳述式能產(chǎn)生 Customer_Data 資料表,這個(gè)資料表會(huì)一直是空的直到資料被填入資料表內(nèi)。

          ALTER TABLE 陳述式
           

          ALTER TABLE 陳述式用來(lái)變更資料表的定義與屬性。在下面的例子中,我們利用 ALTER TABLE 在已經(jīng)存在的 Customer_Data 資料表中新增 middle_initial 資料行。

          ALTER TABLE Customer_Data
          ADD middle_initial char(1)
          GO
          現(xiàn)在資料表的定義包括了五個(gè)資料行,而不是之前的四個(gè)資料行 。

          DROP TABLE 陳述式
           

          DROP TABLE 陳述式用來(lái)刪除資料表定義以及所有的資料、索引、觸發(fā)程序、條件約束以及資料表的權(quán)限。要?jiǎng)h除我們的 Customer_Data 資料表,可利用下列命令:

          DROP TABLE Customer_Data
          GO。

          DML
           

          DML 利用 INSERT、SELECT、UPDATE 及 DELETE 等陳述式來(lái)操作資料庫(kù)物件所包含的資料。

          INSERT 陳述式
           

          INSERT 陳述式用來(lái)在資料表或檢視表中插入一列資料。例如,如果要在Customer_Data 資料表中新增一個(gè)客戶,可使用類(lèi)似以下的 INSERT 陳述式:

          INSERT INTO Customer_Data
          (customer_id, first_name, last_name, phone)
          VALUES (777, "Frankie", "Stein", "4895873900")
          請(qǐng)注意 SQL 陳述式中第二行的資料行名稱清單,清單上資料行名稱的次序決定了資料數(shù)值將被放在哪個(gè)資料行。舉例來(lái)說(shuō),第一個(gè)資料數(shù)值將被放在清單列出的第一個(gè)資料行 customer_id、第二個(gè)資料數(shù)值放在第二個(gè)資料行,依此類(lèi)推。由於我們?cè)诮①Y料表時(shí),定義資料資料行填入數(shù)值的次序與現(xiàn)在相同,因此我們不必特意指定欄位名稱。我們可以用以下的 INSERT 陳述式代替:

          INSERT INTO Customer_Data
          VALUES (777, "Frankie", "Stein", "4895873900")

          注意

          如果使用這種形式的 INSERT 陳述式,但被插入的數(shù)值次序上與建立資料表時(shí)不同,數(shù)值將被放入錯(cuò)誤的資料行。如果資料的型別與定義不符,則會(huì)收到一個(gè)錯(cuò)誤訊息。


          --------------------------------------------------------------------------------

          SELECT 陳述式
           

          SELECT 陳述式用來(lái)檢索資料表中的資料,而哪些資料被檢索由列出的資料行與陳述式中的 WHERE 子句決定。例如,要從之前建立的 Customer_Data 資料表中檢索 customer_id 以及 first_name 資料行的資料,并且只想取出每列中 first_name 資料行值為 Frankie 的資料,那麼可以利用以下的 SELECT 陳述式:

          SELECT customer_id, first_name FROM Customer_Data
          WHERE first_name = "Frankie"
          如果有一列符合 SELECT 陳述式中的標(biāo)準(zhǔn),則結(jié)果將顯示如下:

          customer_id???? first_name
          -------------??? ------------
          777????????????? Frankie
          UPDATE 陳述式
           

          UPDATE 陳述式用來(lái)更新或改變一列或多列中的值。例如,一位名稱為 Frankie Stein 的客戶想要在記錄中改變他的姓氏為 Franklin,可使用以下 UPDATE 陳述式:

          UPDATE Customer_Data
          SET first_name = "Franklin"
          WHERE last_name = "Stein" and customer_id= 777
          我們?cè)?WHERE 子句中加入 customer_id 的項(xiàng)目來(lái)確定其他名稱為 Stein 的客戶不會(huì)被影響-只有customer_id為777的客戶,姓氏會(huì)有所改變。

          --------------------------------------------------------------------------------

          說(shuō)明

          當(dāng)您使用 UPDATE 陳述式時(shí),要確定在 WHERE 子句提供充份的篩選條件,如此才不會(huì)不經(jīng)意地改變了一些不該改變的資料。


          --------------------------------------------------------------------------------

          DELETE 陳述式
           

          DELETE 陳述式用來(lái)刪除資料表中一列或多列的資料,您也可以刪除資料表中的所有資料列。要從 Customer_Data 資料表中刪除所有的列,您可以利用下列陳述式:

          DELETE FROM Customer_Data

          DELETE Customer_Data
          資料表名稱前的 FROM 關(guān)鍵字在 DELETE 陳述式中是選擇性的。除此之外,這兩個(gè)陳述式完全相同。

          要從 Customer_Data 資料表中刪除 customer_id 資料行的值小於100的列,可利用下列陳述式:

          DELETE FROM Customer_Data
          WHERE customer_id < 100
          現(xiàn)在我們已經(jīng)快速瀏覽了 SQL 提供的 DDL 與 DML 陳述式,接著,下面將介紹 T-SQL。

          SQL中的五種數(shù)據(jù)類(lèi)型?

          簡(jiǎn)要描述一下SQL中的五種數(shù)據(jù)類(lèi)型:字符型,文本型,數(shù)值型,邏輯型和日期型

          字符型

          VARCHAR VS CHAR

          VARCHAR型和CHAR型數(shù)據(jù)的這個(gè)差別是細(xì)微的,但是非常重要。他們都是用來(lái)儲(chǔ)存字符串長(zhǎng)度小于255的字符。

          假如你向一個(gè)長(zhǎng)度為四十個(gè)字符的VARCHAR型字段中輸入數(shù)據(jù)BIll GAtES。當(dāng)你以后從這個(gè)字段中取出此數(shù)據(jù)時(shí),你取出的數(shù)據(jù)其長(zhǎng)度為十個(gè)字符——字符串Bill Gates的長(zhǎng)度。 現(xiàn)在假如你把字符串輸入一個(gè)長(zhǎng)度為四十個(gè)字符的CHAR型字段中,那么當(dāng)你取出數(shù)據(jù)時(shí),所取出的數(shù)據(jù)長(zhǎng)度將是四十個(gè)字符。字符串的后面會(huì)被附加多余的空格。

          當(dāng)你建立自己的站點(diǎn)時(shí),你會(huì)發(fā)現(xiàn)使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段時(shí),你不需要為剪掉你數(shù)據(jù)中多余的空格而操心。

          VARCHAR型字段的另一個(gè)突出的好處是它可以比CHAR型字段占用更少的內(nèi)存和硬盤(pán)空間。當(dāng)你的數(shù)據(jù)庫(kù)很大時(shí),這種內(nèi)存和磁盤(pán)空間的節(jié)省會(huì)變得非常重要

          文本型

          TEXT

          使用文本型數(shù)據(jù),你可以存放超過(guò)二十億個(gè)字符的字符串。當(dāng)你需要存儲(chǔ)大串的字符時(shí),應(yīng)該使用文本型數(shù)據(jù)。

          注意文本型數(shù)據(jù)沒(méi)有長(zhǎng)度,而上一節(jié)中所講的字符型數(shù)據(jù)是有長(zhǎng)度的。一個(gè)文本型字段中的數(shù)據(jù)通常要么為空,要么很大。

          當(dāng)你從HTML fORM的多行文本編輯框(TEXTAREA)中收集數(shù)據(jù)時(shí),你應(yīng)該把收集的信息存儲(chǔ)于文本型字段中。但是,無(wú)論何時(shí),只要你能避免使用文本型字段,你就應(yīng)該不適用它。文本型字段既大且慢,濫用文本型字段會(huì)使服務(wù)器速度變慢。文本型字段還會(huì)吃掉大量的磁盤(pán)空間。

          一旦你向文本型字段中輸入了任何數(shù)據(jù)(甚至是空值),就會(huì)有2K的空間被自動(dòng)分配給該數(shù)據(jù)。除非刪除該記錄,否則你無(wú)法收回這部分存儲(chǔ)空間。

          數(shù)值型

          SQL支持許多種不同的數(shù)值型數(shù)據(jù)。你可以存儲(chǔ)整數(shù) INT 、小數(shù) NUMERIC、和錢(qián)數(shù) MONEY。

          INT VS SMALLINT VS TINYINT

          他們的區(qū)別只是字符長(zhǎng)度:

          INT型數(shù)據(jù)的表數(shù)范圍是從-2,147,483,647到2,147,483,647的整數(shù)

          SMALLINT 型數(shù)據(jù)可以存儲(chǔ)從-32768到32768的整數(shù)

          TINYINT 型的字段只能存儲(chǔ)從0到255的整數(shù),不能用來(lái)儲(chǔ)存負(fù)數(shù)

          通常,為了節(jié)省空間,應(yīng)該盡可能的使用最小的整型數(shù)據(jù)。一個(gè)TINYINT型數(shù)據(jù)只占用一個(gè)字節(jié);一個(gè)INT型數(shù)據(jù)占用四個(gè)字節(jié)。這看起來(lái)似乎差別不大,但是在比較大的表中,字節(jié)數(shù)的增長(zhǎng)是很快的。另一方面,一旦你已經(jīng)創(chuàng)建了一個(gè)字段,要修改它是很困難的。因此,為安全起見(jiàn),你應(yīng)該預(yù)測(cè)以下,一個(gè)字段所需要存儲(chǔ)的數(shù)值最大有可能是多大,然后選擇適當(dāng)?shù)臄?shù)據(jù)類(lèi)型。

          MUNERIC

          為了能對(duì)字段所存放的數(shù)據(jù)有更多的控制,你可以使用NUMERIC型數(shù)據(jù)來(lái)同時(shí)表示一個(gè)數(shù)的整數(shù)部分和小數(shù)部分。NUMERIC型數(shù)據(jù)使你能表示非常大的數(shù)——比INT型數(shù)據(jù)要大得多。一個(gè)NUMERIC型字段可以存儲(chǔ)從-1038到1038范圍內(nèi)的數(shù)。NUMERIC型數(shù)據(jù)還使你能表示有小數(shù)部分的數(shù)。例如,你可以在NUMERIC型字段中存儲(chǔ)小數(shù)3.14。

          當(dāng)定義一個(gè)NUMERIC型字段時(shí),你需要同時(shí)指定整數(shù)部分的大小和小數(shù)部分的大小。如:MUNERIC(23,0)

          一個(gè) NUMERIC型數(shù)據(jù)的整數(shù)部分最大只能有28位,小數(shù)部分的位數(shù)必須小于或等于整數(shù)部分的位數(shù),小數(shù)部分可以是零。

          MONEY VS SMALLMONEY

          你可以使用 INT型或NUMERIC型數(shù)據(jù)來(lái)存儲(chǔ)錢(qián)數(shù)。但是,專門(mén)有另外兩種數(shù)據(jù)類(lèi)型用于此目的。如果你希望你的網(wǎng)點(diǎn)能掙很多錢(qián),你可以使用MONEY型數(shù)據(jù)。如果你的野心不大,你可以使用SMALLMONEY型數(shù)據(jù)。MONEY型數(shù)據(jù)可以存儲(chǔ)從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢(qián)數(shù)。如果你需要存儲(chǔ)比這還大的金額,你可以使用NUMERIC型數(shù)據(jù)。

          SMALLMONEY型數(shù)據(jù)只能存儲(chǔ)從-214,748.3648到214,748.3647 的錢(qián)數(shù)。同樣,如果可以的話,你應(yīng)該用SMALLMONEY型來(lái)代替MONEY型數(shù)據(jù),以節(jié)省空間。

          邏輯型

          BIT

          如果你使用復(fù)選框( CHECKBOX)從網(wǎng)頁(yè)中搜集信息,你可以把此信息存儲(chǔ)在BIT型字段中。BIT型字段只能取兩個(gè)值:0或1。

          當(dāng)心,在你創(chuàng)建好一個(gè)表之后,你不能向表中添加 BIT型字段。如果你打算在一個(gè)表中包含BIT型字段,你必須在創(chuàng)建表時(shí)完成。

          日期型

          DATETIME VS SMALLDATETIME

          一個(gè) DATETIME型的字段可以存儲(chǔ)的日期范圍是從1753年1月1日第一毫秒到9999年12月31日最后一毫秒。

          如果你不需要覆蓋這么大范圍的日期和時(shí)間,你可以使用SMALLDATETIME型數(shù)據(jù)。它與DATETIME型數(shù)據(jù)同樣使用,只不過(guò)它能表示的日期和時(shí)間范圍比DATETIME型數(shù)據(jù)小,而且不如DATETIME型數(shù)據(jù)精確。一個(gè)SMALLDATETIME型的字段能夠存儲(chǔ)從1900年1月1日到2079年6月6日的日期,它只能精確到秒。

          DATETIME型字段在你輸入日期和時(shí)間之前并不包含實(shí)際的數(shù)據(jù)。



          jwebee

          我的個(gè)人網(wǎng)站
          posted on 2006-12-30 10:19 周行 閱讀(232) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): IT技術(shù)
          Java-Android-jwebee
          主站蜘蛛池模板: 永德县| 泗阳县| 布尔津县| 土默特左旗| 屯门区| 贵定县| 东海县| 弋阳县| 桂东县| 玛沁县| 塘沽区| 喀喇沁旗| 芮城县| 江川县| 德化县| 五原县| 济阳县| 仁化县| 盐源县| 新龙县| 三台县| 天全县| 雷山县| 宁明县| 云梦县| 安徽省| 武清区| 堆龙德庆县| 台中县| 桂平市| 奉贤区| 德阳市| 清水河县| 鄢陵县| 米林县| 满城县| 姜堰市| 临邑县| 民权县| 兰考县| 郁南县|