MYSQL 指令集合

手動不易,轉(zhuǎn)發(fā)請注明出處? --Trance

數(shù)據(jù)庫系統(tǒng)命令:


? ? ? ? ? (1).查看存儲過程狀態(tài):show procedure status;

? ? ? ? ? (2).顯示系統(tǒng)變量:show variables (最好使用模糊查詢)

? ? ? ? ? (3).查詢當(dāng)前系統(tǒng)正在執(zhí)行的進(jìn)程(相當(dāng)于DDL(數(shù)據(jù)庫定義語言) 或 DML(數(shù)據(jù)庫操作語言) 或 DCL(數(shù)據(jù)庫控制語言)):show processlist

? ? ? ? ? (4).顯示操作對于的操作內(nèi)容權(quán)限:show privileges

? ? ? ? ? (5).顯示數(shù)據(jù)庫支持引擎:show engines

? ? ? ? ? (6).顯示最后一個執(zhí)行的語句所產(chǎn)生的錯誤、警告和通知:show warnings

? ? ? ? ? (7).顯示最后一個執(zhí)行語句的錯誤:show errors

? ? ? ? ? (8).數(shù)據(jù)庫幫助命令:在登錄情況下help

? ? ? ? ? (9).數(shù)據(jù)庫退出指令:exit 或 quit

? ? ? ? ? (10).數(shù)據(jù)庫操作命令大全:在未登錄情況下 mysql - help

? ? ? ? ? (11).set names = 編碼 進(jìn)入數(shù)據(jù)庫后馬上設(shè)置 防止亂碼


操作術(shù)語:


? ? ? ? ? ? DDL:

? ? ? ? ? ? ? ? Data Definition Language 數(shù)據(jù)定義語言

? ? ? ? ? ? DML:

? ? ? ? ? ? ? ? Data Manipulation Language 數(shù)據(jù)操縱語言

? ? ? ? ? ? DQL:

? ? ? ? ? ? ? ? Data Query Language 數(shù)據(jù)查詢語言

? ? ? ? ? ? DCL:

? ? ? ? ? ? ? ? Data Control Language 數(shù)據(jù)控制語言

? ? ? ? ? ? TCL:

? ? ? ? ? ? ? ? Transaction Control Language 事務(wù)控制語言



數(shù)據(jù)庫設(shè)計原則(三大范式 3NF):


? ? ? ? ? ? ? ? ? ? ? ? ? ? 第一范式(1NF):

? ? ? ? ? ? ? ? ? ? ? ? ? ? 原子性:數(shù)據(jù)不可再分:一個表中的數(shù)據(jù)(字段值)不可再分? (注意:從應(yīng)用需求來決定,沒有絕對性)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(錯誤):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三,重慶

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(正確):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name? ? ? ? address

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三? ? ? ? 重慶

? ? ? ? ? ? ? ? ? ? ? ? ? ? 第二范式(2NF):

? ? ? ? ? ? ? ? ? ? ? ? ? ? 唯一性:保證行數(shù)據(jù)的唯一性

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(錯誤):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 李四

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(正確):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2? ? ? ? 李四? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 第三范式(3NF):

? ? ? ? ? ? ? ? ? ? ? ? ? ? 獨立性:消除傳遞依賴:禁止非主鍵字段依賴非主鍵依賴,在發(fā)生數(shù)據(jù)冗余,難以維護(hù)修改 (注意:發(fā)生這種情況一定是多主鍵表)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(錯誤):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name? ? ? ? classno? ? ? ? classname

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三? ? ? ? 1? ? ? ? ? ? ? 一班

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 李四? ? ? ? 2? ? ? ? ? ? ? 二班

? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子(正確):

? ? ? ? ? ? ? ? ? ? ? ? ? ? id? ? ? ? name? ? ? ? classno? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 張三? ? ? ? 1? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? 李四? ? ? ? 2

? ? ? ? ? ? ? ? ? ? ? ? ? ? classno? ? ? classname

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? 一班? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2? ? ? ? ? ? 二班


數(shù)據(jù)庫連接方式:


? ? ? ? ? ? ? 連接本地:

? ? ? ? ? ? ? ? ? ? ? ? mysql -u 用戶名 -p \n

? ? ? ? ? ? ? ? ? ? ? ? 輸入密碼

? ? ? ? ? ? ? 連接遠(yuǎn)程:

? ? ? ? ? ? ? ? ? ? ? ? mysql -h 主機(jī)名 -u 用戶名 \n (在對方的數(shù)據(jù)庫中擁有登錄用戶并且有權(quán)限)

? ? ? ? ? ? ? ? ? ? ? ? 輸入密碼


數(shù)據(jù)庫用戶操作:


? ? ? ? ? ? ? 查詢所有用戶:

? ? ? ? ? ? ? ? ? ? ? ? select user from user;

? ? ? ? ? ? ? 創(chuàng)建用戶:

? ? ? ? ? ? ? ? ? ? ? ? create user 用戶名 identified by 密碼

? ? ? ? ? ? ? 用戶授權(quán):

? ? ? ? ? ? ? ? ? ? ? ? grant 權(quán)限名稱(如:select、delete等DML語句、全部(ALL)) on *.*(注意這里前面的*是代表數(shù)據(jù)庫,第二個*是表名,這里表示所有的數(shù)據(jù)庫.表) to 用戶

? ? ? ? ? ? ? 撤銷用戶權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? revoke 權(quán)限 on *.* from 用戶

? ? ? ? ? ? ? 刪除用戶:

? ? ? ? ? ? ? ? ? ? ? ? drop user 用戶名 (這個有點問題,待解決)

? ? ? ? ? ? ? ? ? ? ? ? delete from mysql where user = '用戶名稱'

? ? ? ? ? ? ? 查詢用戶信息:

? ? ? ? ? ? ? ? ? ? ? ? show grants for 用戶名

? ? ? ? ? ? ? 密碼轉(zhuǎn)換:

? ? ? ? ? ? ? select password('密碼') 注意:這是一個41個長度的16進(jìn)制密碼,如果在登錄后設(shè)置密碼必須轉(zhuǎn)換為41個長度16進(jìn)制密碼,否則報錯

? ? ? ? ? ? ? 未登錄設(shè)置用戶密碼:

? ? ? ? ? ? ? ? ? ? ? ? mysqladmin -u 用戶名 -p 新密碼(注意這里是第一次安裝設(shè)置)

? ? ? ? ? ? ? 修改用戶密碼:

? ? ? ? ? ? ? ? ? ? ? ? mysqladmin -u 用戶名 -p 舊密碼 password 新密碼

? ? ? ? ? ? ? 登錄后設(shè)置用戶密碼:

? ? ? ? ? ? ? ? ? ? ? ? set password for 用戶名 = password(新密碼),如果是當(dāng)前用戶直接set password = password(新密碼)

? ? ? ? ? ? ? 修改用戶名:

? ? ? ? ? ? ? ? ? ? ? ? ? MYSQL5.0以后 rename user 用戶名 to 新用戶名

? ? ? ? ? ? ? ? ? ? ? ? ? update 表名 set user = '新用戶名' where user = '舊用戶名'

? ? ? ? ? ? ? ? 刷新權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? flush privileges

? ? ? ? ? ? ? ? 權(quán)限列表:

? ? ? ? ? 表的創(chuàng)建、插入、修改、刪除、查詢權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? insert

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? update

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delete

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select (select(列名...),可以作用在某列上)

? ? ? ? ? ? ? ? 數(shù)據(jù)庫與表的刪除和修改權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? drop

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? alter

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? modify

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? chanage

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 外鍵權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? references

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 臨時表權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create temporary tables

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 索引權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? index

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 視圖權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create view

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? show view

? ? ? ? ? ? ? ? ? ? ? 存儲過程、函數(shù)權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cteate routine

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? alter routine

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? execute(execute on procedure)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? execute(execute on function)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 重載權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? reload

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 鎖表權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? lock tables

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 復(fù)制權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? replication client

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? replication slave

