當前位置:首頁 » 編程語言 » sql易混

sql易混

發布時間: 2025-04-03 00:20:56

1. 初學資料庫應該從何學起

初學資料庫應該從以下幾點進行學習:

一、編程語言基礎
新手學大數據,首先要掌握基礎的編程語言基礎,比如Java、C++等,要初步掌握面向的對象、抽象類、介面及數據流及對象流等基礎,如果有疑問,可以去網上搜索相關書籍,再結合自己的疑問去翻書,就能很快的熟悉了解資料庫的基礎技術原理。
二、linux系統的基本操作
Linux系統的基本操作是大數據不可分割的一部分,企業的Mysql大數據的組件都是跑在linux環境下的,所以學會linux常用命令不能缺少,重點是要學習一下Linux環境的搭建,搭建平台,,能寫shell程序就會更好了。
三、學習Hadoop架構設計
要學大數據,首先要了解的是如何在單台Windows系統上通過虛擬機搭建多台Linux虛擬機,從而構建Hadoop集群,再建立spark開發環境,環境搭建成功後在網上搜羅一些demo,sql腳本之類,直接動手敲進去一點一點體會。
四、採用機器學習模式
為了發揮出大數據的優勢,提升你的辦公效率,就需要實操並應用其中的內容,必然也會涉及大量機器學習及演算法,這能最大化的發揮出計算機的性能,也是大數據的優勢所在。

想了解更多有關資料庫的相關信息,推薦咨詢達內教育。作為國內IT培訓的領導品牌,達內的每一名員工都以「幫助每一個學員成就夢想」為己任,也正因為達內人的執著與努力,達內已成功為社會輸送了眾多合格人才,為廣大學子提供更多IT行業高薪機會,同時也為中國IT行業的發展做出了巨大的貢獻。

2. MSSQL SERVER中易混淆的數據類型


