3案例3:MySQL数据类型
3.1问题
本案例要求熟悉MySQL的字段数据类型、表结构,各种时间函数的使用,完成以下任务操作
- 在studb库里创建stuinfo表、表结构、字段类型自定义
- 表结构自定义,并合理使用数据类型
- 练习各种时间函数的使用
3.2步骤
实现此案例需要按照如下步骤进行。
步骤一:创建studb库,stuinfo表
1)新建studb库,并切换到studb库
mysql> CREATE DATABASE studb;
Query OK, 1 row affected (0.00 sec)
mysql> USE studb;
Database changed
2)新建stuinfo表
假定stuinfo表用来记录每个家庭成语的姓名(name)、性别(gender)、出生日期(birth)、职业(job)、与户主关系(relation)。
mysql> CREATE TABLE stuinfo (
-> name varchar(16) NOT NULL,
-> gender enum('male','femal') DEFAULT 'male',
-> birth date NOT NULL,
-> job varchar(16) DEFAULT '',
-> relation varchar(24) NOT NULL,
-> PRIMARY KEY(name)
-> );
Query OK, 0 rows affected (0.61sec)
查看stuinfo表的字段结构:
mysql> DESC stuinfo;
+----------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+-------+
| name | varchar(16) | NO | PRI | NULL | |
| gender | enum('male','femal') | YES | | male | |
| birth | date | NO | | NULL | |
| job | varchar(16) | YES | | | |
| relation | varchar(24) | NO | | NULL | |
+----------+----------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
步骤二:练习各种时间函数的使用
1)使用now()查看当前的日期和时间
mysql> SELECT now();
+---------------------+
| now() |
+---------------------+
| 2017-04-02 04:02:42 |
+---------------------+
1 row in set (0.00 sec)
2)使用sysdate()查看系统日期和时间
mysql> SELECT sysdate();
+---------------------+
| sysdate() |
+---------------------+
| 2017-04-02 04:03:21 |
+---------------------+
1 row in set (0.00 sec)
3)使用curdate()获得当前的日期,不含时间
mysql> SELECT curdate();
+------------+
| curdate() |
+------------+
| 2017-04-02 |
+------------+
1 row in set (0.00 sec)
4)使用curtime()获得当前的时间,不含日期
mysql> SELECT curtime();
+-----------+
| curtime() |
+-----------+
| 04:04:55 |
+-----------+
1 row in set (0.00 sec)
5)分别获取当前日期时间中的年份、月份、日
mysql> SELECT year(now()),month(now()),day(now());
+-------------+--------------+------------+
| year(now()) | month(now()) | day(now()) |
+-------------+--------------+------------+
| 2017 | 4 | 2 |
+-------------+--------------+------------+
1 row in set (0.00 sec)
6)获取系统日期时间中的月份、日
mysql> SELECT month(sysdate()),day(sysdate());
+------------------+----------------+
| month(sysdate()) | day(sysdate()) |
+------------------+----------------+
| 4 | 2 |
+------------------+----------------+
1 row in set (0.00 sec)
7)获取系统日期时间中的时刻
mysql> SELECT time(sysdate());
+-----------------+
| time(sysdate()) |
+-----------------+
| 04:06:08 |
+-----------------+
1 row in set (0.00 sec)