MySQL 数据类型
问题
本案例要求熟悉MySQL的字段数据类型、时间函数的使用,完成以下任务操作:
在home库里创建famliy表,表结构、字段类型自定义
练习各种时间函数的使用
步骤
实现此案例需要按照如下步骤进行。
步骤一:创建home库、family表
1)新建home库,并切换到home库
mysql> CREATE DATABASE home;
Query OK, 1 row affected (0.00 sec)
mysql> USE home;
Database changed
2)新建family表
假定family表用来记录每个家庭成员的姓名(name)、性别(gender)、出生日期(birth)、职业(job)、与户主关系(relation)。
mysql> CREATE TABLE family(
-> 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.06 sec)
查看family表的字段结构:
mysql> DESC family;
+----------+----------------------+------+-----+---------+-------+
| 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() |
+---------------------+
| 2014-01-07 18:33:31 |
+---------------------+
1 row in set (0.05 sec)
2)使用sysdate()查看系统日期和时间
mysql> SELECT sysdate();
+---------------------+
| sysdate() |
+---------------------+
| 2014-01-07 18:34:12 |
+---------------------+
1 row in set (0.00 sec)
3)使用curdate()获得当前的日期,不含时间
mysql> SELECT curdate();
+------------+
| curdate() |
+------------+
| 2014-01-07 |
+------------+
1 row in set (0.00 sec)
4)使用curtime()获得当前的时间,不含日期
mysql> SELECT curtime();
+-----------+
| curtime() |
+-----------+
| 18:35:26 |
+-----------+
1 row in set (0.00 sec)
5)分别获取当前日期时间中的年份、月份、日
mysql> SELECT year(now()),month(now()),day(now());
+-------------+--------------+------------+
| year(now()) | month(now()) | day(now()) |
+-------------+--------------+------------+
| 2014 | 1 | 7 |
+-------------+--------------+------------+
1 row in set (0.00 sec)
6)获取系统日期时间中的月份、日
mysql> SELECT month(sysdate()),day(sysdate());
+------------------+----------------+
| month(sysdate()) | day(sysdate()) |
+------------------+----------------+
| 1 | 7 |
+------------------+----------------+
1 row in set (0.00 sec)
7)获取系统日期时间中的时刻
mysql> SELECT time(sysdate());
+-----------------+
| time(sysdate()) |
+-----------------+
| 18:44:01 |
+-----------------+
1 row in set (0.00 sec)