MySQL基本操作

1、查看版本信息:mysqladmin --version
2、設置密碼:mysqladmin -u root password "new_password";
3、連接數據庫:mysql -u root -p
              再輸入密碼
4、啓動:mysql --console
5、關閉:mysqladmin -uroot shutdown
6、連接目標數據庫:use 數據庫名
7、列出MySQL數據庫管理系統的數據庫列表:show DATABASES;
8、顯示指定數據庫的所有表:SHOW TABLES;
9、顯示數據表的屬性、屬性類型、主鍵信息、是否爲空,默認值等:SHOW COLUMNS FROM 數據表名
10、顯示數據表的詳細索引信息,包括PRIMARY KEY(主鍵):SHOW INDEX FROM 數據表名;
11、SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G:
    該命令將輸出Mysql數據庫管理系統的性能及統計信息。

    mysql> SHOW TABLE STATUS  FROM RUNOOB;   # 顯示數據庫 RUNOOB 中所有表的信息

    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%';     # 表名以runoob開頭的表的信息
    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G;   # 加上 \G,查詢結果按列打印

 

12、創建數據庫:CREATE DATABASE 數據庫名;
  mysqladmin創建數據庫:mysqladmin -u root -p create 數據庫名
13、刪除數據庫:drop database 數據庫名;
  mysqladmin創建數據庫:mysqladmin -u root -p drop 數據庫名
14、創建數據表:CREATE TABLE table_name(column_name column_type);

    以下例子中我們將在 RUNOOB 數據庫中創建數據表runoob_tbl:

    CREATE TABLE IF NOT EXISTS `runoob_tbl`(
       `runoob_id` INT UNSIGNED AUTO_INCREMENT,
       `runoob_title` VARCHAR(100) NOT NULL,
       `runoob_author` VARCHAR(40) NOT NULL,
       `submission_date` DATE,
       PRIMARY KEY ( `runoob_id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    實例解析:
        如果你不想字段爲 NULL 可以設置字段的屬性爲 NOT NULL, 在操作數據庫時如果輸入該字段的數據爲NULL ,就會報錯。
        AUTO_INCREMENT定義列爲自增的屬性,一般用於主鍵,數值會自動加1。
        PRIMARY KEY關鍵字用於定義列爲主鍵。 您可以使用多列來定義主鍵,列間以逗號分隔。
        ENGINE 設置存儲引擎,CHARSET 設置編碼。
15、刪除數據表:DROP TABLE table_name;
16、常用的插入:INSERT INTO table_name(field1,field2,...fieldN) VALUES(value1,value2,..valueN);
17、查詢數據:SELECT column_name,column_name
             FROM table_name
             [WHERE Clause]
             [LIMIT N] [OFFSRT M]

    查詢語句中你可以使用一個或者多個表,表之間使用逗號(,)分割,並使用WHERE語句來設定查詢條件。
    SELECT 命令可以讀取一條或者多條記錄。
    你可以使用星號(*)來代替其他字段,SELECT語句會返回表的所有字段數據
    你可以使用 WHERE 語句來包含任何條件。
    你可以使用 LIMIT 屬性來設定返回的記錄數。
    你可以通過OFFSET指定SELECT語句開始查詢的數據偏移量。默認情況下偏移量爲0。

18、更新操作:UPDATE table_name SET field1=new_value1,field2=new_value2
             [WHERE Clause]
19、刪除:DELETE FROM table_name[WHERE Clause]
20、LIKE 子句:需要獲取 runoob_author 字段含有 "COM" 字符的所有記錄,這時我們就需要在 WHERE 子
       句中使用 SQL LIKE 子句。SQL LIKE 子句中使用百分號 %字符來表示任意字符,類似於UNIX或正則表達式中
       的星號 *。
       如果沒有使用百分號 %, LIKE 子句與等號 = 的效果是一樣的

以下是 SQL SELECT 語句使用 LIKE 子句從數據表中讀取數據的通用語法:

SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

    你可以在 WHERE 子句中指定任何條件。
    你可以在 WHERE 子句中使用LIKE子句。
    你可以使用LIKE子句代替等號 =。
    LIKE 通常與 % 一同使用,類似於一個元字符的搜索。
    你可以使用 AND 或者 OR 指定一個或多個條件。
    你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來指定條件。
SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title  | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3         | 學習 Java   | RUNOOB.COM    | 2015-05-01      |
| 4         | 學習 Python | RUNOOB.COM    | 2016-03-06      |
+-----------+---------------+---------------+-----------------+

21、UNION 操作符:
描述

MySQL UNION 操作符用於連接兩個以上的 SELECT 語句的結果組合到一個結果集合中。多個 SELECT 語句會刪除重複的數據。
語法

MySQL UNION 操作符語法格式:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

參數

    expression1, expression2, ... expression_n: 要檢索的列。

    tables: 要檢索的數據表。

    WHERE conditions: 可選, 檢索條件。

    DISTINCT: 可選,刪除結果集中重複的數據。默認情況下 UNION 操作符已經刪除了重複數據,所以 DISTINCT 修飾符對結果沒啥影響。

    ALL: 可選,返回所有結果集,包含重複數據。

演示數據庫

在本教程中,我們將使用 RUNOOB 樣本數據庫。

下面是選自 "Websites" 表的數據:

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘寶          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鳥教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

下面是 "apps" APP 的數據:

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name   | url                     | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP     | http://im.qq.com/       | CN      |
|  2 | 微博 APP | http://weibo.com/       | CN      |
|  3 | 淘寶 APP | https://www.taobao.com/ | CN      |
+----+------------+-------------------------+---------+
3 rows in set (0.00 sec)


SQL UNION 實例

下面的 SQL 語句從 "Websites" 和 "apps" 表中選取所有不同的country(只有不同的值):
實例
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

執行以上 SQL 輸出結果如下:

註釋:UNION 不能用於列出兩個表中所有的country。如果一些網站和APP來自同一個國家,每個國家只會列出一次。UNION 只會選取不同的值。請使用 UNION ALL 來選取重複的值!
SQL UNION ALL 實例

下面的 SQL 語句使用 UNION ALL 從 "Websites" 和 "apps" 表中選取所有的country(也有重複的值):
實例
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

執行以上 SQL 輸出結果如下:

帶有 WHERE 的 SQL UNION ALL

下面的 SQL 語句使用 UNION ALL 從 "Websites" 和 "apps" 表中選取所有的中國(CN)的數據(也有重複的值):
實例
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;

 

 

 

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