? ? ? ? ? ? ? ? ? ? ? ? ? 查看數(shù)據(jù)庫權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? show databases

? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看進(jìn)程權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? process

? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建用戶權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create user

? ? ? ? ? ? ? ? ? ? ? ? ? ? 文件訪問權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? file

? ? ? ? ? ? ? ? ? ? ? ? ? ? 殺死線程權(quán)限:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? super


數(shù)據(jù)庫管理員命令:


? ? ? ? ? ? ? ? mysqladmin -V 數(shù)據(jù)庫版本信息

? ? ? ? ? ? ? ? mysqladmin -u 用戶 -p 舊密碼 password 新密碼 修改密碼

? ? ? ? ? ? ? ? mysqladmin -i(number) 重復(fù)執(zhí)行間隔數(shù)

? ? ? ? ? ? ? ? mysqladmin -c(count) 重復(fù)執(zhí)行次數(shù)

? ? ? ? ? ? ? ? mysqladmin variables 數(shù)據(jù)庫變量

? ? ? ? ? ? ? ? mysqladmin -? 數(shù)據(jù)庫幫助

? ? ? ? ? ? ? ? mysqladmin -u root -p reload 重載權(quán)限信息

? ? ? ? ? ? ? ? mysqladmin -uroot -p shutdown 使用安全模式關(guān)閉數(shù)據(jù)庫

? ? ? ? ? ? ? ? 待研究...


庫操作:


? ? ? (1).查看存在數(shù)據(jù)庫:

? ? ? ? ? ? ? ? ? ? ? ? ? show databases

? ? ? (2).創(chuàng)建數(shù)據(jù)庫:

? ? ? ? ? ? ? ? ? ? ? create database if not exists 數(shù)據(jù)庫名稱 (注意:后面最好加上字符編碼,防止亂碼) -> create database 數(shù)據(jù)量名稱 character set utf8(你需求的字符編碼) collate utf8_general_ci(子集)

? ? ? (3).使用數(shù)據(jù)庫:

? ? ? ? ? ? ? ? ? ? ? use 數(shù)據(jù)量名稱

? ? ? (4).刪除刪除庫:

? ? ? ? ? ? ? ? ? ? ? drop database if exists 數(shù)據(jù)庫名稱

? ? ? (5).查看創(chuàng)建數(shù)據(jù)庫信息:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? show create database 數(shù)據(jù)庫名稱


表操作:


? ? ? (1).查看數(shù)據(jù)庫表:show tables

? ? ? (2).創(chuàng)建表:

? ? ? ? ? ? ? ? ? create table if not exists 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件]

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集,comment=表備注;

? ? ? (3)完整性約束條件表:

? ? ? ? ? ? ? ? ? ? ? ? ? primary key 主鍵約束

? ? ? ? ? ? ? ? ? ? ? ? ? foreign key 外鍵約束

? ? ? ? ? ? ? ? ? ? ? ? ? unique? ? ? 唯一約束

? ? ? ? ? ? ? ? ? ? ? ? ? not null? ? 不能為空

? ? ? ? ? ? ? ? ? ? ? ? ? auto_increment 自增

? ? ? ? ? ? ? ? ? ? ? ? ? default? ? 默認(rèn)值

? ? ? (4)設(shè)置表主鍵:

? ? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型 primary key,? ? ? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件]

? ? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;? ? ? ? ?

? ? ? ? ? 多字段主鍵:

? ? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],? ?

? ? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? ? primary key(屬性1,屬性2,...)? ? ? ? ? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;

? ? ? ? ? 添加主鍵:

? ? ? ? ? ? ? ? ? alter table 表名 add primary key(列名)

? ? ? ? ? 修改主鍵:

? ? ? ? ? ? ? ? ? alter table 表名 change 列名 屬性名稱 屬性類型[完整性約束條件]

? ? ? ? ? 刪除主鍵:

? ? ? ? ? ? ? ? ? alter table 表名 drop primary key

? ? 修改自增變量值:

? ? ? ? ? ? ? ? ? alter table 表名 auto_increment = 從數(shù)字幾開始.

? ? ? (5)設(shè)置外鍵:

? ? ? ? ? ? ? ? ? 外鍵是表的一個特殊字段。如果字段id是一個表A的屬性,且依賴于表B的主鍵.

? ? ? ? ? ? ? ? ? 那么,稱表B為父表,表A為子表,id為表A的外鍵。通過id字段將父表B和子表A建立關(guān)聯(lián)關(guān)系.

? ? ? ? ? ? ? ? ? 設(shè)置表的外鍵指在創(chuàng)建表設(shè)置某個字段為外鍵.

? ? ? ? ? ? ? ? ? 外鍵的好處:可以使得兩張表關(guān)聯(lián),保證數(shù)據(jù)的一致性和實現(xiàn)一些級聯(lián)操作.


? ? ? ? ? 級聯(lián)操作:

? ? ? ? ? ? ? ? ? on delete (在刪除的時候) restrict(限制外表中的外鍵改動) cascade(跟隨外鍵改動) set null(設(shè)置為空) set default(設(shè)置默認(rèn)值) no action(無動作,默認(rèn)的)

? ? ? ? ? ? ? ? ? on update (在刪除的時候) restrict(限制外表中的外鍵改動) cascade(跟隨外鍵改動) set null(設(shè)置為空) set default(設(shè)置默認(rèn)值) no action(無動作,默認(rèn)的)? ? ? ? ?

? 創(chuàng)建表時設(shè)置外鍵:

? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],? ?

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? constraint 外鍵名稱 foreign key(主鍵表列屬性(也就是本表列屬性)) references 外鍵表名稱(外鍵表列屬性) on (update 級聯(lián)操作 或 delete 級聯(lián)操作) <---- 光標(biāo)

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;

? ? ? 單獨設(shè)置外鍵:

? ? ? ? ? ? ? ? ? alter table employee add constraint 外鍵名稱 foreign key(外鍵表列屬性(也就是本表列屬性)) references department(主鍵表列屬性) on (update 級聯(lián)操作 或 delete 級聯(lián)操作)

? ? ? ? ? 修改外鍵:

? ? ? ? ? ? ? ? ? 外鍵不支持修改

? ? ? ? ? 刪除外鍵:

? ? ? ? ? ? ? ? ? alter table 表名 drop foreign key 外鍵名稱

? ? ? (6).設(shè)置唯一約束:

? ? ? ? ? 創(chuàng)建唯一約束:

? ? ? ? ? ? 建表時創(chuàng)建:

? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? ? constraint 唯一約束名稱 unique key(列名)? ? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;

? ? ? ? ? ? 建表后創(chuàng)建:

? ? ? ? ? ? ? ? ? alter table 表名 add constraint 唯一約束名稱 unique key(列名)

? ? ? ? ? 刪除唯一約束:

? ? ? ? ? ? ? ? ? alter table 表名 drop index 約束

? ? ? ? ? 修改唯一約束:

? ? ? ? ? ? ? ? ? 唯一約束不支持修改

? ? ? (7).設(shè)置默認(rèn)值:

? ? ? ? ? 建表時創(chuàng)建:

? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件] default 默認(rèn)值? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;

? ? ? ? ? 建表后創(chuàng)建:

? ? ? ? ? ? ? ? ? alter table 表名 alter column 列名 set default 默認(rèn)值

? ? ? ? ? 刪除默認(rèn)值:

? ? ? ? ? ? ? ? ? alter table 表名 alter column 列名 drop default

? ? ? ? ? 修改默認(rèn)值:

? ? ? ? ? ? ? ? ? 同創(chuàng)建方式

? ? (8).設(shè)置不為空值:

? ? ? ? ? 建表時創(chuàng)建:

? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件] not null? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集;

? ? ? ? ? 建表后創(chuàng)建:

? ? ? ? ? ? ? ? ? alter table 表名 change 列名 列名(屬性名稱) 屬性類型[完整性約束條件]

? ? ? 修改不能為空值:

