Mysql 基础(四) 表的创建自己活着,就是为了使别人过得更美好。——雷锋
学习重点表通过 CREATE,TABLE 语句创建而成
表和列的命名要使用有意义的文字
指定列的数据类型(整数型,字符型,和日期型等等)
可以在表中设置约束(主键约束和 NOT NULL 约束等)
表内容的创建这是一个商家的进货表
商品编号
商品名称
商品种类
销售单价
进货单价
登记日期
001
T 恤衫
衣服
1000
500
2009-09-20
002
打孔器
办公用品
500
320
2009-09-11
003
运动 T 恤
衣服
4000
2800
004
菜刀
厨房用具
3000
2800
2009-09-20
005
高压锅
厨房用具
6800
5000
2009-01-15
006
叉子
厨房用具
500
2009-09-20
007
擦菜板
厨房用具
880
790
2008-04-28
008
圆珠笔
办公用品
100
2009-11-11
可以看到上面这个表格是由 8 行 6 列组成
(1) 数据库的创建(CREATE DATABASE 语句)
在创建表之前 一定要先创建数据库CREATE DATABASE
这里我们将数据库命名为 shop,然后执行代码中的语句
此外 数据库名称,表名以及列名都需要使用半角字符(英文字母,数字,符号),具体内容以后会介绍
(2) 表的创建(CREATE TABLE)创建好数据库之后,我们使用 CREATE TABLE 创建表.具体如下
该语法清楚的描述了 我们要创建一个包含,的名称为表名的表.每一列的数据类型(后述)是必须要指定的,还需要为需要的列设置约束.约束可以在定义列的时候进行设置,也可以在语句的末尾设置
例如
命名规则命名
我们只能使用
半角英文字母
数字
下划线(_)
作为数据库,表和列的名称
标准的 SQL 不允许使用特殊符号例如$ # ? 等等作为名称使用(列名同样不允许)
此外名称必须以半角英文字母开头
表名绝对不能重复
数据类型的指定
刚才我们创建了一张表 名称后面比如 CHAR ,VARCHAR 这一列关键字,是用来声明列的数据类型的
所有列必须指定数据类型
数据类型表示数据的种类,包括数字型,字符型和日期型.每一列都不能存储与该列数据类型不符的数据.比如声明整数型的列不能存储’abc’这样的字符串,声明字符串类型的列也不能存储 1234
下面是最基本的四种数据类型
INTEGER 型
用来指定存储整数的列的数据类型(数字型),不能存小数 。N 表示字节位数 值的范围就是 -2 的(8N-1) 方到 2 的(8N-1)方-1
要是只想要正整数可以变成无符号形,比如 unsigned 这样值的范围就是 0 到 2 的 8N 次方-1
Float 型
Float(m,n) m 表示总位数,n 表示小数点后面的精度 比如 float(4,2) -99.99 到 99.99
CHAR 型
CHAR 是用来存字符类型的比如像 CHAR(10) 或者 CHAR(200)
在括号中指定该列可以存储的字符串的长度(最大长度),字符串超出最大长度的部分是无法输入到该列中
字符串是定长字符串的形式存储在指定的 CHAR 类型中,所谓定长就是当字符串达不到最大长度的时候。使用半角空格进行补足,例如 CHAR(8) 存的时候就变成 ‘abc ‘ (abc 后面 5 个半角空格)的形式保存起来
VARCHAR 型
VARCHAR 也是用来存储字符串的,只不过它是变量类型的.即使字符数未达到最大长度,也不会用半角补足.例如 VARCHAR(8)
存’abc’ 它保存的就是’abc’
Date
用来指定存储日期(年月日)的列的数据类型(日期型)
BLOB(类型)
用来存储 2 进制数据 比如图片,音频之类的
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
约束的设置
约束是除了数据类型之外 ,对列中存储的数据进行限制或者追加条件的功能.Product 表中设置了两种约束
第一种:有 3 列不能为空
第二种:主键
所谓键 就是在指定特定数据时使用的列的组合,键种类多样,主键可以特定一行数据的列。也就是说如果把 product_id 列指定为主键,就可以通过该列取出特定的商品数据
反之 如果 product_id 输入了重复数据。就无法取出唯一的特定数据了
主键必须唯一