MySQL 实验 3:创建数据表

MySQL 实验 3:创建数据表

关系数据库中的所有数据都保存在数据表(table)中。表是数据库中的一个对象,创建表之前必须先选择表所在的数据库。

一、创建数据表的语法

利用 MySQL创建数据表,语法如下:

create table table_name(
    col_name_1 data_type,
    col_name_2 data_type,
    .... ,
    col_name_n data_type
)

二、常用的数据类型

MySQL 常用的数据类型包括三大类:

1、数值型

常见的数值类型有两种:整型(int)与精确类型(decimal)。

(1)整数类型:int

int 类型用来表示一个整数。定义表时直接写 int 即可,int 后面不用加其他参数。例如:

create table t1(
    id int,
    name char(20)
);

(2)精确类型(小数类型):decimal

decimal 类型用来表示一个小数,需要指定精度和小数位数。其中:

小数位数用来指定一个数小数点后需要保留的小数位数。

精度 = 整数位数 + 小数位数,指定精度实际上是间接指定整数位数。而一个数需要的整数位数与该数的大小有关。

例如:

create table emp(
    id int,
    name char(20),
    salary decimal(10,2)
);
-- 说明:salary 列的类型是 decimal 类型,保留2位小数,精度为10,则表示整数位数最大为8位,则工资的最大值为99999999.99

数值型常量只能包含数字、小数点与正负号,书写时不加引号。例如:

insert into emp values(1101,'李涛',5000);
2、日期时间型

常见的日期时间类型有两种:日期型(date)与日期时间型(datetime)。

(1)日期型:date

日期型用来表示一个日期。定义时直接写 date 即可,后面不用加其他参数。例如:

create table emp02(
    id int,
    name char(20),
    birth date,
    salary decimal(10,2)
);

(2)日期时间型:datetime

日期时间型用来表示一个日期与时间。定义时直接写 datetime 即可,后面不用加其他参数。例如:

create table emp03(
    id int,
    name char(20),
    birth date,
    salary decimal(10,2),
    update_time datetime
);

日期型与日期时间型的常量必须是一个合法的日期和时间,并且用单引号括起来。

日期型常量的格式采用 【yyyy-mm-dd】 格式,日期时间型常量的格式采用【yyyy-mm-dd hh:mm:ss】格式。

例如:

mysql> insert into emp03 values(1101,'李刚','1989-12-25',5000,'2024-10-2 10:25:30');
Query OK, 1 row affected (0.01 sec)

mysql> select * from emp03;
+------+------+------------+---------+---------------------+
| id   | name | birth      | salary  | update_time         |
+------+------+------------+---------+---------------------+
| 1101 | 李刚 | 1989-12-25 | 5000.00 | 2024-10-02 10:25:30 |
+------+------+------------+---------+---------------------+
1 row in set (0.00 sec)
3、文本类型

文本类型又叫字符串类型。常见的字符串类型有两种:固定长字符串(char)类型与可变长字符串(varchar)类型。

文本类型在定义时需要指定长度,文本的长度单位为字节。指定长度的方式为:char(n) 与 varchar(n) 。

一个西文字符的长度为一个字节,中文字符的长度与字符集有关。LATIN1、GBK 字符集一个汉字的长度为 2 个字节,UTF8 字符集一个汉字的长度为 3 个字节。

(1)固定长字符串类型:char

固定长字符串类型的含义为:指定文本类型长度为 n,如果输入字符串的长度小于 n,则剩余的存储空间用空格填充。即:一旦指定长度为 n,不管输入多少字符,占用的存储空间永远为 n 个字节。

缺点:可能浪费存储空间。优点:查询的速度快。

选择的原则:字符串的长度不太长(char 类型的最大长度为 255),并且需要较快的查询速度。

比如:学生的学号,姓名,性别,手机号,身份证号等。

举例:

create table stu(
    s_id char(11),
    s_name char(20),
    gender char(2),
    birth date,
    phone char(11)
);

(2)可变长字符串类型:varchar

可变长字符串类型的含义为:指定文本类型长度为 n,如果输入字符串的长度小于 n,则分配 n+1 个字节的空间。可变长度字符串类型按照实际使用的字节数来分配空间,不会造成空间的浪费。

缺点:查询的速度较慢。优点:节省存储空间。

选择的原则:要保存的字符串内容较多(varchar 类型的最大长度为 65535),并且字符串的内容长度差别很大。

比如:通讯地址,备注,评语等。

举例:

create table emp04(
    id int,
    name char(20),
    birth date,
    salary decimal(10,2),
    phone char(20),
    address varchar(200),
    remark varchar(500)
);

字符串类型常量需要使用单引号括起来。例如:

insert into emp04 values(1101,'李刚','1998-12-1',4500,'13673511254','河南省新乡市',NULL);

三、查看数据库中的表

查看数据库中的表使用如下命令:

show tables;

例如:

-- 选择数据库
mysql> use mydb;
Database changed

-- 查看数据库中的表
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| emp            |
| emp03          |
| emp04          |
| t1             |
+----------------+
4 rows in set (0.00 sec)

四、查看表结构

查看表结构使用如下命令:

desc 表名;

例如:

mysql> desc emp04;
+---------+---------------+------+-----+---------+-------+
| Field   | Type          | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| id      | int(11)       | YES  |     | NULL    |       |
| name    | char(20)      | YES  |     | NULL    |       |
| birth   | date          | YES  |     | NULL    |       |
| salary  | decimal(10,2) | YES  |     | NULL    |       |
| phone   | char(20)      | YES  |     | NULL    |       |
| address | varchar(200)  | YES  |     | NULL    |       |
| remark  | varchar(500)  | YES  |     | NULL    |       |
+---------+---------------+------+-----+---------+-------+
7 rows in set (0.02 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睿思达DBA_WGX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值