? ? ? ? ? ? ? ? ? alter table 表名 modify 列名 屬性類型[完整性約束條件] not null

? ? ? ? ? ? 刪除空值:

? ? ? ? ? ? ? ? ? (在實際意義上算是修改字段屬性了)? alter table 表名 change 列名 列名(屬性名稱) 屬性類型[完整性約束條件]

? ? (9).自增變量:

? ? ? ? ? ? ? ? auto_increment 默認(rèn)是從1開始遞增

? ? ? 建表時創(chuàng)建:

? ? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件] auto_increment? <---- 光標(biāo)

? ? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集,(如果要改變自增變量起始值)auto_increment = 起始值;

? ? ? 建表后創(chuàng)建:

? ? ? ? ? ? ? ? ? alter table 表名 modify 列名 int auto_increment (注意:自增的前提 此列必須為主鍵 或者 唯一約束)

? ? ? ? ? ? ? ? ? alter table 表名 auto_increment = 起始值

? ? ? ? 刪除自增:

? ? ? ? ? ? ? ? ? alter table 表名 modify 列名 屬性類型[完整性約束條件]

? ? ? ? 修改自增:

? ? ? ? ? ? ? ? ? 同建表后創(chuàng)建

? ? (10).刪除表:

? ? ? ? ? ? ? ? drop if exists 表名

? ? (11).清空表數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? truncate 表名

? ? (12).改變列名稱:

? ? ? ? ? ? ? ? ? alter table 表名 change 列名 列名(屬性名稱) 屬性類型[完整性約束條件]

? ? (13).改變列類型屬性約束:

? ? ? ? ? ? ? ? ? alter table 表名 modify 列名(屬性名稱) 屬性類型[完整性約束條件]

? ? (14).增加一列:

? ? ? ? ? ? ? ? ? alter table 表名 add column 列名(屬性名稱) 屬性類型[完整性約束條件]

? ? (15).刪除一列:

? ? ? ? ? ? ? ? ? alter table 表名 drop column 列名

? ? (16).表引擎:

創(chuàng)建時指定表引擎:

? ? ? ? ? ? ? ? create table 表名(

? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件]

? ? ? ? ? ? ? ? )engine=引擎類型;? ? ? ? ? ? ? ? ? <---- 光標(biāo)

? ? ? 修改表引擎:

? ? ? ? ? ? ? ? alter table 表名 engine = 引擎名稱

? ? ? 刪除表引擎:

? ? ? ? ? ? ? ? 不存在

? ? ? ? 引擎類型:(存儲機(jī)制,也稱為表類型)

? ? ? ? ? ? ? ? InnoDB

? ? ? ? ? ? ? ? MyIsam

? ? ? ? ? ? ? ? BDB

? ? ? ? ? ? ? ? archive

? ? ? ? ? ? ? ? Mermory

? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? 默認(rèn)是innodb

? ? (17).查看表狀態(tài):

? ? ? ? ? ? ? ? show table status from 數(shù)據(jù)庫名稱 where name = '表名'

? ? ? ? ? ? ? ? show table status

? ? (18).查看一個表幾行幾列:

? ? ? ? ? ? ? ? mysqlshow -u root -p 數(shù)據(jù)庫名稱 -v -v

? ? (19).查看表列信息:

? ? ? ? ? ? ? ? show columns from 表名 或者 show columns from 數(shù)據(jù)庫.表名

? ? (20).表備注:

? ? ? ? 創(chuàng)建表時:

? ? ? ? ? ? ? ? create table if not exists 表名(

? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件],

? ? ? ? ? ? ? ? 屬性名稱 屬性類型[完整性約束條件]

? ? ? ? ? ? ? ? )engine=引擎類型,charset=字符編碼集,comment=表備注;

? ? ? ? 創(chuàng)建表后:

? ? ? ? ? ? ? ? alter table 表名 comment = 備注信息

? ? ? 修改表備注:

? ? ? ? ? ? ? ? 同創(chuàng)建表后

? ? ? 刪除表備注:

? ? ? ? ? ? ? ? 暫時未發(fā)現(xiàn)

? ? (21).創(chuàng)建相似表:

? ? ? ? ? ? ? ? ? ? create if not exists table 表名 like 存在表名 (注意:只是復(fù)制了表結(jié)構(gòu),數(shù)據(jù)不會復(fù)制)


數(shù)據(jù)類型:


? ? ? ? 數(shù)值類型:

? ? ? ? 整數(shù)類型:

? ? ? ? ? ? ? ? ? tinyint -> 1字節(jié) -> 小整數(shù)值

? ? ? ? ? ? ? ? smallint -> 2字節(jié) -> 大整數(shù)值

? ? ? ? ? ? ? ? mediumint -> 3字節(jié) -> 大整數(shù)值

? ? ? ? ? ? ? ? ? ? ? int -> 4字節(jié) -> 大整數(shù)值? ? ?

? ? ? ? ? ? ? ? ? bigint -> 8字節(jié) -> 極大整數(shù)值

? ? ? ? ? ? ? ? ? ? float -> 4字節(jié) -> 單精度浮點數(shù)值

? ? ? ? ? ? ? ? ? double -> 8字節(jié) -> 雙精度浮點數(shù)值

? ? ? ? ? ? ? ? ? decimal 附屬double


? ? ? 字符串類型:

? ? ? ? ? ? ? ? char -> 0-255字節(jié) -> 定長字符串

? ? ? ? ? ? ? varchar -> 0-255字節(jié) -> 變長字符串

? ? ? ? ? ? tinyblob -> 0-255字節(jié) -> 不超過255個字符的二進(jìn)制字符串

? ? ? ? ? ? tinytext -> 0-255字節(jié) -> 短文本字符串

? ? ? ? ? ? blob -> 0-65535字節(jié) -> 二進(jìn)制形式的長文本數(shù)據(jù)

? ? ? ? ? ? ? text -> 0-65535字節(jié) -> 長文本數(shù)據(jù)

? ? ? ? ? ? mediumbob -> 0-16777215字節(jié) -> 二進(jìn)制形式的中等長度文本數(shù)據(jù)

? ? ? ? ? ? mediutext -> 0-16777215字節(jié) -> 中等長度文本數(shù)據(jù)

? ? ? ? ? ? logngblob -> 0-4294967295字節(jié) -> 二進(jìn)制形式的極大文本數(shù)據(jù)

? ? ? ? ? ? longtext -> 0-4294967295字節(jié) -> 極大文本數(shù)據(jù)

? ? ? ? ? ?varbinary(m) -> 允許長度0-m個字節(jié)的定長字符串,值的長度+1個字節(jié)

? ? ? ? ? ? binary(m) -> 允許長度0-m個字節(jié)的定長字符串


? 日期和時間類型:

? ? ? ? ? ? ? ? date -> 4字節(jié) -> 1000-01-01/9999-12-31 yyyy-mm-dd -> 年/月/日

? ? ? ? ? ? ? ? time -> 3字節(jié) -> '-838:59:59'/'838:59:59' hh:mm:ss -> 時/分/秒

? ? ? ? ? ? ? ? year -> 1字節(jié) -> 1901/2155 yyyy -> 年

? ? ? ? ? ? datetime -> 8字節(jié) -> 1000-01-01 00:00:00/9999-12-31 23:59:59 yyyy-mm-dd hh:mm:ss -> 年/月/日 時/分/秒

? ? ? ? ? ? datestamp -> 4字節(jié) ->? 1970-01-01 00:00:00/2037? yyyymmdd hhmmss -> 時間戳 年/月/日 時/分/秒

? ? ? 復(fù)合類型:

? ? ? ? ? ? ? ? enum -> 包含65536個元素,其中一個元素保留,用來保存錯誤信息 -> enum('值1','值2'...)

? ? ? ? ? ? ? ? set -> 包含64個元素,不能包含2個相同的元素 -> set('值1','值2'...)


索引:


? ? (1).查看索引:

? ? ? ? ? ? ? ? show index from 表名

? ? ? ? ? ? ? ? show keys from 表名

