——登陆方式

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 *

数据库设计三范式

  *第一范式:主键  ; 字段不可分 ;
  **第二范式:第一范式 ; 多对多 ;
  ***第三范式:第一范式 ;一对多 ;