初识MySQL
1. 安装MySQL-5.7.23.0
- MySQL下载(官网)
MySQL官网 - MySQL安装
注意:
1.记住端口号:3306
2.记住自己设定的密码
3.记住服务号(Windows Server Name) - MySQL的环境变量配置
找到安装的bin目录
在环境变量Path中添加
##2.MySQL实现登录
window+R:输入cmd,接着输入mysql -h localhost -P 3306 -u root -p;回车后再输入密码;输入exit结束
##3.数据库当中的数据类型
(1)整数类型
整数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
TINYINT | 1 | 有符号 -128 无符号 0 | 有符号 127 无符号 255 |
SMALLINT | 2 | 有符号 -32768 无符号 0 | 有符号 32767 无符号 65535 |
MEDIUMINT | 3 | 有符号 -8388608 无符号 0 | 有符号 8388607 无符号 1677215 |
INT / INTEGER | 4 | 有符号 -2147483648 无符号 0 | 有符号 2147483647 无符号4294967295 |
BIGINT | 8 | 有符号 -9223372036854775808 无符号 0 | 有符号 9223372036854775807 无符号 18446744073709551615 |
(2)浮点数类型
浮点数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
FLOAT | 4 | ±1.175494351E–38 | ±1.175494351E+38 |
DOUBLE | 8 | ±2.2250738585072014E–308 | ±2.2250738585072014E+308 |
(3)定点数类型
定点数类型 | 字节 | 描述 |
---|---|---|
DEC(M,D),DECIMAL(M,D) | M+2 | 最大取值范围与DOUBLE相同,给定DECIMAL的有效取值范围由M和D决定 |
(4)位类型
位类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
BIT(M) | 1~8 | BIT(1) | BIT(64) |
(5)日期类型
时间日期 | 字节 | 最小值 | 最大值 |
---|---|---|---|
DATE | 4 | 1000-01-01 | 9999-12-31 |
DATETIME | 8 | 1000-01-01 | 9999-12-31 23:59:59 |
TIMESTAMP | 4 | 19700101080001 | 2038年每个时刻 |
TIME | 3 | -838:59:59 | 838:59:59 |
YEAR | 1 | 1901 | 2155 |
(6)字符串类型
字符串类型 | 字节 | 描述及存储需求 |
---|---|---|
CHAR(M) | M | M为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(M)和VARCHAR(M)
##4.Mysql中的约束
MySQL中的6大约束:
关键字 | 解释 |
---|---|
NOT NULL | 约束字段的值不能为空 |
DEFAULT | 设置字段的默认值 |
UNIQUE KEY(UK) | 约束字段的值是唯一 |
PRIMARY KEY(PK) | 约束字段为表的主键,可以作为该表记录的唯一标识 |
AUTO_INCREMENT | 约束字段的值为自动增长 |
FOREIGN KEY(FK) | 约束字段为表的外键 |
非空:在我们新增数据的时候 这个字段必须新增的同时有值;
默认:在你没有给定值得时候 数据库默认的值
唯一:唯一是指一个字段中所有的值不能重复
主键:通过主键一定能找到唯一的一条记录(主键包含非空且唯
一这两种约束)
自动增长: 主键数字自动往上递增1;可以使用自动增长的约束
(1.自动增长约束必须是主键而且数据类型是int。2.自动增长的
数字不会回退)
外键约束:子表的取值范围受父表约束;
##5.cmd命令下创建四种表
商品种类表(commoditytype)
字段名 | 数据类型 | 说明 |
---|---|---|
ct_id | int | 商品种类编号,主键 |
ct_name | varchar(50) | 商品种类名称非空 |
create table commoditytype(
->ct_id int(11) primary key,
->ct_name varchar(50) not null
->)default charset=utf8;
商品表(commodity)
字段名 | 数据类型 | 说明 |
---|---|---|
c_id | int | 商品编号,主键 |
c_name | varchar(50) | 商品名称,非空 |
c_madein | varchar(50) | 商品产地,非空 |
c_type | int | 商品种类,外键 |
c_inprice | int | 商品进价,非空 |
c_outprice | int | 商品售价 |
c_num | int | 商品库存,默认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_id | int | 客户编号,主键 |
cu_name | varchar(50) | 客户名字,非空 |
cu_phone | varchar(50) | 客户电话,非空 |
cu_gender | int | 客户性别,默认‘1’ |
cu_address | varchar(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) not null default '1',
-> cu_address varchar(100) not null
-> )default charset=utf8;
订单表-order
字段名 | 数据类型 | 说明 |
---|---|---|
o_id | int | 订单编号,主键,自增长 |
o_cuid | int | 客户编号 |
o_cid | int | 商品编号 |
o_num | int | 商品数量 |
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),
-> constraint fk_3 foreign key (o_cid) references commodity (c_id)
-> )default charset=utf8;
注意:order是关键字要用``符号