? ? ? ? 創(chuàng)建索引

? ? ? ? ? ? ? ? create index 索引名稱 on 表名(列名);

? ? ? ? ? ? ? ? alter table 表名 add index 索引名稱(列名)

? ? ? ? 唯一索引:

? ? ? ? ? ? ? ? create unique index 索引名稱 on 表名(列名)

? ? ? ? ? ? ? ? alter table 表名 add unique 索引名稱(列名)

? ? ? ? ? ? ? ? 與普通索引相似,但是要求索引列值是唯一不能重復(fù)的,可以為空.

? ? ? ? 主鍵索引:

? ? ? ? ? ? ? ? create primary key on 表名(列名)

? ? ? ? ? ? ? ? alter table 表名 add primary key(列名)

? ? ? ? ? ? ? ? 就是主鍵列,不允許為空值,一般為Int類型和自增

? ? ? ? 組合索引:

? ? ? ? ? ? ? ? create index 索引名稱 on 表名(列名1,列名2,...)

? ? ? ? 全文索引:

? ? ? ? ? ? ? ? create fulltext 索引名稱 on 表名(列名1,列名2,...)

? ? ? ? ? ? ? ? alter table 表名 add fulltext (列名1,列名2,...)

? ? ? ? 刪除索引:

? ? ? ? ? ? ? ? drop index 索引名稱 on 表名

? ? ? ? ? ? ? ? alter table 表名 drop index 索引名稱

? ? ? ? ? ? ? ? (注意如果有主外鍵約束,需要先刪除主外鍵約束)? ? ? ? ? ? ?


視圖:


? ? 創(chuàng)建視圖:

? ? ? ? ? ? ? 默認(rèn)字段:create view 視圖名稱 as 查詢語句? ? (注意:這里創(chuàng)建的視圖是虛擬表,在查看表可以看到,但是是虛擬的)

? ? ? ? ? ? ? 自聲明字段:create view 視圖名稱 ('字段1','字段2'...) as 查詢語句? (注意:查詢的字段列數(shù)必須和視圖表列數(shù)相同)

? ? 刪除視圖:

? ? ? ? ? ? ? drop view if exists 視圖名稱

? ? 修改視圖:

? ? ? ? ? ? ? 視圖用來查詢數(shù)據(jù),如果做修改就毫無意義了,而且即使修改也會出現(xiàn)各種問題



? ? ? ? ? 注意: -> 在MYSQL中,字符串和日期值必須使用單引號引用,數(shù)值類型可有可無



DML語句 -> 插入數(shù)據(jù)語法:


? ? ? ? ? ? ? ? ? ? ? ? (1).insert into 表名 (列名1,列名2,列名3...) values('值1','值2'...)? (注意:自增字段忽略值)

? ? ? ? ? ? ? ? ? ? ? ? (2).replace into 表名 (列名1,列名2,列名3...) values('值1','值2'...) (注意:插入數(shù)據(jù)與主鍵和唯一鍵有重復(fù)則會變成更新數(shù)據(jù),否則增加一行數(shù)據(jù))

? ? ? ? ? ? ? ? ? ? ? ? (3).insert into 表名 (列名1,列名2,列名3...) select 列名1,列名2... from 其他表名 (注意:列數(shù)量要一致)

? ? ? ? ? ? ? ? ? ? ? ? (4).insert into 表名 set 列名1 = 值1 , 列名2 = 值2 ...



載入文本數(shù)據(jù)(load data):(在有主鍵的方式下運行有問題):


? ? ? ? ? ? ? ? ? ? ? ? (1).load data infile '完整數(shù)據(jù)文件地址' into table 表名 (普通方式)

? ? ? ? ? ? ? ? ? ? ? ? (2).load data infile '完整數(shù)據(jù)文件地址' into table 表名 fields terminted by '列分割符'

? ? ? ? ? ? ? ? ? ? ? ? (3).load data local? infile '完整數(shù)據(jù)文件地址' into table 表名 ... (指定local本地讀取,未指定在服務(wù)器上讀取)

? ? ? ? ? ? ? ? ? ? ? ? (4).load data low_priority infile '完整數(shù)據(jù)文件地址' into table 表名 ... (指定low_priority會在其他人沒讀取這個表的時候才把數(shù)據(jù)插入)

? ? ? ? ? ? ? ? ? ? ? ? (5).load data infile '完整數(shù)據(jù)文件地址' replace into table 表名 (普通方式)

? ? ? ? ? ? ? ? ? ? ? ? (6).load data infile '完整數(shù)據(jù)文件地址' into table 表名 fields terminted by '列分割符' ignore 行數(shù) lines (忽略前幾行導(dǎo)入)

? ? ? ? ? ? ? ? ? ? ? ? (7).load data infile '完整數(shù)據(jù)文件地址' into table 表名 fields terminted by '列分割符' lines ternubated by '行分割符'

? ? ? ? ? ? ? ? ? ? ? ? (8).load data infile '完整數(shù)據(jù)文件地址' into table 表名 fields terminted by '列分割符' enclosed by '符號' (字段包含符號)

? ? ? ? ? ? ? ? ? ? ? ? (9).load data infile '完整數(shù)據(jù)文件地址' into table 表名 fields terminted by '列分割符' escaped by '符號' (轉(zhuǎn)義符)


復(fù)制表:


? ? 復(fù)制表結(jié)構(gòu)生成新表:

? ? ? ? ? ? ? ? ? ? ? create table 新表名稱 like 舊表名稱

? ? ? 復(fù)制表和數(shù)據(jù)一起:

? ? ? ? ? ? ? ? ? ? ? create table 新表名稱 select * from 舊表名稱

? 復(fù)制表中其中一些字段:

? ? ? ? ? ? ? ? ? ? ? create table 新表名稱 (select '列名1','列名2'...)

復(fù)制表中其中一些字段并且改名:

? ? ? ? ? ? ? ? ? ? ? create table 新表名稱 (select '列名1' as '新表列名'.... from 舊表名稱)

復(fù)制表中其中一些字段并且增加字段:

? ? ? ? ? ? ? ? ? ? ? create table 新表名稱(列名 屬性類型[完整性約束條件])(select '列名'... from 舊表)? ? ?

? ? 復(fù)制舊表數(shù)據(jù)到新表:

? ? ? ? ? ? ? 全表數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? ? insert into 新表名稱 select * from 舊表名稱

? ? ? ? ? ? ? 單列數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? ? insert into 新表名稱('列名1','列名2'...) select '列名1','列名2' from 舊表名稱



DML語句 -> 刪除數(shù)據(jù)語法:


