MySQL語句

CREATE DATABASE IF NOT EXISTS [數據庫名] DEFAULT CHARSET utf8 COLLATE utf8_general_ci;         --建立數據庫
DROP DATABASE IF EXISTS [數據庫名];                                                            --刪除數據庫
USE [數據庫名];                                                                                --選擇數據庫

mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --database 數據庫名 > 文件名.sql                            --備份某個數據庫
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --database 數據庫名 | gzip > 文件名.sql.gz                  --壓縮備份
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --database 數據庫名 表1 表2 .... > 文件名.sql               --備份同個庫多個表
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --databases 數據庫名1 數據庫名2 數據庫名3 > 文件名.sql       --同時備份多個庫
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --all-databases > 文件名.sql                               --備份實例上全部的數據庫
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --add-drop-table --add-drop-database 數據庫名 > 文件名.sql  --備份數據出帶刪除數據庫或者表的sql備份
mysqldump -h主機名 -P 端口 -u用戶名 -p密碼 --no-data 數據庫名1 數據庫名2 數據庫名3 > 文件名.sql         --備份數據庫結構,不備份數據
CREATE TABLE 目標表名 LIKE 數據源表名;                                                               --複製表格式
INSERT INTO 目標表名 SELECT * FROM 數據源表名;                                                       --複製表數據
insert into 目標表名 select * from 數據源表名 in ‘具體數據庫’;                                        --跨數據庫複製數據

create user '[用戶名稱]'@'%' identified by '[用戶密碼]';                                  --建立使用帳號        %:匹配全部主機,還能夠設置成‘localhost’,表明只能本地訪問
grant select,insert,update,delete,create on [數據庫名稱].* to [用戶名稱];                 --受權帳號數據庫權限   *表明整個數據庫
flush privileges;                                                                        --當即啓用修改
revoke all on *.* from tester;                                                           --取消帳號全部數據庫(表)的全部權限
delete from mysql.user where user='[用戶名]';                                            --刪除帳號
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
col type [not null] [primary key],
...,
col type [not null]
)ENGINE=InnoDB DEFAULT CHARSET=utf8;                                                     --建立新表

CREATE TABLE 目標表名 LIKE 數據源表名;                                                     --使用舊錶建立新表
drop table tabname;                                                                      --刪除新表
alter table tabname add column col type;                                                 --增長一個列
alter table tabname add primary key(col);                                                --添加主鍵
alter table tabname drop primary key(col);                                               --刪除主鍵
ALTER TABLE tabname ADD INDEX [你但願的索引名,可省略] (字段名,...);
CREATE INDEX [你但願的索引名] ON tabname (字段名,...);                                     --增長普通索引
ALTER TABLE tabname ADD UNIQUE [你但願的索引名] (字段名,...);
CREATE UNIQUE INDEX [你但願的索引名] ON table_name (字段名,...)                            --增長UNIQUE索引
ALTER TABLE tabname ADD PRIMARY KEY (字段名,...);                                        --增長主鍵索引
CREATE VIEW viewname AS SELECT sql語句;                                                   --建立視圖
drop view viewname;                                                                       --刪除視圖

選擇:select * from table1 where 範圍;
插入:insert into table1(field1,field2) values(value1,value2);
刪除:delete from table1 where 範圍;
更新:update tabname set field=value,... where 範圍;
查找:select * from tablname where field like ’%value%;
排序:select * from tabname order by field,... [desc];
分組統計: select [col,count,sum,max,min,avg] from tabname group by col;
總數:select count from tabname;
求和:select sum(field) from tabname;
平均:select avg(field) from tabname;
最大:select max(field) from tabname;
最小:select min(field) from tabname;
外鏈接: select a.a, b.c from a [left join,right join,full/cross join] b ON a.a = b.c;
子查詢: select col1,.. from (select col2,... from tabname2) T where col1 [not] IN (select col3 from tabname3);
between查詢: select * from tabname where time (not) between time1 and time2;
in用法:select * from tabname where col [not] in (‘val’,....);
隨機查詢前10條數據: select top 10 * from tablename order by newid()

MySQL函數
group_concat()函數               - 將字符串從分組中鏈接成具備各類選項(如DISTINCT,ORDER BY和SEPARATOR)的字符串。
concat()函數                     - 將兩個或多個字符串組合成一個字符串。
length()函數&char_length()函數   - 以字節和字符獲取字符串的長度。
left()函數                       - 獲取指定長度的字符串的左邊部分。
replace()函數                    - 搜索並替換字符串中的子字符串。
substring()函數                  - 從具備特定長度的位置開始提取一個子字符串。
trim()函數                       - 從字符串中刪除不須要的字符。
find_in_set()函數                - 在逗號分隔的字符串列表中找到一個字符串。
format()函數                     - 格式化具備特定區域設置的數字,舍入到小數位數。
case()函數                       - 若是知足WHEN分支中的條件,則返回THEN分支中的相應結果,不然返回ELSE分支中的結果。
if語句                           - 根據給定的條件返回一個值。
ifnull()函數                     - 若是第一個參數不爲NULL,則返回第一個參數,不然返回第二個參數。
nullif()函數                     - 若是第一個參數等於第二個參數,則返回NULL,不然返回第一個參數。
curdate()函數                    - 返回當前日期。
datediff()函數                   - 計算兩個DATE值之間的天數。
day()函數                        - 獲取指定日期月份的天(日)。
date_add()函數                   - 將時間值添加到日期值。
date_sub()函數                   - 從日期值中減去時間值。
date_format()函數                - 根據指定的日期格式格式化日期值。
dayname()函數                    - 獲取指定日期的工做日的名稱。
dayofweek()函數                  - 返回日期的工做日索引。
extract()函數                    - 提取日期的一部分。
now()函數                        - 返回當前日期和時間。
month()函數                      - 返回一個表示指定日期的月份的整數。
str_to_date()函數                - 將字符串轉換爲基於指定格式的日期和時間值。
sysdate()函數                    - 返回當前日期。
timediff()函數                   - 計算兩個TIME或DATETIME值之間的差值。
timestampdiff()函數              - 計算兩個DATE或DATETIME值之間的差值。
week()函數                       - 返回一個日期的星期數值。
weekday()函數                    - 返回一個日期表示爲工做日/星期幾的索引。
year()函數                       - 返回日期值的年份部分。
coalesce()函數                   - 返回第一個非NULL參數,這很是適合用於將值替換爲NULL。
greatest()函數&least()函數       – 使用n個參數,並分別返回n個參數的最大值和最小值。
isnull()函數                     - 若是參數爲NULL,則返回1,不然返回0。
last_insert_id()函數             - 獲取最後插入的記錄的最後生成的序列號。
cast()函數                       - 將任何類型的值轉換爲具備指定類型的值。
相關文章
相關標籤/搜索