Mysql備忘整理

1. 創建數據庫: CREATE DATABASE db_test;

2. 刪除數據庫: DROP DATABASE db_test;

3. 選擇數據庫: USE db_test;

4. 創建數據表:CREATE TABLE IF NOT EXISTS table_test (column_id INT UNSIGNED AUTO_INCREMENT, column_name VARCHAR(100), submission_date DATE, PRIMARY KEY (column_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;

5. 刪除數據表:DROP TABLE table_test;

6. 插入數據:INSERT INTO table_test (column_id, column_name, submission_date) values (666, 'get', '2018-09-03');

7. 查詢數據: SELECT column_id, column_name, submission_date FROM table_test WHERE column_id=666 AND column_name='get';

8. 修改或更新:

        同時更新一個或者多個字段:UPDATE table_test SET column_name='got'  WHERE column_id=666;

9. 刪除數據: DELETE FROM table_test WHERE [~]; // 如果沒有指定where 表中的所有數據將被刪除

10. 使用LIKE模糊查詢: SELECT * FROM table_test WHERE column_name LIKE '%t';

11. UNION操作:用於連接兩個以上的select語句的結果組合到一個結果集合中,多個SELECT語句會刪除重複的數據

     SELECT country from Websites UNION SELECT country FROM apps ORDER BY country;

12. 分組:GROUP BY語句根據一個或者多個列對結果進行分組,在分組的列上我們可以使用COUNT SUM AVG等函數。

    SELECT name,COUNT(*) FROM employee GROUP BY name;

    WITH ROLLUP 可以實現在分組統計數據基礎上再進行相同的統計

    SELECT name,SUM(singin) as singin_count FROM employee GROUP BY name WITH ROLLUP;

13. 連接:JOIN 按照功能分爲三類:

    INNER JOIN:獲取兩個表中字段匹配關係記錄

    LEFT JOIN:左連接

    RIGHT JOIN:右連接

    SELECT a.id, a.author, b.count FROM tb1 a INNER JOIN tb2 b ON a.author=b.author;

14 ALTER命令:

    增加字段:ALTER TABLE table_test ADD  column_name VARCHAR(30);

    刪除字段:ALTER TABLE table_test DROP column_name;

    修改字段類型:ALTER TABLE table_test MODIFY column_name VARCHAR(100);

    修改默認值:ALTER TABLE table_test ALTER column_name SET DEFALUT 'got';

    修改表名稱:ALTER TABLE table_test RENAME TO alter_test;

15. 索引:

    創建有三種方式:

       1)  CREATE INDEX index_1 ON table_test (column_list);

       2) ALTER TABLE table_name ADD INDEX index_name (column_list);

           ALTER TABLE table_name ADD UNIQUE (column_list);

           ALTER TABLE table_name ADD PRIMARY KEY (column_list);

       3) 創建的時候直接指定

16. count(*), count(1), count(列名稱)這三個區別:

    COUNT(*) 函數返回表中的記錄數,不會忽略列值爲NULL 

    COUNT(1)包括了所有列,用1代表代碼行,在統計結果的時候,不會忽略列值爲NULL  

    COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入)

執行效率上:

    列名爲主鍵,COUNT(列名)會比COUNT(1)快

    列名不爲主鍵,COUNT(1)會比COUNT(列名快)

    如果表有多個列並且沒有主鍵,則COUNT(1)的執行效率要優於COUNT(*)

    如果只有一個字段,則SELECT COUNT(*)最優

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章