MySQL 数据类型,约束,表的创建

MySQL 数据类型,约束,表的创建

标签: MySQLday01 MySQL安装 SQL约束 SQL数据类型 SQL表的创建


MySQL优势

  • 1.MySQL是开源的数据库
    everyone都可以获取数据库的源代码,everyone可以修正MySQL的 缺陷
  • 2.MySQL是跨平台
    不仅可在windows系统中运行,也可在Linux、UNIX和Mac OS系统 中运行
  • 3.价格优势
    自由软件,可以从MySQL官网直接下载免费使用。
  • 4.功能强大且使用方便
    MySQL是一个真正的多用户、多线程SQL数据库服务器。Mysqld和 客户程序组成,可快速,有效和安全的处理大量数据,使用非常简单, 相对于Oracle而言

MySQL安装

  • 1.已安装可以用安装程序进行卸载重启后安装
    MySQL的默认端口号是3306 当安装多个版本的MySQL端口不能重复 可以再原有的基础上+1
    在这里插入图片描述
  • 2需要配置Path路径默认安装路径C:\Program Files\MySQL\MySQL Server 5.7\bin
    在这里插入图片描述

MySQL在CMD下的登入

mysql -h localhost -P 3306 -u root -p //本地服务的连接
mysql -h 127.0.0.1 -P 3306 -u root -p //本地服务的连接也可连接公司的服务器
mysql -u root -p //常规登入方法

数值类型

整数类型字节最小值最大值
TINYINT1无符号 -128
有符号 127
有符号 127
无符号 255
SMALLINT2有符号 -32768
无符号 0
有符号 32767
无符号 65535
MEDIUMINT3有符号 -8388608
无符号 0
有符号 8388607
无符号 1677215
INT / INTEGER4有符号 -2147483648
无符号 0
有符号 8388607
无符号 1677215
BIGINT8有符号 -9223372036854775808
无符号 0
有符号 9223372036854775807
无符号 18446744073709551615
多种数值类型的原因
初代计算机的内存比较小需要根据需求合理的分配内存空间,根据需要选择最适当的数据类型
而现代计算机有很大的内存所以常用int进行使用

浮点数类型字节最小值最大值
FLOAT4±1.175494351E–38±1.175494351E+38
DOUBLE8±2.2250738585072014E–308±2.2250738585072014E+308
定点数类型字节描述
DEC(M,D),DECIMAL(M,D)M+2最大取值范围与DOUBLE相同,给定DECIMAL的有效取值 范围由M和D决定
位类型字节最小值最大值
BIT(M)1~8BIT(1)BIT(64)
定点数据类型的由来
定点数类型是为了解决32位时的精度缺失,将数据以字符串存入,数字取出

日期类型

日期类型字节 最小值最大值
DATE41000-01-01
DATETIME81000-01-01 00:00:00
TIMESTAMP419700101080001
TIME3-838:59:59
YEAR11901
最大值和最小值代表着格式存在的最大值
DATETIME代表着时间戳但是被UUID替代
day() 、month()、year() 能够截取DATETIM的特定对象时间
now()函数能够获取当前的datetime

常用字符串类型

字符串类型字节描述及存储需求
CHAR(M)MM为0~255之间的数
VARCHAR(M)M为0~65535之间的整数,值的长度+1个字节
TEXT允许长度0~65535字节,值得长度+2个字节
TINYTEXT允许长度0~255字节,值得长度+2个字节
MEDIUMTEXT允许长度0~167772150字节,值得长度+3个字节
LONGTEXT允许长度0~4294967295字节,值得长度+4个字
常使用的是CHAR和VARCHAR 
其他的数据类型是存储以前的小说,所以其类型长度很大,但是不能快速的修改和读取很少使用
目前多使用数据仓库来储存小说,用数据库来储存地址

MySQL中的6大约束

NOT NULL        约束字段的值不能为空 
DEFAULT         设置字段的默认值 
UNIQUE KEY(UK)  约束字段的值是唯一 
PRIMARY KEY(PK) 约束字段为表的主键,可以作为该表记录的唯一标识     
AUTO_INCREMENT  约束字段的值为自动增长 
FOREIGN KEY(FK) 约束字段为表的外键
约束的目的
约束的目的是为了保证数据结构的一致性和完整性

外键约束 PRIMARY KEY

为commodity c_type , commoditytype (ct_id) commodity 为子表commodity type为父表声明外键

  • 外键约束存在四种声明方式
//建表时创建带有命名
constraint fk_1 foreign key commodity (c_type) references commoditytype (ct_id)

建表时创建不带有命名
foreign key (c_type) references commoditytype (ct_id)

//commodity  表已存在  不声明命名
alter table commodity
add foreign key (c_type)
references commoditytype (ct_id)

// commodity  表已存在  声明命名
alter table commodity
add constraint fk_1
foreign key (c_type)
references commoditytype (ct_id)
  • 外键删除
alter table commodity
drop foreign key fk_PerOrders
注意
子表的取值范围受父表约束
先建父表,再建子表;先有父表数据,再有子表约束
要先删除子表才能删除父表

SQL操作数据库

命令结束标识符
SHOW DATABASES; //显示
CREATE DATABASE database_name;//建立数据库的命令
DROP DATABASE database_name;//删除数据库的命令
USE database_name;//操作数据库
USE database_name;//操作数据库
desc database_name; //查看数据表结构
DROP table_name;//删除表
SHOW TABLES;//查看表


代码实例

商品种类表-commoditytype

字段名数据类型说明
ct_id intint商品种类编号,主键
ct_namevarchar(50)商品种类名称非空
create table commoditytype(
ct_id int(11) primary key,
ct_name varchar(50) not null
)default charset=utf8;

商品表-commodity

字段名数据类型说明
c_id intint商品编号,主键
c_namevarchar(50)商品名称,非空
c_madeinvarchar(50)商品产地,非空
c_typeint商品种类,外键
c_inpriceint商品进价,非空
c_outpriceint商品售价
c_numint商品库存,默认100
create table commodity(
c_id int(11) primary key,
c_name varchar(50) not null,
c_madein varchar(50)not null,
c_type int(11) not null,
c_inprice int(11) not null,
c_outprice int(11),
c_num int(11) default '100',
constraint fk_1 foreign key (c_type) references commoditytype (ct_id)
)default charset=utf8;

客户表-customer

字段名数据类型说明
cu_idint客户编号,主键
cu_namevarchar(50)客户名字,非空
cu_phonevarchar(50)客户电话,非空
cu_genderint客户性别,默认‘1’
cu_addressvarchar(100)客户地址,非空
create table customer(
cu_id int(11) primary key,
cu_name varchar(50) not null,
cu_phone varchar(50) not null,
cu_gender int(11) default '1'
)default charset=utf8;

订单表-order

字段名数据类型说明
o_idint订单编号,主键,自增长
o_cuidint客户编号
o_cidint商品编号
o_numint商品数量
create table `order`(
o_id int(11) primary key auto_increment,
o_cuid int(11) not null,
o_cid int(11) not null,
o_num int(11) not null,
constraint fk_2 foreign key(o_cuid) references customer (cu_id),
)default charset=utf8;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值