熟悉MySQL数据类型,掌握常用类型。掌握创建数据库与表的语句。

熟悉MySQL数据类型,掌握常用类型。掌握创建数据库与表的语句。
1、数据类型

分类 子类型 数据类型 上限 数据类型说明
日期和时间数据类型 date 3字节 日期,格式:2014-09-18
日期和时间数据类型 time 3字节 时间,格式:08:42:30
日期和时间数据类型 datetime 8字节 日期时间,格式:2014-09-18 08:42:30
日期和时间数据类型 timestamp 4字节 自动存储记录修改的时间,格式:2009-09-18 08:42:30
日期和时间数据类型 year 1字节 年份, 格式:2009
数值数据类型 整型 tinyint 1字节 有符号范围(-128127),无符号(0255)
数值数据类型 整型 smallint 2字节 有符号范围(-3276832767),无符号(065535)
数值数据类型 整型 mediumint 3字节 有符号范围(-83886088388607),无符号(016777215)
数值数据类型 整型 Int(integer) 4字节 有符号范围 (-2147483648~2147483647),
无符号(0~4294967295)
数值数据类型 整型 bigint 8字节 有符号范围(-9223372036854775807~
9223372036854775807),
无符号(0~18446744073709551615)
数值数据类型 浮点型 float(m, d) 4字节 单精度浮点型,m总个数,d小数位
单精度实数在内存中占32bit 有效数字为6~7位
数值数据类型 浮点型 numeric(m,d) 4字节 m总个数,d小数位
数值数据类型 浮点型 double(m, d) 8字节 双精度浮点型,m总个数,d小数位
双精度实数占内存单元为64bit 有效数字为15~16位
数值数据类型 浮点型 decimal(m, d) decimal是存储为字符串的浮点数
字符串数据类型 char(n) 255字节 固定长度
每个汉字3字节
字符串数据类型 varchar(n) 65535字节
5.0以上版本 可变长度
每个汉字3字节
varchar起始位和结束位占去了3个字节
varchar会使用1-3个字节来存储长度
varchar性能略逊char,当长度变化的时候,要重新分配内存
字符串数据类型 tinytext 255字节 可变长度
字符串数据类型 text 65535字节
可变长度
存储的时候不会截断尾部的空格
text不会使用1-3个字节来存储长度
text没有默认值
字符串数据类型 mediumtext 16M 可变长度
字符串数据类型 longtext 4G 可变长度
字符串数据类型 二进制形式 TinyBlob 255字节 可变长度
字符串数据类型 二进制形式 blob 65535字节 可变长度
字符串数据类型 二进制形式 mediumblob 16M 可变长度
字符串数据类型 二进制形式 longblob 4G 可变长度
其它类型 enum(“1″, “2″) 最大65535个
不同的枚举值 enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。
当定义了一个enum的列时,该列的值限制为列定义中声明的值。
如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。
其它类型 set(“1”, “2″,) 最大64个
不同的值 set数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。
值的选择限制为列定义中声明的值。
2、创建students数据库
以下展示的是课本中students数据库案例的创建过程。如图所示为students的关系图。

(1)在命令提示符中,通过root用户登录到MySQL服务器。密码为root。
mysql -h localhost -u root -p
如图:
在这里插入图片描述
输入密码,密码为root。
(2)设置显示中文。
set names gbk;
如图:
在这里插入图片描述
(3)创建students数据库
CREATE DATABASE students;
如图:
在这里插入图片描述
(4)显示当前数据库,查看是否存在students数据库。
SHOW DATABASES;
如图:
在这里插入图片描述
(5)使用(切换至)students数据库。
USE students;
如图:
在这里插入图片描述
(6)创建专业表。
create table 专业(
专业编号 char(10) not null primary key,
专业名称 varchar(50),
级别 char(6),
学制 int
);
如图:
在这里插入图片描述
(7)显示数据库中的表。以后创建表后请自行执行该句,不再赘述。
SHOW TABLES;
如图:
在这里插入图片描述
(8)显示专业表中各列。以后创建表后请自行执行该句,不再赘述。
DESCRIBE 专业;
如图:
在这里插入图片描述
其中:NULL字段指示是否NULL可以被存储在列中。Key字段指示是否该列已编制索引。PRI的值指示该列是表的主键的一部分。Extra字段包含可以获取的与给定列有关的附加信息。

(9)创建课程表。
CREATE TABLE 课程(
课程编号 CHAR(10) NOT NULL PRIMARY KEY,
课程名称 VARCHAR(50),
理论学时 INT CHECK(理论学时>=0),
实验学时 INT CHECK(实验学时>=0),
开课学期 INT ,
课程性质课程介绍 CHAR(200)
);
如图:
在这里插入图片描述
(10)创建教师表。
CREATE TABLE 教师(
教师编号 CHAR(10) NOT NULL PRIMARY KEY,
教师姓名 VARCHAR(10),
性别 CHAR(2) CHECK(性别=‘女’ OR 性别=‘男’ ),
职称 CHAR(6),
政治面貌 VARCHAR(10),
简介 CHAR(200),
生日 DATETIME,
所在教研室 VARCHAR(50)
);
如图:
在这里插入图片描述
(11)创建班级表。
CREATE TABLE 班级(
班级编号 CHAR(10) NOT NULL PRIMARY KEY,
班级名称 VARCHAR(50),
专业编号 CHAR(10) REFERENCES 专业(专业编号),
入学年份 INT
);
如图:
在这里插入图片描述
(12)创建学生表。
CREATE TABLE 学生(
学号 CHAR(10) NOT NULL PRIMARY KEY,
姓名 VARCHAR(10),
性别 CHAR(2) CHECK(性别=‘女’ OR 性别=‘男’ ),
生日 DATETIME,
班级 CHAR(10) REFERENCES 班级(班级编号),
政治面貌 VARCHAR(10)
);
如图:
在这里插入图片描述
(13)创建开课计划表。
create table 开课计划(
开课计划编号 char(10) not null primary key,
课程编号 char(10) references 课程(课程编号),
教师编号 char(10) references 教师(教师编号),
学期 char(9) check(学期 like ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][1-2]’)
);
如图:
在这里插入图片描述
注意:MySQL5.X版本对check中使用正则表达式regexp只能解析,而不能使用,换句话说你写了check中的正则也没用,具体请看如下官方文字:The CHECK clause is parsed but ignored by all storage engines。如果需要设置CHECK约束的字段范围大,且列举全部值比较困难,比如整数或者某一区间,那就只能使用触发器来代替约束实现数据的有效性了。在MySQL8.0版本中check问题得到了修订,请看如下官方文字:The CHECK clause enables the creation of constraints to be checked for data values in table rows.
(14)创建选课表。
CREATE TABLE 选课表(
学号 CHAR(10) REFERENCES 学生(学号),
开课计划编号 CHAR(10) REFERENCES 开课计划(开课计划编号),
成绩 INT CHECK(成绩>=0 AND 成绩<=100)
);
如图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(15)删除选课表。
DROP TABLE 选课表;
如图:
在这里插入图片描述

(16)删除students数据库。
DROP DATABASE students;
如图:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值