手動不易,轉(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)換)