mysql学习笔记(二)

-- mysql关系型数据库:C/S结构软件(连接认证,发送SQL指令,服务器处理指令返回结果,客户端接收结果解析结果)
-- mysql服务器端对象:DBMS->Database->Table->fields

-- 数据类型
-- 所谓的数据类型:对数据进行统一的分类
-- SQL中将数据类型分成了三大类:数值类型,字符串类型和时间日期类型
-- 数值型:都是数值,分为整数型和小数型

-- 整数型数据:存放整型数据,细分为五类
-- TinyInt 迷你整型,使用一个字节存储
-- smallInt 小整型,使用2个字节存储
-- mediumint 中整型,使用三个字节存储
-- int 标准整型,使用四个字节存储
-- bigint:大整型,使用八个字节存储

-- SQL中将小数型分为浮点型和定点型
-- 浮点型:小数点浮动,精度有限,而且会丢失精度(自动四舍五入)
-- 定点型:小数点固定,精度固定,不会丢失精度

-- 主键:一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复

create table my_info(name varchar(20),numbers char(10) primary key comment '学号');
show full columns from my_info;
-- 一个表只能有一个主键
-- 复合主键

-- 在实际创建表的过程中,很少使用真实业务数据作为主键字段(业务主键,如学号,课程号) 
-- 大部分使用逻辑性的字段,称为逻辑主键

create table my_student(
id int primary key auto_increment comment '逻辑主键,自增长',
number char(10) not null comment '学号',
name varchar(10) not null    
);
desc my_student;

-- 当自增长被给定的值为null或者默认值的时候会触发自动增长
-- 自增长如果对应的字段输入了值,那么自增长失效,但是下一次还是能够正确的自增长(从最大值+1)
insert into my_student(number,name) values('123','xu');
insert into my_student values(null,'234','jian');

show create table my_student;

-- 自增长修改
-- 修改只能向更大的数修改,向下修改不生效
alter table my_student auto_increment=5;-- 下一次自增长从5开始

-- 为什么自增长是从1开始?为什么每次都是自增1呢?
show variables like 'auto_increment%';
# auto_increment_increment    1
# auto_increment_offset    1
-- 可以修改变量实现不同的效果,修改是对整个数据修改,而不是单张表
-- 修改自增长步长
set auto_increment_increment=5;

-- 唯一键
-- 一张表往往有很多字段需要具有唯一性,数据不能重复,
-- 但是一张表中只能有一个主键,唯一键(unique key)就可以解决表中有多个字段需要唯一性约束的问题
-- 唯一键的本质与主键差不多,唯一键默认的允许自动为空,而且可以多个为空
-- 增加唯一键

create table my_unique1(
number char(10) not null unique comment '学号:唯一',
name varchar(10) not null
);

desc my_unique1;

 

你可能感兴趣的:(mysql学习笔记(二))