程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL常用命令,mysql命令

MySQL常用命令,mysql命令

編輯:MySQL綜合教程

MySQL常用命令,mysql命令


MySQL常用命令

1.mysql\bin:mysqld.exe --console
如果安裝成功以上命令將輸出一些mysql啟動及InnoDB信息。

2.mysqladmin --version:版本信息
快速啟動MySQL服務:net start mysql
快速關閉MySQL服務:net stop mysql

3.鍵入mysql進入mysql交互環境:
    show databases;
    注意:MySQL命令終止符為分號 (;)

4.
mysqladmin -u root password "new_password";    Mysql安裝成功後,默認的root用戶密碼為空,你可以使用此命令來創建root用戶的密碼
mysql -u root -p   登錄mysql
ps -ef | grep mysqld
./mysqladmin -u root -p shutdown  

5.增加用戶
insert into user
      (host, user, password,    
       select_priv, insert_priv, update_priv)
       values ('localhost', 'guest',
       password('guest123'), 'Y', 'Y', 'Y');   在對應的權限列中,為用戶指定權限"Y"

flush privileges;  重新載入授權表

6.
    USE 數據庫名 :選擇要操作的Mysql數據庫,使用該命令後所有Mysql命令都只針對該數據庫。
    SHOW DATABASES: 列出 MySQL 數據庫管理系統的數據庫列表。
    SHOW TABLES: 顯示指定數據庫的所有表,使用該命令前需要使用 use 命令來選擇要操作的數據庫。
    SHOW COLUMNS FROM 數據表: 顯示數據表的屬性,屬性類型,主鍵信息 ,是否為 NULL,默認值等其他信息。
    SHOW INDEX FROM 數據表: 顯示數據表的詳細索引信息,包括PRIMARY KEY(主鍵)。
    SHOW TABLE STATUS LIKE 數據表: 該命令將輸出Mysql數據庫管理系統的性能及統計信息。


