SQL語句高階整理

2021-10-08 14:06:55 字數 4375 閱讀 9354

獲取系統時間 timestamp not null default current_timestamp comment 『操作時間』

top 子句用於規定要返回的記錄的數目。

1.1 指定數字寫法:select top number * from tablename。

1.2 百分比寫法: select top 50 percent * from table。

2.1 join: 如果表中有至少乙個匹配,則返回行

2.2 left join: 即使右表中沒有匹配,也從左表返回所有的行

2.3 right join: 即使左表中沒有匹配,也從右表返回所有的行

2.4 full join: 只要其中乙個表中存在匹配,就返回行

解釋:union 操作符用於合併兩個或多個 select 語句的結果集。

union all 包含重複。

解釋:select into 語句從乙個表中選取資料,然後把資料插入另乙個表中。

select into 語句常用於建立表的備份復件或者用於對記錄進行存檔。

4.1 sql foreign key constraint on create table

create table tablename

(id_o int not null,

orderno int not null,

id_p int,

primary key (id_o),

foreign key (id_p) references persons(id_p) //與另乙個表的外來鍵約束

)

4.2 表已存在新增外來鍵

alter table tablename

add constraint fk_name //命名外來鍵

add foreign key (id_p)

references persons(id_p)

4.3 撤銷 foreign key 約束

alter table tablename

drop foreign key fk_name

4.3 sql check constraint on create table

解釋:sql check 約束

check 約束用於限制列中的值的範圍。

如果對單個列定義 check 約束,那麼該列只允許特定的值。

如果對乙個表定義 check 約束,那麼此約束會在特定的列中對值進行限制。

create table tablename

(id_p int not null auto_increment,//自動增長

lastname varchar(255) not null,

firstname varchar(255),

address varchar(255),

city varchar(255),

constraint chk_name check (id_p>0 and city='sandnes') //check約束

)

撤銷約束同撤銷外來鍵

預設值4.4.1 新增

alter table tablename

alter column set default '***'

4.4.2 撤銷

alter table tablename

alter column drop default

5.1 index

解釋:您可以在表中建立索引,以便更加快速高效地查詢資料。

使用者無法看到索引,它們只能被用來加速搜尋/查詢。

create index index_name

on table_name (column_name1 條件降序可選,column_name2 條件可選,...)

5.1.1sql drop index 語句

alter table table_name drop index index_name
在 mysql 中,有三種主要的型別:文字、數字和日期/時間型別。

資料型別

描述char(size)

儲存固定長度的字串(可包含字母、數字以及特殊字元)。在括號中指定字串的長度。最多 255 個字元。

varchar(size)

儲存可變長度的字串(可包含字母、數字以及特殊字元)。在括號中指定字串的最大長度。最多 255 個字元。注釋:如果值的長度大於 255,則被轉換為 text 型別。

tinytext

存放最大長度為 255 個字元的字串。

text

存放最大長度為 65,535 個字元的字串。

blob

用於 blobs (binary large objects)。存放最多 65,535 位元組的資料。

mediumtext

存放最大長度為 16,777,215 個字元的字串。

mediumblob

用於 blobs (binary large objects)。存放最多 16,777,215 位元組的資料。

longtext

存放最大長度為 4,294,967,295 個字元的字串。

longblob

用於 blobs (binary large objects)。存放最多 4,294,967,295 位元組的資料。

enum(x,y,z,etc.)

允許你輸入可能值的列表。可以在 enum 列表中列出最大 65535 個值。如果列表中不存在插入的值,則插入空值。注釋:這些值是按照你輸入的順序儲存的。可以按照此格式輸入可能的值:enum(『x』,『y』,『z』)

set與 enum 類似,set 最多只能包含 64 個列表項,不過 set 可儲存乙個以上的值。

資料型別

描述tinyint(size)

-128 到 127 常規。0 到 255 無符號*。在括號中規定最大位數。

smallint(size)

-32768 到 32767 常規。0 到 65535 無符號*。在括號中規定最大位數。

mediumint(size)

-8388608 到 8388607 普通。0 to 16777215 無符號*。在括號中規定最大位數。

int(size)

-2147483648 到 2147483647 常規。0 到 4294967295 無符號*。在括號中規定最大位數。

bigint(size)

-9223372036854775808 到 9223372036854775807 常規。0 到 18446744073709551615 無符號*。在括號中規定最大位數。

float(size,d)

帶有浮動小數點的小數字。在括號中規定最大位數。在 d 引數中規定小數點右側的最大位數。

double(size,d)

帶有浮動小數點的大數字。在括號中規定最大位數。在 d 引數中規定小數點右側的最大位數。

decimal(size,d)

作為字串儲存的 double 型別,允許固定的小數點。

* 這些整數型別擁有額外的選項 unsigned。通常,整數可以是負數或正數。如果新增 unsigned 屬性,那麼範圍將從 0 開始,而不是某個負數。

資料型別

描述date()

日期。格式:yyyy-mm-dd注釋:支援的範圍是從 『1000-01-01』 到 『9999-12-31』

datetime()

*日期和時間的組合。格式:yyyy-mm-dd hh:mm:ss注釋:支援的範圍是從 『1000-01-01 00:00:00』 到 『9999-12-31 23:59:59』

timestamp()

*時間戳。timestamp 值使用 unix 紀元(『1970-01-01 00:00:00』 utc) 至今的描述來儲存。格式:yyyy-mm-dd hh:mm:ss注釋:支援的範圍是從 『1970-01-01 00:00:01』 utc 到 『2038-01-09 03:14:07』 utc

time()

時間。格式:hh:mm:ss 注釋:支援的範圍是從 『-838:59:59』 到 『838:59:59』

year()

2 位或 4 位格式的年。注釋:4 位格式所允許的值:1901 到 2155。2 位格式所允許的值:70 到 69,表示從 1970 到 2069。

* 即便 datetime 和 timestamp 返回相同的格式,它們的工作方式很不同。在 insert 或 update 查詢中,timestamp 自動把自身設定為當前的日期和時間。timestamp 也接受不同的格式,比如 yyyymmddhhmmss、yymmddhhmmss、yyyymmdd 或 yymmdd。

sql語句整理

建立表 create table teacher id int 11 not null auto increment,teaname varchar 10 not null,varchar 10 not null,course varchar 10 not null,primary key id e...

sql語句整理

mysql 命令大全 1 修改主鍵id的遞增預設值 alter table tablename auto increment 100000 2 將表重新命名 alter table oldtablename rename to newtablename 3 為表新增新的字段 alter table ...

SQL 高階語句

mysql語句 select column name s from table name limit number oracle 語句 select column name s from table name where rownum number sql 語句 選出其中的兩條記錄 select t...