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 子句經常用到的列上。如果某個大表經常使用某個字段進行...