7.數據庫、表、插入、查詢、更新、刪除、增加、like、排序、join、null、alter、數據重復、導入導出


    注意:所有的數據庫名,表名,表字段都是區分大小寫的。
    mysqladmin -u root -p create TUTORIALS   創建數據庫
    mysqladmin -u root -p drop TUTORIALS     刪除數據庫
    use TUTORIALS;
    CREATE TABLE table_name (column_name column_type);   //CREATE TEMPORARY TABLE table_name... 創建臨時表  
        創建表的詳細例子
        tutorials_tbl(
            tutorial_id INT NOT NULL AUTO_INCREMENT,   //AUTO_INCREMENT:列自增的屬性
            tutorial_title VARCHAR(100) NOT NULL,
            tutorial_author VARCHAR(40) NOT NULL,
            submission_date DATE,
            PRIMARY KEY ( tutorial_id )        //主鍵的設置
        );
    DROP TABLE table_name ;
    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );
    注意:如果數據是字符型,必須使用單引號或者雙引號,如:"value"。
    select field1, field2,...fieldN from table_name1, table_name2...
        [WHERE Clause]
        [OFFSET M ][LIMIT N]
    查詢語句總結:
        查詢語句中你可以使用一個或者多個表,表之間使用逗號(,)分割,並使用WHERE語句來設定查詢條件。
        SELECT 命令可以讀取一條或者多條記錄。
        你可以使用星號(*)來代替其他字段,SELECT語句會返回表的所有字段數據
        你可以使用 WHERE 語句來包含任何條件,使用AND或者OR指定一個或多個條件。
        你可以通過OFFSET指定SELECT語句開始查詢的數據偏移量。默認情況下偏移量為0。
        你可以使用 LIMIT 屬性來設定返回的記錄數。
    MySQL的WHERE子句的字符串比較是不區分大小寫的,可以使用 BINARY 關鍵字來設定WHERE子句的字符串比較是區分大小寫的。
    SELECT * from tutorials_tbl WHERE BINARY tutorial_author='sanjay';  

    UPDATE table_name SET field1=new-value1, field2=new-value2
        [WHERE Clause]
    你可以同時更新一個或多個字段。
    你可以在 WHERE 子句中指定任何條件。
    你可以在一個單獨表中同時更新數據。

    DELETE FROM table_name [WHERE Clause]
    如果沒有指定 WHERE 子句,MySQL表中的所有記錄將被刪除。
    你可以在 WHERE 子句中指定任何條件
    您可以在單個表中一次性刪除記錄。

    like子句
    SELECT * from tutorials_tbl WHERE tutorial_author LIKE '%jay';

    排序    
    你可以使用任何字段來作為排序的條件,從而返回排序後的查詢結果。
    你可以設定多個字段來排序。
    你可以使用 ASC 或 DESC 關鍵字來設置查詢結果是按升序或降序排列。 默認情況下,它是按升排列。
    你可以添加 WHERE...LIKE 子句來設置條件。
    SELECT * from tutorials_tbl ORDER BY tutorial_author ASC

    使用MySQL的JOIN來連接兩張表來讀取tutorials_tbl表中所有tutorial_author字段在tcount_tbl表對應的tutorial_count字段值:
    SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
        FROM tutorials_tbl a, tcount_tbl b
        WHERE a.tutorial_author = b.tutorial_author;
    SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
        FROM tutorials_tbl a LEFT JOIN tcount_tbl b
        ON a.tutorial_author = b.tutorial_author;

    NULL
    MySQL提供了三大運算符:
    IS NULL:  當列的值是NULL,此運算符返回true。
    IS NOT NULL:  當列的值不為NULL, 運算符返回true。
    <=>:  比較操作符(不同於=運算符),當比較的的兩個值為NULL時返回true。

    關於 NULL 的條件比較運算是比較特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
    在MySQL中,NULL值與任何其它值的比較(即使是NULL)永遠返回false,即 NULL = NULL 返回false 。
    MySQL中處理 NULL 使用 IS NULL 和 IS NOT NULL 運算符。

    alter
    如下命令使用了 ALTER 命令及 DROP 子句來刪除以上創建表的 i 字段:
    ALTER TABLE testalter_tbl  DROP i;
    注意:如果數據表中只剩余一個字段則無法使用DROP來刪除字段。
    ALTER TABLE testalter_tbl ADD i INT;
    如果你需要指定新增字段的位置,可以使用MySQL提供的關鍵字 FIRST (設定位第一列), AFTER 字段名(設定位於某個字段之後)。
    ALTER TABLE testalter_tbl DROP i;
    ALTER TABLE testalter_tbl ADD i INT FIRST;
    ALTER TABLE testalter_tbl DROP i;
    ALTER TABLE testalter_tbl ADD i INT AFTER c;
    如果需要修改字段類型及名稱, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。
    把字段 c 的類型從 CHAR(1) 改為 CHAR(10),可以執行以下命令:
    ALTER TABLE testalter_tbl MODIFY c CHAR(10);     # modify
    ALTER TABLE testalter_tbl CHANGE i j BIGINT;
    指定字段 j 為 NOT NULL 且默認值為100 ,如果你不設置默認值,MySQL會自動設置該字段默認為 NULL。
    ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
    ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
    ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;


    查看數據表類型可以使用 SHOW TABLE STATUS 語句。修改數據表類型,可以使用 ALTER 命令及 TYPE 子句來完成。
    ALTER TABLE testalter_tbl TYPE = MYISAM;

    ALTER TABLE testalter_tbl RENAME TO alter_tbl;

    讀取不重復的數據可以在 SELECT 語句中使用 GROUP BY 或者 DISTINCT 關鍵字來過濾重復數據。
    SELECT DISTINCT last_name, first_name FROM person_tbl ORDER BY last_name;
    SELECT last_name, first_name FROM person_tbl GROUP BY (last_name, first_name);

    刪除數據表中的重復數據:添加 INDEX(索引) 和 PRIMAY KEY(主鍵)

    將數據表 tutorials_tbl 數據導出到 /tmp/tutorials.txt 文件中:
    SELECT * FROM tutorials_tbl INTO OUTFILE '/tmp/tutorials.txt';  # into outfile
    SELECT * FROM tutorials_tbl INTO OUTFILE '/tmp/tutorials.txt'
        FIELDS TERMINATED BY ',' ENCLOSED BY '"'    #設置輸出的格式
        LINES TERMINATED BY '\r\n';
    LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
    LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl (b, c, a); 按照插入表的列的順序存儲數據


