mysql数据类型

  • 常用数据类型
    数值类型、字符类型、枚举类型、日期时间类型
  • 数值类型
1、整型(均默认signed,按需要手动unsigned)
	1、int 大整型(4个字节)
			取值范围:-2**31 ~ 2**31 - 1(42亿多)
	2、tinyint 微小整型(1个字节)
			1、有符号(signed 默认):-128 ~ 127
				eg:money tinyint
			2、无符号(unsigned): 	0 ~ 255
				eg:age tinyint unsigned
	3、smallint 小整型(2个字节)
	4、bigint 极大整型(8个字节)

2、浮点型
	1、float(4个字节,最多显示7个有效位(整数加小数))
		1、用法:
			字段名 float(m,n)	m->总位数 n->小数位位数
			float(7,2)取值范围:-99999.99~99999.99
	2、decimal(最多显示28个有效位)
		1、用法:
			字段名 decimal(m,n) m->总位数 n->小数位位数
		2、存储空间(整数、小数分开存储)
			规则:将9的倍数包装成4个字节
				余数		字节
				 0			 0
				1-2			 1
				3-4			 2
				5-6			 3
				7-9			 4
			示例:decimal(19,9)
				整数部分:10/9=商1余1 4+1 = 5个字节
				小数部分:9/9 =商1余0 4+0 = 4个字节
				占:9个字节
注意:
	1、浮点型插入整数时会自动补全小数位位数
	2、小数位多余指定的位数,会对下一位进行四舍五入

练习:

在这里插入图片描述

create database studb2;
use studb2

create table stuinfo(
id int,
name char(20),
age tinyint unsigned,
height float(5,2),
money decimal(12,2)
) character set utf8;

desc stuinfo;
show create table stuinfo;
insert into stuinfo values(0,"张飞",23,182.66,80000);
select * from stuinfo;
insert into stuinfo(id,name) values(1,"刘备"),(2,"关羽");
select id,name from stuinfo;
  • 字符类型
1、char(定长)
	1、宽度取值范围:1 ~ 255 (默认为1)
2、varchar(变长)
	1、取值范围:1 ~ 65535
3、text / longtext(4G) / blob / longblob(4G)
4、char和varchar的特点
	1、char:浪费存储空间,性能高
	2、varchar:节省存储空间,性能低

注意:
char可以不指定宽度,默认为1,eg:sex char
varchar必须指定宽度,否则不通过。eg:sex varchar(5)

练习:

1、MySQL中数据类型有:数值类型 字符类型 枚举类型 日期时间类型
2、关系型数据库中的核心内容是 _关系_ 即 _二维表_ 
3、简述客户端把数据存储到数据库服务器上的过程
4、char和varchar的区别,各自的特点
5、操作
	1、创建一个学校的库 school
	2、在库中创建表students用来存储学生信息:
		id 大整数,姓名,年龄(不能为负),性别,成绩(浮点)
	3、查看students的表结构
	4、在表中随意插入3条记录
	5、在表中的姓名、成绩两个字段插入3条记录
	6、查看所有学生的姓名和成绩
	7、查看成绩及格(>60分)的学生的姓名和成绩
  • 字符类型宽度和数值类型宽度的区别
1、数值类型宽度为显示宽度,只用于select查询显示,和占用存储
无关(均是4个字节),可用zerofill(0填充)查看效果
2、字符类型的宽度超过之后则无法存储
  • 枚举类型
1、单选(enum):字段名 enum(值1,值2,.....)
2、多选(set) : 字段名 set(值1,值2,...)
##插入记录时: "F,Study,Python"

eg:
	create table t1(
		id int(3) zerofill,
		name varchar(15),
		sex enum("M","F","Secret"),
		likes set("F","M","Study","Python")
		);
	insert into t1(likes) values("Python,F,M")
	insert into t1(sex)   values("F")
  • 日期时间类型
1、date:"YYYY-MM-DD"
2、time:"HH:MM:SS"
3、datetime:"YYYY-MM-DD HH:MM:SS"
4、timestamp:"YYYY-MM-DD HH:MM:SS"
5、注意:
	datetime:不给值默认返回NULL值
	timestamp:不给值默认返回系统当前时间

eg:
	create table t1(
			id int,
			name varchar(15),
			birthday date,
			money int,
			time datetime
			);
  • 日期时间函数
1、now()		返回服务器当前时间
2、curdate()	返回当前日期
3、curtime()	返回当前时间
4、year(date)	返回指定时间的年份
5、date(date)	返回指定时间的日期
6、time(date)	返回指定日期的时间

eg:
	select now();
	select curdate();
	select curtime();		返回当前时分秒
	select year("2018-9-20 00:00:00")	select year(now());
	select date(now());

#查找2018年7月2日用户充值了多少钱
select name,money,time from date(time) = "2018-07-02"
或select name,money,time from date(time) = 20180702
  • 日期时间运算
1、语法形式
	select * from 表名
		where 字段名 运算符 (时间 - interval 时间间隔单位);
	时间间隔单位:
		1 day | 2 hour | 1 minute | 2 year | 3 month
2、练习
	1、查询一天以内的记录
		select * from t1 
			where time > (now() - interval 1 day);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值