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()函數 - 將任何類型的值轉換爲具備指定類型的值。