8.正則表達式
MySQL中使用 REGEXP 操作符來進行正則表達式匹配。  # regexp

^            匹配輸入字符串的開始位置。如果設置了 RegExp 對象的 Multiline 屬性,^ 也匹配 '\n' 或 '\r' 之後的位置。
$            匹配輸入字符串的結束位置。如果設置了 RegExp 對象的 Multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。
.            匹配除 "\n" 之外的任何單個字符。要匹配包括 '\n' 在內的任何字符,請使用象 '[.\n]' 的模式。
[...]        字符集合。匹配所包含的任意一個字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^...]        負值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
p1|p2|p3    匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。
*            匹配前面的子表達式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於{0,}。
+            匹配前面的子表達式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 {1,}。
{n}            n 是一個非負整數。匹配確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個 o。
{n,m}        m 和 n 均為非負整數,其中 n <= m 。最少匹配 n 次且最多匹配 m 次。

查找name字段中以'st'為開頭的所有數據:
SELECT name FROM person_tbl WHERE name REGEXP '^st';
查找name字段中包含'mar'字符串的所有數據:
SELECT name FROM person_tbl WHERE name REGEXP 'mar';
查找name字段中以元音字符開頭且以'ok'字符串結尾的所有數據:
SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

9.事務
 MySQL 事務主要用於處理操作量大,復雜度高的數據。比如說,在人員管理系統中,你刪除一個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操作語句就構成一個事務!

    在MySQL中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務
    事務處理可以用來維護數據庫的完整性,保證成批的SQL語句要麼全部執行,要麼全部不執行
    事務用來管理insert,update,delete語句

一般來說,事務是必須滿足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(可靠性)

    1、事務的原子性:一組事務,要麼成功;要麼撤回。
    2、穩定性 : 有非法數據(外鍵約束之類),事務撤回。
    3、隔離性:事務獨立運行。一個事務處理後的結果,影響了其他事務,那麼其他事務會撤回。事務的100%隔離,需要犧牲速度。
    4、可靠性:軟、硬件崩潰後,InnoDB 數據表驅動會利用日志文件重構修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit選項 決定什麼時候吧事務保存到日志裡。

    開啟事務:START TRANSACTION 或 BEGIN
    提交事務(關閉事務):COMMIT
    放棄事務(關閉事務):ROLLBACK
    折返點
    SAVEPOINT adqoo_1
    ROLLBACK TO SAVEPOINT adqoo_1
    發生在折返點 adqoo_1 之前的事務被提交,之後的被忽略
    

10.索引
索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索引包含多個列。
創建索引時,你需要確保該索引是應用在 SQL 查詢語句的條件(一般作為 WHERE 子句的條件)。
實際上,索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄。
    SHOW INDEX FROM table_name

    CREATE INDEX indexName ON mytable(username(length));
    ALTER mytable ADD INDEX [indexName] ON (username(length))
    DROP INDEX [indexName] ON mytable;

    ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 該語句添加一個主鍵,這意味著索引值必須是唯一的,且不能為NULL。
    ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 這條語句創建索引的值必須是唯一的(除了NULL外,NULL可能會出現多次)。
    ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出現多次。
    ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):該語句指定了索引為 FULLTEXT ,用於全文索引。

    alter命令處理索引:
    ALTER TABLE testalter_tbl ADD INDEX (c);
    ALTER TABLE testalter_tbl DROP INDEX (c);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved