本机使用root 账户登录mysql,这里的 -u 是指user 而 -p 是指password, 如果是win10用户必须以管理员身份启动命令窗口

mysql -u root -p

查询当前mysql 版本和日期:

mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 5.8.0-m17 | 2015-12-21 |
+-----------+--------------+
1 row in set (0.02 sec)
mysql>

mysql 不区分大小写,以下查询是相同效果:

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

查询mysql 当中的所有数据库:

SELECT DATABASE();

查询mysql 中的所有表:

show tables

查询表结构:

格式:DESCRIBE 表名;

例如:
mysql> DESCRIBE t_account;
+-------------+--------------+------+-----+---------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-----------------------------+
| id | int(11) | NO | PRI | NULL | |
| user_name | varchar(100) | YES | | NULL | |
| password | varchar(50) | YES | | NULL | |
| salt | varchar(255) | YES | | NULL | |
| user_type | int(11) | YES | | NULL | |
| create_time | timestamp | YES | | NULL | |
| update_time | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP |
+-------------+--------------+------+-----+---------+-----------------------------+
7 rows in set (0.00 sec)

以下是动物生日,按日期排序,ORDER BY默认是升序的如下所示(越往下越大,越往上越小),可以使用ORDER BY BINARY来进行区分大小写的排序:

mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+

要按降序(越往上越大,越往下越小)排序,请将DESC关键字添加 到您要排序的列的名称中:

mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+

可以对多列进行排序,例如,要按动物类型升序排序,然后按动物类型中的出生日期降序排序(最年轻的动物在前), 这里的DESC 只会对它的前一列(birth)进行降序排序,而不会对species执行降序操作:

mysql> SELECT name, species, birth FROM pet
ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim | snake | 1996-04-29 |
+----------+---------+------------+

 ​​TIMESTAMPDIFF()​​函数可以计算出两个日期的差值,以下查询显示每只宠物的出生日期、当前日期(CURDATE函数可以查询出当前日期)和年龄(以年为单位)然后通过​​TIMESTAMPDIFF​​函数计算出两个日期相差几年,并用age 将计算结果标记为动物的:

mysql> SELECT name, birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM pet ORDER BY name;
+----------+------------+------------+------+
| name | birth | CURDATE() | age |
+----------+------------+------------+------+
| Bowser | 1989-08-31 | 2003-08-19 | 13 |
| Buffy | 1989-05-13 | 2003-08-19 | 14 |
| Chirpy | 1998-09-11 | 2003-08-19 | 4 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
| Fang | 1990-08-27 | 2003-08-19 | 12 |
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Puffball | 1999-03-30 | 2003-08-19 | 4 |
| Slim | 1996-04-29 | 2003-08-19 | 7 |
| Whistler | 1997-12-09 | 2003-08-19 | 5 |
+----------+------------+------------+------+

MySQL可以使用 ​​YEAR()​​, ​​MONTH()​​和 ​​DAYOFMONTH()​​来获取日期中的年,月和当前月的第几天,其中​​DAYOFMONTH​​函数如果在当前月不存在指定的天数则会返回NULL,比如:2007年2月份不会有第29天,则会返回NULL,如下所示:

mysql> SELECT DAYOFMONTH('2007-02-29');
+--------------------------+
| DAYOFMONTH('2007-02-29') |
+--------------------------+
| NULL |
+--------------------------+
1 row in set, 1 warning (0.00 sec)