SQL及Oracle和MySQL的資料型別詳解

2021-06-13 20:00:58 字數 2937 閱讀 7290

sql(structured query language) 又稱結構化查詢語言,是一種在關係型資料庫中定義和查詢及操縱資料的標準語言,是使用者和資料庫之間進行交流的介面,正在像oracle、

mysql

、sql server

等幾乎所有的資料庫實現了該介面,都支援sql的查詢。

sql語言結構簡潔,功能強大,簡單易學,所以自從推出以來,sql語言得到了廣泛的應用。

sql 語言由下面

5個子語言組成:

資料定義語言(ddl-data definition language);

資料查詢語言(selete-query statements);

資料操縱語言(dml-datat manipulation language);

事務控制語言(tc-transaction control statements);

資料控制語言(dcl-datat control language);

資料型別

oracle和mysql都是兩種重要的資料為,下面從它們各自的基本資料型別開始講起。

資料型別

資料型別 說明

oracle

mysql

數值型別

number(p,s)

儲存數值資料型別,如浮點型、整數型、分數、雙精度等。其中p為精度,表示數字的總位數(1 <= p <=38) ; s為範圍,表示小數點右邊的位數,它在-84至127之間。預設38位

tinyint

微整型,1位元組

smallint

小整型,2位元組

mediumint

中整型,3位元組

int或integer

整數資料型別

整型,4位元組

bigint

大整型,8位元組

float

浮點數資料型別

單精度浮點數值,4位元組

double

雙精度浮點數值,8位元組

decimal

對decimal(m,d) ,如果m>d,為m+2否則為d+2

字串型別

char(n)

n=1to2000位元組,定長字串,n位元組長,如果不指定長度,預設為1個位元組長(乙個漢字為2位元組)

定長字串,0-255位元組

nchar(n)

nls(national language support , 國際語言支援)的資料型別僅可以儲存由資料庫 nls 字符集定義的 unicode 字符集。oracle最多可以儲存2000byte

varchar(n)

最多可以以可變長度來儲存4000b,因此不需要空格來作補充。

變長字串,0-255位元組

nvarchar(n)

n=1to4000位元組,最多可以以可變長度來儲存4000b,因此不需要空格來作補充。

nls(national language support , 國際語言支援)的資料型別僅可以儲存由資料庫 nls 字符集定義的 unicode 字符集。

varchar2(n)

varchar2 比 varchar 更適合使用,由於相容性的原因,所以仍然在 oracle 資料庫中保留著 varchar 。

nvarchar2

nls 的資料型別與 varchar2 資料型別等價。這個資料型別最多可儲存4000b 。

clob

儲存大量的單位元組字元資料和多位元組字元資料。儲存的最大容量為4g

nclob

儲存可變長度的unicode字符集字元資料,儲存的最大容量為4g

blob

bfile

bfile:檔案定位器;指向位於伺服器檔案系統是二進位制檔案(儲存乙個檔案路徑)

long

儲存可變長度的字元資料,最多儲存2gb 。

raw儲存基於位元組的資料。最多儲存2000個位元組,使用需指定大小。raw資料型別可以建立索引。

long raw

儲存可變長度的二進位制資料。最多能儲存2gb。不能索引。

tinyblob

不超過 255 個字元的二進位制字串,0-255位元組

tinytext

短文本字串,0-255位元組

blob

二進位制形式的長文字資料,0-65 535位元組

text

長文字資料,0-65 535位元組

mediumblob

二進位制形式的中等長度文字資料

mediumtext

中等長度文字資料,0-16 777 215位元組

logngblob

二進位制形式的極大文字資料,0-4 294 967 295位元組

longtext

極大文字資料,0-4 294 967 295位元組

日期和時間

date

儲存表的日期和時間資料,使用7個位元組固定長度,每個位元組分別儲存世紀,年,月,日,小時,分和秒;值從西元前2023年1月1日到公元2023年12月31日。 oracle中的sysdate函式功能是返回當前的日期和時間。

日期值,yyyy-mm-dd

timestamp

儲存日期的年,月,日以及時間的小時,分和秒值。其中秒值精確到小數點後6位,同時包含時區資訊。 oracle中的systimestamp函式功能是返回當前日期,時間和時區。

time

時間值或持續時間,hh:mm:ss

year

年份值,yyyy

datetime

混合日期和時間,yyyy-mm-dd hh:mm:ss

timestamp

混合日期和時間值,時間戳,yyyymmdd hhmmss

復合型別

enum 

乙個 enum 型別最多可以包含 65536 個元素,其中乙個元素被 mysql 保留,用來儲存錯誤資訊,這個錯誤值用索引 0 或者乙個空字串表示。

set 

容器型別,乙個 set 型別最多可以包含 64 項元素,且不可能包含兩個相同的元素

Oracle常用SQL及命令

1.啟動和關閉監聽lsnrctl start 和 lsnrctl stop 2.啟動和關閉資料庫 startup 和shutdown 3.啟動sqlplus sqlplus nolog 退出 quit 4.登陸oracle conn connect username password as sysd...

sql注入 mysql Sql注入之Mysql

sql注入之mysql mysql函式 system user 系統使用者名稱 user 使用者名稱 current user 當前使用者名稱 session user 連線資料庫的使用者名稱 database 資料庫名 version 資料庫版本 load file 讀取本地檔案函式 datadi...

Oracle 建立索引及SQL優化

oracle 建立索引及sql優化 資料庫索引 索引有單列索引 復合索引之說 如何某錶的某個欄位有主鍵約束和唯一性約束,則oracle 則會自動在相應的約束列上建議唯一索引。資料庫索引主要進行提高訪問速度。建設原則 1 索引應該經常建在where 子句經常用到的列上。如果某個大表經常使用某個字段進行...