數據類弄是數據的一種屬性,表示數據所表示信息的類型。任何一種計算機語言都定義了自己的數據類型。當然,不同的程序語言都具有不同的特點,所定義的數據類型的各類和名稱都或多或少有些不同。SQLServer 提供了 25 種數據類型:
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext
1.二進制數據類型
二進制數據包括 Binary、Varbinary 和 Image
Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小搜桐是 n + 4 個位元組。嘩態
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。
(2)字元數據類型
字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar 是變長字元數據,其長度不超過 8KB。Char 是定長字元數據,其長度最多為 8KB。超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為 Html 文檔全部都是 ASCII 字元,並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。
(3)Unicode 數據類型
Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非 Unicode 數據類型允許使用由特定字元集定義的字元。在 SQL Server安裝過程中,允許選擇一種字元集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字元。在 Unicode 標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。
在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,這時最多可以存儲 4000 個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000 個字元。
(4)日期和時間數據類型
日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在亂漏源後。在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式
(5)數字數據類型
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整數存儲的數據類型是
Int,Smallint和 Tinyint。Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,而 Smallint 據類型存儲數據的范圍大於Tinyint 數據類型存儲數據的范圍。使用 Int 數據狗昔存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小婁數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。
在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作。3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。
(6)貨幣數據表示正的或者負的貨幣數量 。
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney
Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。
(7)特殊數據類型
特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即
Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp 數據與插入數據或者日期和時間沒有關系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數據類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16 位元組的十六進制數字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。
2.用戶定義的數據類型
用戶定義的數據類型基於在 Microsoft SQL Server 中提供的數據類型。當幾個表中必須存儲同一種數據類型時,並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。例如,可定義一種稱為
postal_code 的數據類型,它基於 Char 數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。
(1)創建用戶定義的數據類型
創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype 可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char
等等。 null_type 表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)',"Not Null'
創建一個用戶定義的數據類型 ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是 DateTime,允許空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
創建兩個數據類型,即 telephone 和 fax
(2)刪除用戶定義的數據類型
當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。
SQLServer中易混淆的數據類型
SQL Server 中易混淆的數據類型
近來在做資料庫設計,有時候真弄不清SQL2000里的數據類型,所以摘了這篇文章。
(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的長度都在1到8000 之間,它們的區別在於char是定長字元數據,而varchar是變長字元數據。所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;而變長字元數據則不會以空格填充。text存儲可變長度的非Unicode數據,最大長度為2^31-1 (2,147,483,647)個字元。
後面三種數據類型和前面的相比,從名稱上看只是多了個字母"n",它表示存儲的是Unicode數據類型的字元。寫過程序的朋友對Unicode應該很了解。字元中,英文字元只需要一個位元組存儲就足夠了,但漢字眾多,需要兩個位元組存儲,英文與漢字同時存在時容易造成混亂,Unicode字元集就是為了解決字元集這種不兼容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。nchar、nvarchar的長度是在1到 4000之間。和char、varchar比較:nchar、nvarchar則最多存儲4000個字元,不論是英文還是漢字;而char、 varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
(2)datetime和smalldatetime
datetime:從1753年1月1日到9999年12月31日的日期和時間數據,精確到百分之三秒。
smalldatetime:從1900年1月1日到2079年6月6日的日期和時間數據,精確到分鍾。
(3)bitint、int、smallint、tinyint和bit
bigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數據。
int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數據。
smallint:從-2^15(-32,768)到2^15-1(32,767)的整數數據。
tinyint:從0到255的整數數據。
bit:1或0的整數數據。
(4)decimal和numeric
這兩種數據類型是等效的。都有兩個參數:p(精度)和s(小數位數)。p指定小數點左邊和右邊可以存儲的十進制數字的最大個數,p必須是從 1到38之間的值。s指定小數點右邊可以存儲的十進制數字的最大個數,s必須是從0到p之間的值,默認小數位數是0。
(5)float和real
float:從-1.79^308到1.79^308之間的浮點數字數據。
real:從-3.40^38到3.40^38之間的浮點數字數據。在SQL Server中,real的同義詞為float(24)。

3. 易混淆的一些sql函數(datediff()、timestampdiff()函數等)

SQL函數是資料庫操作中常用的工具,理解並掌握它們的用法對於數據處理和分析至關重要。本文將詳細介紹一些易混淆的SQL函數,包括concat、concat_ws、strcmp、length、left、right、upper、lower、datediff、last_day、replace、reverse、row_count、delete、drop、update、format、date_format、timestampdiff等。

concat函數用於拼接字元串,返回合並後的字元串。若任一參數為NULL,則返回值為NULL。

concat_ws函數類似於concat,但第一個參數作為分隔符,用於在字元串之間插入。NULL參數會被忽略。

strcmp函數比較兩個字元串,返回值為1或-1,表示字元串的大小關系。

length函數用於獲取字元串長度。

left函數從字元串左邊截取指定長度的子串。

right函數從字元串右邊截取指定長度的子串。

upper函數將字元串轉換為大寫。

lower函數將字元串轉換為小寫。

datediff函數計算兩個日期之間的天數差異。

last_day函數返回指定日期所在月份的最後一天。

replace函數用於替換字元串中的特定子串。

reverse函數顛倒字元串的順序。

row_count函數返回上一條SQL語句影響的記錄數。

delete函數用於刪除表中滿足條件的記錄。

drop函數用於刪除整個表。

update函數用於更新表中的數據。

format函數用於格式化顯示欄位,如兩位小數或整數。

date_format函數用於調整日期顯示格式。

timestampdiff函數計算兩個時間表達式之間的差值,支持小時、月和年。

掌握這些函數的用法,將極大地提高SQL操作的效率和准確性。

熱點內容
python生產者消費者 發布:2025-04-03 22:52:40 瀏覽:63
business文件夾 發布:2025-04-03 22:50:29 瀏覽:455
家用電腦當伺服器的配置 發布:2025-04-03 22:50:26 瀏覽:864
sql給欄位設置默認值 發布:2025-04-03 22:49:19 瀏覽:708
重慶電信dns電信伺服器地址 發布:2025-04-03 22:46:42 瀏覽:88
美團密碼忘了怎麼找回 發布:2025-04-03 22:44:38 瀏覽:3
cmd刪除指定文件夾 發布:2025-04-03 22:39:27 瀏覽:974
手機優酷緩存不了 發布:2025-04-03 22:32:53 瀏覽:882
沒有改過qq密碼為什麼密碼錯誤 發布:2025-04-03 22:05:43 瀏覽:677
ai編譯器工程師 發布:2025-04-03 22:01:39 瀏覽:144