MySQL基礎命令

——登陸方式

mysql -uroot -p*

數據庫術語
DQL DML DDL DCL TCL

終止命令

\c

查看版本

mysql --version 
SELECT VERSION()  ;

查看當前庫

SELECT DATABASE()   ;

跨庫查表

SHOW TABLES FROM *  ;

查看建表語句

SHOW CREATE TABLE *  ; 

單行函數

UPPER()  LOWER()  TRIM()  SUBSTR(str,start,length)   LENGTH()  
STR_TO_DATE()   DATE_FORMAT()     ROUND()  RAND()   IFNULL()   
TO_DAYS() ;

日期格式正則

%Y-%m-%d %H:%i:%s

MySQL數據類型

VARCHAR
CHAR
INT
BIGINT
FLOAT
DOUBLE
DATE 
BLOB
CLOB
其它

MySQL建表規範

表名:t_*
VARCHAR的長度最好是2的倍數,方便存儲中文

編碼查看

SHOW VARIABLES LIKE '%char%'  ;

獲取系統當前時間:插入數據時可以設置系統默認時間

SELECT NOW()  ;

MySQL級聯操作

ON DELETE CASCADE 
ON UPDATE CASCADE 

對於取得最大值,不使用分組統計函數的情況下可以結合ORDER BY子句和LIMIT子句完成*

MySQL存儲引擎

SHOW ENGINES\G
*MyISAM
   少量的更新大量的讀取,支持壓縮
** InnoDB
    缺省值,支持事務、級聯操作
***MEMORY
     速度最快,但無法持久化

MySQL事務
*ACID原則:原子性、一致性、隔離性、持久性
**MySQL默認支持自動提交
* START TRANSACTION ; SET AUTOCOMMIT = OFF
**配置隔離級別:1.修改配置文件

                  -----------------------my.ini↓-----------------------------
                                  [mysqld]
                  transaction-isolation=READ-COMMITTED
                  -----------------------my.ini↑-----------------------------

                  ---------------------可選參數↓-------------------------------
                  #READ-UNCOMMITTED
                  #READ-COMMITTED
                  #REPEATABLE-READ
                  #SERIALIZABLE
                  ---------------------可選參數上-------------------------------

                               2.命令行設置
                     -------------------------查看參數---------------------------------
                                 mysql> select @@tx_isolation;
                        +-----------------+
                        | @@tx_isolation  |
                        +-----------------+
                        | REPEATABLE-READ |
                        +-----------------+
                               mysql> SHOW VARIABLES LIKE '%iso%' ;
                        +---------------+-----------------+
                        | Variable_name | Value           |
                        +---------------+-----------------+
                        | tx_isolation  | REPEATABLE-READ |
                        +---------------+-----------------+

                   -------------------------修改參數---------------------------------
                SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED ;

                  ---------------------可選參數↓-------------------------------
                  #READ UNCOMMITTED
                  #READ COMMITTED
                  #REPEATABLE READ
                  #SERIALIZABLE
                  ---------------------可選參數↑-------------------------------

MySQL索引
*創建索引 CREATE (UNIQUE) INDEX * ON *(*) ;
**刪除索引 DROP INDEX * ON * ;
*什麼情況下使用索引:
1.該字段很少被更新 ;
2.經常出現在WHERE子句中 ;

**案例:

 mysql> SELECT * FROM emp WHERE ename LIKE '%S%' ;
        +-------+-------+---------+------+------------+------+------+--------+
        | EMPNO | ENAME | JOB     | MGR  | HIREDATE   | SAL  | COMM | DEPTNO |
        +-------+-------+---------+------+------------+------+------+--------+
        |  7369 | SMITH | CLERK   | 7902 | 1980-12-17 |  800 | NULL |     20 |
        |  7566 | JONES | MANAGER | 7839 | 1981-02-04 | 2975 | NULL |     20 |
        |  7788 | SCOTT | ANALYST | 7566 | 1981-03-13 | 3000 | NULL |     20 |
        |  7876 | ADAMS | CLERK   | 7788 | 1987-03-13 | 1100 | NULL |     20 |
        |  7900 | JAMES | CLERK   | 7698 | 1981-03-12 |  950 | NULL |     30 |
        +-------+-------+---------+------+------------+------+------+--------+
        5 rows in set (0.05 sec)

        mysql> CREATE INDEX emp_ename_indx ON emp(ename) ;
        Query OK, 14 rows affected (0.05 sec)
        Records: 14  Duplicates: 0  Warnings: 0

        mysql> SELECT * FROM emp WHERE ename LIKE '%S%' ;
        +-------+-------+---------+------+------------+------+------+--------+
        | EMPNO | ENAME | JOB     | MGR  | HIREDATE   | SAL  | COMM | DEPTNO |
        +-------+-------+---------+------+------------+------+------+--------+
        |  7369 | SMITH | CLERK   | 7902 | 1980-12-17 |  800 | NULL |     20 |
        |  7566 | JONES | MANAGER | 7839 | 1981-02-04 | 2975 | NULL |     20 |
        |  7788 | SCOTT | ANALYST | 7566 | 1981-03-13 | 3000 | NULL |     20 |
        |  7876 | ADAMS | CLERK   | 7788 | 1987-03-13 | 1100 | NULL |     20 |
        |  7900 | JAMES | CLERK   | 7698 | 1981-03-12 |  950 | NULL |     30 |
        +-------+-------+---------+------+------------+------+------+--------+
        5 rows in set (0.00 sec)

導入導出命令

  導出:mysqldump * > * -uroot -pmysqladmin
   導入:source *

數據庫設計三範式

  *第一範式:主鍵  ; 字段不可分 ;
  **第二範式:第一範式 ; 多對多 ;
  ***第三範式:第一範式 ;一對多 ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章