? ? ? ? ? ? ? 刪除數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? ? ? (1).delete from 表名 (刪除表中全部數(shù)據(jù))(以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (2).delete from 表名 where 條件表達(dá)式 (帶條件的刪除,以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (3).delete from 表名 where 條件表達(dá)式 order by '列名' desc 或者 asc? (用于指定這些數(shù)據(jù)的刪除順序)(以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (4).delete from 表名 limit 數(shù)目 (刪除指定范圍的數(shù)據(jù))(以行為單位)



DML語句 -> 修改數(shù)據(jù)語法:


? ? ? ? ? ? ? 修改數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? ? ? (1).update 表名 set '列名1' = '值1','列名2' = '值2' (修改表中所有數(shù)據(jù))(以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (2).update 表名 set '列名1' = '值1','列名2' = '值2' where 條件表達(dá)式 (帶條件的刪除,以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (3).update 表名 set '列名1' = '值1','列名2' = '值2' order by '列名' desc 或者 asc? (用于指定這些數(shù)據(jù)的修改順序)(以行為單位)

? ? ? ? ? ? ? ? ? ? ? ? (4).update 表名 set '列名1' = '值1','列名2' = '值2' limit 數(shù)目 (修改指定范圍的數(shù)據(jù))(以行為單位)


DML語句 -> 查詢數(shù)據(jù)語法:


? ? ? ? ? (1).基本查詢:

? ? ? ? ? ? ? ? ? ? ? ? (1).select 表達(dá)式

? ? ? ? ? ? ? ? ? ? ? ? ? ? 舉例 1: select 1

? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果: 1

? ? ? ? ? ? ? ? ? ? ? ? ? ? 舉例 2: select 1 + 1

? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果: 2

? ? ? ? ? ? ? ? ? ? ? ? ? ? 舉例 3: select 1 > 0

? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果: 1 (這里返回是 true 和 false , 1 代表 true , 0 代表 false)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 舉例 4: select 1 < 0

? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果: 0 (這里返回是 true 和 false , 1 代表 true , 0 代表 false)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 舉例 5: select now()

? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果: 當(dāng)前時間? ?

? ? ? ? ? ? ? ? ? ? ? ? (2).別名 as

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名' as '別名' .... from 表名 (給字段取別名)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 別名.列名1,別名.列名2 ... from 表名 as 別名 (給表取別名)

? ? ? ? ? ? ? ? ? ? ? ? (3).去重 distinct (默認(rèn)為all)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select distinct '列名' from 表名 (distinct * 無效)

? ? ? ? ? ? ? ? ? ? ? ? (4).from 數(shù)據(jù)源

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源(表)

? ? ? ? ? ? ? ? ? ? ? ? (5).where子句

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源(表) where 篩選條件列 (對數(shù)據(jù)源進(jìn)行條件篩選,篩選機(jī)制是按行判斷,where子句依賴from子句)

? ? ? ? ? ? ? ? ? ? ? ? (6).where子句各種運算符:

? ? ? ? ? ? ? ? ? ? ? ? ? ? 算術(shù)運算符:? +? -? *? /? %

? ? ? ? ? ? ? ? ? ? ? ? ? ? 比較運算符:? >? >=? <? <=? =? <>? ==? != (最后2種不推薦使用,應(yīng)該遵循SQL語法規(guī)范)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 邏輯運算符:? and(與)? or(或者)? not(非)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where 篩選條件列 = 列值

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where true

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where 1

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where false

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where 0

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 輸出 from 數(shù)據(jù)源 where not(篩選條件表達(dá)式)

? ? ? ? ? ? ? ? ? ? ? ? (7).is 運算符

? ? ? ? ? ? ? ? ? ? ? ? ? ? '列名' is null? ? ? ? (判斷字段是否是空值,就是沒有值得意思)

? ? ? ? ? ? ? ? ? ? ? ? ? ? '列名' is not null? ? (判斷某個字段不是空值)

? ? ? ? ? ? ? ? ? ? ? ? ? ? '列名' is true? ? ? ? (判斷某個字段為真)

? ? ? ? ? ? ? ? ? ? ? ? ? ? '列名' is false? ? ? (判斷某個字段為假:0,0.00,'',null等)

? ? ? ? ? ? ? ? ? ? ? ? (8).between運算符 (范圍判斷 什么和什么之間)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名1'... from 表名 where 篩選條件列 between ? and ? (方法1)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名1'... from 表名 where 篩選條件列 比較運算符 ? and ? (方法2)

? ? ? ? ? ? ? ? ? ? ? ? (9).in 運算符 (查詢指定范圍但無任何順序范圍)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名1'... from 表名 where 篩選條件列 in ('值1'...)

? ? ? ? ? ? ? ? ? ? ? (10).like 運算符 (模糊查詢)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (注意:like 查詢依賴2個特殊符號: 1. % 代表任何長度的任何字符 2. _ 代表一個長度的任何字符)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名1'... from 表名 where 篩選條件列 like '%值%'

? ? ? ? ? ? ? ? ? ? ? ? ? ? (如果遇到查詢與符號相同的需求可以使用轉(zhuǎn)義字符 如: \% \_)

? ? ? ? ? ? ? ? ? ? ? (11).group by 分組 (將多行數(shù)據(jù),以某種標(biāo)準(zhǔn)進(jìn)行分類存放)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (注意:這里會有點抽象,我們根據(jù)分組查詢的信息只有部分是有用的,比如共有幾個分組等)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select count(*) from 表名 group by '列名' (得到的是每個分組下的數(shù)據(jù)條數(shù))

? ? ? ? ? ? ? ? ? ? ? ? ? ? select 組信息 form 表名 group by '列名'? (可以這樣理解,我們得到的是組信息,而不是單條數(shù)據(jù)信息)

? ? ? ? ? ? ? ? ? ? ? (12).having (只能對分組結(jié)果進(jìn)行篩選,就是必須與group by 連用)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select count(*) from 表名 group by '列名' having count(*) > 數(shù)字

? ? ? ? ? ? ? ? ? ? ? (13).order by (對結(jié)果進(jìn)行排序 asc 或 desc)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名 order by '列名1'...

? ? ? ? ? ? ? ? ? ? ? (14).limit (指定范圍數(shù)據(jù)查詢,起始行號從0開始,取出指定的函數(shù))

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名 limit 起始行號,顯示的記錄條數(shù)


? ? ? ? ? (2).連接查詢:

? ? ? ? ? ? ? ? ? ? ? ? (1).交叉連接 cross join

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1,表2,... on 連接條件...

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1 join 表2 on 連接條件 join 表3 on 連接條件...

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1 cross join 表2 on 連接條件 cross join 表3 on 連接條件...

? ? ? ? ? ? ? ? ? ? ? ? ? ? 交叉連接結(jié)果: (表1 + 表2)個列 (表1 * 表2)個行

? ? ? ? ? ? ? ? ? ? ? ? (2).內(nèi)連接 inner join

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1 inner(可省略) join 表2 on 連接條件? (注意:連接條件一般是參與表連接的n個表,相同列的相等)

? ? ? ? ? ? ? ? ? ? ? ? ? ? select '列名1'... from 表1 inner(可省略) join 表2 on 連接條件? (注意:連接條件一般是參與表連接的n個表,相同列的相等)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (注意:跟主外鍵并無實際的關(guān)系)

? ? ? ? ? ? ? ? ? ? ? ? (3).左連接 left(outer) join

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1 left join 表2 on 連接條件 (注意:內(nèi)連接結(jié)果,但是多了一個功能就是可以將左表不符合內(nèi)連接條件的數(shù)據(jù)也查詢出來)

? ? ? ? ? ? ? ? ? ? ? ? (4).右連接 right(outer) join

? ? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表1 right join 表2 on 連接條件 (注意:內(nèi)連接結(jié)果,但是多了一個功能就是可以將右表不符合內(nèi)連接條件的數(shù)據(jù)也查詢出來)

? ? ? ? ? ? ? ? ? ? ? ? (5).全連接 (注意:在mysql中是沒有這種語法的)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (注意:內(nèi)連接結(jié)果,但是多了一個功能就是可以將左、右表不符合內(nèi)連接條件的數(shù)據(jù)也查詢出來)


? ? ? ? ? (3).子查詢: (就是用一個查詢的結(jié)果,作為另一個查詢的判斷條件)

? ? ? ? ? ? ? ? ? ? ? (注意:子查詢必須帶有圓括號)

? ? ? ? ? ? ? ? ? ? ? (1).表子查詢:

? ? ? ? ? ? ? ? ? ? ? ? ? (一個子查詢返回的結(jié)果理論上是多行多列的時候,此時可以當(dāng)作一個"表"來使用,通常放在from后面)

? ? ? ? ? ? ? ? ? ? ? ? ? 例子:

? ? ? ? ? ? ? ? ? ? ? ? ? select * from (select * from 表名) as 別名 (注意:把查詢結(jié)果集當(dāng)作數(shù)據(jù)源必須要有別名,否則報錯)

? ? ? ? ? ? ? ? ? ? ? (2).行子查詢:

? ? ? ? ? ? ? ? ? ? ? ? ? (一個子查詢返回的結(jié)果理論上是一行多列的時候,此時可以當(dāng)作一個行來使用,通常放在行比較語法中)

? ? ? ? ? ? ? ? ? ? ? ? ? 例子:

? ? ? ? ? ? ? ? ? ? ? ? ? select * from (select * from 表名 where 列名 = 值) as 別名

? ? ? ? ? ? ? ? ? ? ? (3).列子查詢:

? ? ? ? ? ? ? ? ? ? ? ? ? (一個子查詢返回的結(jié)果理論上是多行一列的時候,此時可當(dāng)多個值使用,類似(6,2,5,3))

? ? ? ? ? ? ? ? ? ? ? ? ? 例子:

? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名 where 列名 in (select 列名 from 表名 where 列名 = 值)

? ? ? ? ? ? ? ? ? ? ? (4).標(biāo)量子查詢:

? ? ? ? ? ? ? ? ? ? ? ? ? (一個子查詢返回的結(jié)果理論上是一行一列的時候,此時可以當(dāng)作一個值使用)

? ? ? ? ? ? ? ? ? ? ? ? ? 例子:

? ? ? ? ? ? ? ? ? ? ? ? ? select * form 表名 where 列名 = (select 列名 或 其他)

? ? ? ? ? ? ? ? ? ? ? (5).all

? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名 where 列名 比較運算符 all(子查詢) (用來遍歷判斷,只要是比較為真的都被視為結(jié)果)

? ? ? ? ? ? ? ? ? ? ? (6).any

? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名 where 列名 比較運算符 any(子查詢) (用來遍歷判斷,只要是比較為真的都被視為結(jié)果)

? ? ? ? ? ? ? ? ? ? ? (7).exists 子查詢

? ? ? ? ? ? ? ? ? ? ? ? ? (該子查詢?nèi)绻袛?shù)據(jù),則返回真,否則為假,帶隱式連接,子查詢使用了主查詢的數(shù)據(jù))

? ? ? ? ? ? ? ? ? ? ? ? ? select * from 表名1 where exists (select * from 表名2 where 列名 = 值 where 表名2.列名 = 表名1.列名)

? ? ? ? ? (4).聯(lián)合查詢: union

? ? ? ? ? ? ? ? ? ? ? (1).select * from 表1 union [all | distinct] select * from 表2 ...

? ? ? ? ? ? ? ? ? ? ? (注意:參與表必須字段數(shù)一致,字段類型也應(yīng)該一致,聯(lián)合查詢默認(rèn)會自動消除重復(fù)行distinct,如果希望被允許,使用all)? ? ?


事務(wù):


? ? (事務(wù)簡單來說就是: 要成功一起成功,失敗一個也是失敗,全部是真才是真,一個為假,也是假)

? ? ? (1).開啟、關(guān)閉自動提交事務(wù)

? ? ? ? ? set autocommit = 0 或者 1 或者 true 或者 false

? ? ? (2).手動模式下每執(zhí)行一條語句需要手動提交

? ? ? ? ? commit (注意語句在沒提交事務(wù)的情況下,執(zhí)行后是在內(nèi)存中,等待生效)

? ? ? (3).事務(wù)的基本執(zhí)行流程:

? ? ? ? ? ? ? ? ? ? ? ? ? ? (1).開啟一項事務(wù): start transaction 或者 begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? (2).執(zhí)行多條DML語句

? ? ? ? ? ? ? ? ? ? ? ? ? ? (3).判斷這些語句的結(jié)果

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果沒錯誤 commit? 如果有錯誤 rollback


? ? ? ? ? ? ? ? ? ? 例子:

? ? ? ? ? ? ? ? ? ? ? ? (無錯誤情況下)

? ? ? ? ? ? ? ? ? ? ? ? start transaction

? ? ? ? ? ? ? ? ? ? ? ? insert、delete、update、quer? ?

? ? ? ? ? ? ? ? ? ? ? ? commit

? ? ? ? ? ? ? ? ? ? ? ? (有錯誤情況下)

? ? ? ? ? ? ? ? ? ? ? ? start transaction

? ? ? ? ? ? ? ? ? ? ? ? insert、delete、update、query (過程出錯)

? ? ? ? ? ? ? ? ? ? ? ? rollback



mysql編程:


? ? ? ? ? (1).語句塊包含符:

? ? ? ? ? ? [標(biāo)識符 :] begin

? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? end [標(biāo)識符];

? ? ? ? ? (2).流程控制:

? ? ? ? ? ? ? ? ? ? ? (1).if語句:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if 條件表達(dá)式 then

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else if 條件表達(dá)式 then

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...n個else if 語句...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;


? ? ? ? ? ? ? ? ? ? ? (2).case 語句:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? when 匹配值 then begin ... end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else begin ... end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end case


? ? ? ? ? ? ? ? ? ? ? (3).loop 語句:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 標(biāo)識符:loop

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(條件) then (必須有一個退出循環(huán)的條件,否則形成死循環(huán))

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? leave 標(biāo)識符;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end if;?


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end loop 標(biāo)識符


? ? ? ? ? ? ? ? ? ? ? (4).while 語句:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while 條件表達(dá)式 do

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...? (這里退出靠循環(huán)機(jī)制)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end while;? ?


? ? ? ? ? ? ? ? ? ? ? (5).repeat 語句:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? repeat

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? until(條件表達(dá)式)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end repeat;

? ? ? ? ? (2).變量聲明:

? ? ? ? ? ? ? ? ? ? ? (1).普通變量 不帶 @ 符號 (只能在編程環(huán)境中使用:函數(shù)內(nèi)部、存儲過程、觸發(fā)器)

? ? ? ? ? ? ? ? ? ? ? ? ? 聲明形式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? declare 變量名 屬性類型 默認(rèn)值...

? ? ? ? ? ? ? ? ? ? ? ? ? 賦值形式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? set 變量名 = 值


? ? ? ? ? ? ? ? ? ? ? (2).會話變量 帶 @ 符號

? ? ? ? ? ? ? ? ? ? ? ? ? 聲明形式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? set @變量名 = 值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select @變量名 := 值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? selent 值 into @變量名


? ? ? ? ? (3).函數(shù):

? ? ? ? ? ? ? ? ? (1).聲明方式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delimiter // (定義語義分隔符)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create function 函數(shù)名稱(形參1 類型1,形參2,...)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? returns 返回值類型

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return 返回值;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //


? ? ? ? ? ? ? ? ? (2).調(diào)用方式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select 函數(shù)名稱()


? ? ? ? ? ? ? ? ? (3).刪除函數(shù):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? drop function 函數(shù)名


? ? ? ? ? ? ? ? ? ? ? 注意事項:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在函數(shù)體中不能有select或者其他返回結(jié)果集語句


? ? ? ? ? (4).存儲過程: procedure

? ? ? ? ? ? ? ? ? ? ? (1).聲明方式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delimiter 分隔符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create procedure 存儲過程名稱(in|out|inout 形參1 類型1,...)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分隔符


? ? ? ? ? ? ? ? ? ? ? (2).調(diào)用存儲過程:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? call 存儲過程名稱()? ? ? ? ? ? ? ? ?


? ? ? ? ? (5).觸發(fā)器:

? ? ? ? ? ? ? ? ? ? (1).聲明方式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create trigger 觸發(fā)器名稱 觸發(fā)時間(before、after) 觸發(fā)事件(insert、update、delete) on 表名 for each row

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end;

? (6).游標(biāo):

? ? ? ? ? (1).聲明方式:

? ? ? ? ? ? ? ? (1).定義游標(biāo):declare 游標(biāo)名稱 cursor for 查詢語句

(2).打開游標(biāo):open 游標(biāo)名稱

(3).游標(biāo)抓取:fetch 游標(biāo)名稱 into 變量...

(4).關(guān)閉游標(biāo):close 游標(biāo)名稱

delimiter 分隔符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create procedure 存儲過程名稱(in|out|inout 形參1 類型1,...)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? begin

// 聲明游標(biāo)變量...

// 定義游標(biāo) declare 游標(biāo)名稱 for? select 列名1,列名2... from 表名

// 打開游標(biāo) open 游標(biāo)名稱

// 游標(biāo)抓取 fetch 游標(biāo)名稱 into 游標(biāo)變量...

// 關(guān)閉游標(biāo) close 游標(biāo)名稱

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

end;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分隔符



mysql導(dǎo)出(備份):


? (1).導(dǎo)出全部數(shù)據(jù)庫:

? ? ? mysqldump -u 用戶名 -p -A > 導(dǎo)出的文件名.sql

? (2).導(dǎo)出全部數(shù)據(jù)庫自定義路徑

? ? ? mysqldump -u 用戶名 -p -A > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (3).導(dǎo)出單個數(shù)據(jù)庫

? ? ? mysqldump -u 用戶名 -p -B 數(shù)據(jù)庫名1,數(shù)據(jù)庫2... > 導(dǎo)出的文件名.sql

? ? ? (默認(rèn)路徑:C:\Users\當(dāng)前用戶,注意以每臺電腦的系統(tǒng)盤符為準(zhǔn))

? (4).導(dǎo)出單個數(shù)據(jù)庫自定義路徑

? ? ? mysqldump -u 用戶名 -p -B 數(shù)據(jù)庫名 > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (5).導(dǎo)出指定數(shù)據(jù)庫所有表自定義路徑

? ? ? mysqldump -u 用戶名 -p -B 數(shù)據(jù)庫名 --tables > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (6).導(dǎo)出指定數(shù)據(jù)庫指定表自定義路徑

? mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名1,表名2... > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (7).導(dǎo)出指定數(shù)據(jù)庫指定表(帶過濾條件)自定義路徑

? ? ? mysqldump -u 用戶名 -p -B 數(shù)據(jù)庫名 表名 --where="條件" > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (8).導(dǎo)出指定庫所有表結(jié)構(gòu)

? ? ? mysqldump -u 用戶名 -p -d -B 數(shù)據(jù)庫名 > (路徑 如:F:\...\xx.sql)導(dǎo)出的文件名.sql

? (9).導(dǎo)出查詢數(shù)據(jù)為txt文件到本地(首先要登錄)(需要權(quán)限非常麻煩)

? ? ? ? ? ? ? select 字段,... into outfile '導(dǎo)出路徑' fields terminated by '分隔符'


mysql導(dǎo)入(還原):

? ? ? ? ? (1).第一種方式:

? ? ? ? ? ? ? mysql -u root -p < (路徑 如:F:\...\xx.sql)導(dǎo)入文件名.sql

? ? ? ? ? (1).第二種方式(需登錄):

? ? ? ? ? ? ? source (路徑 如:F:\...\xx.sql)導(dǎo)入文件名.sql


mysql函數(shù):


? ? ? ? ? ------------ 字符串函數(shù) ------------

? (1). ascii(字符串) -> 返回字符串的第一個字符的ascii值

? (2). ord(字符串) -> 如果字符串是單字符返回如ascii值,如果是字符串多字符返回(ascii(字符1) + ascii(字符2) + ...)

? (3). conv(數(shù)字,原進(jìn)制,轉(zhuǎn)換進(jìn)制) -> 將一個數(shù)字從x進(jìn)制轉(zhuǎn)換為x進(jìn)制

? (4). bin(數(shù)字) -> 將數(shù)字轉(zhuǎn)換為2進(jìn)制? 以字符串返回

? (5). oct(數(shù)字) -> 將數(shù)字轉(zhuǎn)換為8進(jìn)制? 以字符串返回

? (6). hex(數(shù)字) -> 將數(shù)字轉(zhuǎn)換為16進(jìn)制 以字符串返回

? (7). char(數(shù)字,...) -> 每個數(shù)字對應(yīng)了ascii碼表上的值,返回一個組成字符串

? (8). concat(字符串1,字符串2...) -> 拼接字符串

? (9). length(字符串) -> 返回字符串的長度

? (10).locate(字符串1,字符串2) -> 返回字符串1在字符串2第一次出現(xiàn)的位置(下標(biāo)1開始)

? (11).position(字符串1 in 字符串2) -> 返回字符串1在字符串2第一次出現(xiàn)的位置(下標(biāo)1開始)

? (12).locate(字符串1,字符串2,位置) -> 返回字符串1在字符串2指定位置第一次出現(xiàn)的位置(下標(biāo)1開始)

? ? ? ? ? (13).instr(字符串1,字符串2) -> 返回字符串2在字符串1第一次出現(xiàn)的位置

? ? ? ? ? (14).ipad(字符串,補齊長度,補齊字符串) -> 使用補全字符串補全字符串左邊,根據(jù)補全長度

? ? ? ? ? (15).rpad(字符串,補齊長度,補齊字符串) -> 使用補全字符串補全字符串右邊,根據(jù)補全長度

? (16).left(字符串,長度) -> 返回字符串左邊長度個字符

? (17).right(字符串,長度) -> 返回字符串右邊長度個字符

? (18).substring(字符串,起始位置,截取長度) -> 截取字符串

? (19).substring(字符串 from 起始位置 for 截取長度) -> 截取字符串

? (20).mid(字符串,起始位置,截取長度) -> 截取字符串

? (21).substring(字符串,起始位置) -> 截取字符串

? (22).substring(字符串 from 起始位置) -> 截取字符串

? (23).substring_index(字符串,分割符,索引) -> 使用分隔符分割字符串然后獲取分割后數(shù)組長度個內(nèi)容(整數(shù) 左邊開始 負(fù)號 右邊開始)

? (24).ltrim(字符串) -> 去除字符串左邊的空格

? (25).rtrim(字符串) -> 去除字符串右邊的空格

? (26).trim([[both | leading | trailing] [remstr] from] 字符串)? ? -> 通過指定條件((both(兩邊) leading(頭部) trailing(尾部)) 條件字符串 from 原始字符串)去除字符串指定內(nèi)容

? (27).soundex(字符串) -> 返回一個同音的字符串 感覺無用...

? (28).space(數(shù)字) -> 返回一個多個空格的字符串

? (29).replace(字符串,被替換字符串,替換字符串) -> 替換字符串中需要被替換的字符串

? (30).repeat(字符串,數(shù)字) -> 返回由多個此字符串拼接的字符串

? (31).reverse(字符串) -> 顛倒字符串的順序并且返回

? (32).insert(字符串,起始位置,插入長度,插入字符串) -> 在一個字符串中插入另一個字符串

? (33).elt(數(shù)字,字符串1,字符串2,字符串3...) -> 返回指定索引位置的字符串

? (34).field(查找字符串,字符串1,字符串2...) -> 返回查找字符串在這些字符串中的索引

? (35).find_in_set(查找字符串,字符串集('a,b,c,d,e...')) -> 返回查找字符串在字符串集中的索引

? (36).lower(字符串) -> 返回小寫字符串

? (37).lcase(字符串) -> 返回小寫字符串

? (38).upper(字符串) -> 返回大寫字符串

? (39).ucase(字符串) -> 返回大寫字符串

? (40).load_file(文件名稱) -> 讀文件,以字符串的形式返回


? ------------ 數(shù)學(xué)函數(shù) ------------

? (41).abs(數(shù)字) -> 返回數(shù)字絕對值

? (42).sign(數(shù)字) -> 返回數(shù)字正負(fù)符號

? (43).mod(除數(shù),被除數(shù)) -> 返回余數(shù)

? ? ? ? ? (44).floor(數(shù)字) -> 返回不大于數(shù)字的最大整數(shù)值

? ? ? ? ? (45).ceiling(數(shù)字) -> 返回不小于數(shù)字的最小整數(shù)值

? (46).round(數(shù)字,保留小數(shù)位) -> 返回數(shù)字的四舍五入,保留小數(shù)位個小數(shù)位

? (47).exp(數(shù)字) -> 返回數(shù)字自然對數(shù)的底

? (48).log(數(shù)字) -> 返回數(shù)字的自然對數(shù)

? (49).log10(數(shù)字) -> 返回數(shù)字以10為底的自然對數(shù)

? (50).pow(數(shù)字,次冪) -> 返回數(shù)字的次冪(平方)

? (51).sqrt(數(shù)字) -> 返回數(shù)字的非負(fù)數(shù)平方根

? (52).pi() -> 返回圓周率(π)

? (53).cos(n) -> 返回余弦值

? (54).sin(數(shù)字) -> 返回數(shù)字的正弦值

? (55).tan(數(shù)字) -> 返回數(shù)字的正切值

? (56).acos(數(shù)字) -> 返回數(shù)字的反余弦值

? (57).asin(數(shù)字) -> 返回數(shù)字的反正弦值

? (58).atan(數(shù)字) -> 返回數(shù)字的反正切值

? (59).cot(數(shù)字) -> 返回數(shù)字的余切

? (60).rand() -> 返回0 - 0.1 之間的隨機(jī)浮點值

? (61).rand(數(shù)字) -> 返回以數(shù)字作為初始值的隨機(jī)浮點值

? (62).degrees(數(shù)字) -> 把數(shù)字弧度轉(zhuǎn)換為角度返回

? (63).radians(數(shù)字) -> 把數(shù)字角度轉(zhuǎn)換為弧度返回

? (64).truncate(保留數(shù)字,保留位數(shù)) -> 返回保留數(shù)字的保留位小數(shù)

? (65).least(數(shù)字1,數(shù)字2,數(shù)字3...) -> 返回最小值

? (66).greatest(數(shù)字1,數(shù)字2,數(shù)字3...) -> 返回最大值


? ------------ 日期函數(shù) ------------

? (67).dayofweek(日期) -> 返回輸入日期是星期幾 (注意:這里返回的是國際標(biāo)準(zhǔn) 6=星期天 0=星期一 1=星期二...)

? (68).weelkday(日期) -> 返回輸入日期是星期幾

? (69).dayofmonth(日期) -> 返回日期在月份中的天數(shù)(幾號)

? (70).dayofyear(日期) -> 返回日期在年中是第幾天

? (71).month(日期) -> 返回日期中的月份

? (72).dayname(日期) -> 返回日期是星期幾(英文字母返回)

? (73).monthname(日期) -> 返回日期是幾月(英文字母返回)

? (74).quarter(日期) -> 返回日期是第幾個季度

? (75).week(日期) -> 返回日期是一年中的第幾周

? (76).year(日期) -> 返回日期的年份

? (77).hour(時間) -> 返回時間的小時數(shù)

? (78).minute(時間) -> 返回時間的分鐘數(shù)

? (79).second(時間) -> 返回時間的秒數(shù)

? (80).period_add(原始日期,增加月數(shù)) -> 在原始日期基礎(chǔ)上增加數(shù)月

? (81).period_diff(日期1,日期2) -> 計算2個日期間的相隔月份數(shù)

? (82).日期和時間運算

? ? ? 類型:

? [type值 含義 期望的expr格式]:?

 ? ? ? ? ? ? ? second 秒 seconds? ?

 ? ? ? ? ? ? ? minute 分鐘 minutes? ?

 ? ? ? ? ? ? ? hour 時間 hours? ?

 ? ? ? ? ? ? ? day 天 days? ?

 ? ? ? ? ? ? ? month 月 months? ?

 ? ? ? ? ? ? ? year 年 years? ?

 ? ? ? ? ? ? ? minute_second 分鐘和秒 "minutes:seconds"? ?

 ? ? ? ? ? ? ? hour_minute 小時和分鐘 "hours:minutes"? ?

 ? ? ? ? ? ? ? day_hour 天和小時 "days hours"? ?

 ? ? ? ? ? ? ? year_month 年和月 "years-months"? ?

 ? ? ? ? ? ? ? hour_second 小時,分鐘,秒 "hours:minutes:seconds"? ?

 ? ? ? ? ? ? ? day_minute 天,小時,分鐘 "days hours:minutes"? ?

 ? ? ? ? ? ? ? day_second 天,小時,分鐘,秒 "days"

? ? ? ? ? ? ? ? 注意:type值不完整,取值從右端開始取值

? 函數(shù):

? ? (1).date_add(日期,interval 增加時間或日期 type) -> 增加時間或日期

? ? ? ? (2).date_sub(日期,interval 增加時間或日期 type) -> 減少時間或日期

(3).adddate(日期,interval 增加時間或日期 type) -> 增加時間或日期

(4).subdate(日期,interval 增加時間或日期 type) -> 減少時間或日期

(5).extract(type from 日期或時間) -> 返回格式化日期或時間

? (83).to_days(日期) -> 返回計算西元0年至日期多少天,不算1582年以前

? (84).from_days(天數(shù)) -> 返回相隔西元0年多少天的年份,不算1582年以前

? (85).date_format(日期,格式化樣式)

? ? ? 根據(jù)format字符串格式化date值?

 ? ? ? ? ? ? (在format字符串中可用標(biāo)志符:?

 ? ? ? ? ? ? %m 月名字(january……december)? ?

 ? ? ? ? ? ? %w 星期名字

 ? ? ? ? ? ? %d 有英語前綴的月份的日期

 ? ? ? ? ? ? %y 年,數(shù)字,4位? ?

 ? ? ? ? ? ? %y 年,數(shù)字,2位? ?

 ? ? ? ? ? ? %a 縮寫的星期名字

 ? ? ? ? ? ? %d 月份中的天數(shù),數(shù)字

 ? ? ? ? ? ? %e 月份中的天數(shù),數(shù)字

 ? ? ? ? ? ? %m 月,數(shù)字

 ? ? ? ? ? ? %c 月,數(shù)字

 ? ? ? ? ? ? %b 縮寫的月份名字

 ? ? ? ? ? ? %j 一年中的天數(shù)

 ? ? ? ? ? ? %h 小時

 ? ? ? ? ? ? %k 小時

 ? ? ? ? ? ? %i 小時

 ? ? ? ? ? ? %l 小時

 ? ? ? ? ? ? %i 分鐘,數(shù)字

 ? ? ? ? ? ? %r 時間,12小時

 ? ? ? ? ? ? %t 時間,24小時? ?

 ? ? ? ? ? ? %s 秒

 ? ? ? ? ? ? %p am或pm? ?

 ? ? ? ? ? ? %u 星期

 ? ? ? ? ? ? %% 字符%)

? (86).time_format(時間,格式化樣式) -> 格式化時間,同格式化日期類似,區(qū)別在于這里只針對時間

? (87).curdate() + 0? -> 返回當(dāng)前日期值,加0代表無分隔符,不加有分割符

? (88).current_date() -> 返回當(dāng)前日期值

? (89).curtime() + 0 -> 返回當(dāng)前時間,加0代表無分隔符,不加有分割符

? (90).current_time() -> 返回當(dāng)前時間

? (91).now() -> 返回當(dāng)前日期時間

? (92).sysdate() -> 返回當(dāng)前系統(tǒng)日期時間

? (93).current_timestamp() -> 返回當(dāng)前日期時間,這里是格式化后的時間戳

? (94).unix_timestamp() -> 返回一個當(dāng)前unix時間戳

? (95).unix_timestamp(日期) -> 返回一個指定日期unix時間戳

? (96).from_unixtime(unix時間戳) -> 返回一個指定unix時間戳的日期

? (97).from_unixtime(unix時間戳,格式化樣式) -> 回一個指定unix時間戳的格式化日期

? (98).sec_to_time(秒數(shù)) -> 返回一個秒數(shù)轉(zhuǎn)化時間的值

? (99).time_to_sec(時間) -> 把時間轉(zhuǎn)化成秒數(shù)


? ------------ 轉(zhuǎn)換函數(shù) ------------

? (100).cast(字段 as 數(shù)據(jù)類型) -> 類型轉(zhuǎn)換,(是否成功取決于類型是否能被轉(zhuǎn)換)

? (101).convert(字段,數(shù)據(jù)類型) -> 類型轉(zhuǎn)換,(是否成功取決于類型是否能被轉(zhuǎn)換)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容