mysql基础day02

1.常用数据类型

1.1数字型

1.1.1.整数型

重要: tinyint int(数据类型不同,表示范围也不同)
tinyint 一个字节
int		四个字节
例子:
create table `student1`(
	`id` int unsigned,
    `name` varchar(20),
    `score` tinyint unsigned
)engine=innodb charset=utf8 comment='学生表1';


unsigned:(无符号)确定为正整数
 
insert into `student1` values(1,'吕布',100);#成功
insert into `student1` values(-1,'吕布',100);#失败
insert into `student1` values(4294967295,'吕布',100);#成功
insert into `student1` values(4294967296,'吕布',100);#失败
insert into `student1` values(1,'吕布',255);#成功
insert into `student1` values(1,'吕布',256);#失败

1.1.2.小数型

浮点数: float,double
定点数: decimal
数据类型(M,D)
M:总长度
D:小数位长度

1.2字符串类型

1.2.1.char定长字符串

char(M):定的长度是多少就占多少
注意:如果是char类型,长度确定,占用空间就确定

1.2.2.varchar可变字符串

varchar(M):随着保存数量大小,改变空间占用大小
注意:如果是varchar类型,随着存储数据而改变占用空间

如何选择:
如果保存长度小于255,且长度固定,则使用char()
如果保存长度小于255,且长度不固定,则使用varchar(),如果超过255,则使用"文本"类型

1.3.文本内容

常用的:
text		2个字节 表示65535个
longtext     4个字节 表示42亿个

1.4.时间日期

datetime	日期与时间  范围: 0001-9999年
timestamp    时间戳     范围: 1970-2038年

create table `student2`(
	`id` int unsigned,
    `name` varchar(20),
    `birthday` datetime,
    `end_time` timestamp
)engine=innodb charset=utf8 comment='学生表';

datetime:时间固定
timestamp:时间根据修改时间自动生成

2.字段属性

2.1.null属性

null	允许为空
notnull  不能为空

2.2.default属性

默认值

2.3.主键 primary key

1.用于唯一标识一条记录
2.一个表只能有一个主键
3.主键不能为空
4.主键值不能重复

2.4.自动增长 auto_increment

跟主键一起使用

2.5.唯一 unique key

一个表有一个主键,但一个表可以有多个唯一键


create table `student2`(
	`id` int unsigned primary key auto_increment,
    `name` varchar(20) not null comment '姓名',
    `Nick_name` varchar(20) not null unique key comment '昵称',
    `age` int default 20 comment '年龄'
)engine=innodb charset=utf8 comment='学生表3';

3.查询select

3.1.select查询

all 选项(默认的)
distinct 选项(去重)
针对查询结果进行去重
注意:只有全部字段的值全部一样,才算重复

3.2.字段表达式

通配符	*
* 匹配所有字段
select * from `表名`;

别名 as
select name as '姓名' from `stu`;
select name '姓名' from `stu`;

聚合函数
count() 统计,计数
sum() 求和
avg() 求平均值
max() 求最大值
min() 求最小值

create table `stu`(
	id int,
    age int
)engine=innodb charset=utf8 comment='年龄表';

insert into `stu` values(1,10),(2,15),(3,18),(4,30),(5,20);

4.连接查询

连接查询分类:
内连接: inner join 简写为 join
将左右两张表中能匹配上的记录查询出来

外连接:
左外连接 left join
select * from `class` left join `student0` on `student0`.`class_id`=`class`.`class_id`;
将左表中与右表匹配不上的记录也查询出来.

右外连接 right join
select * from  `student0` right join `class` on `student0`.`class_id`=`class`.`class_id`;
将右表中与左表匹配不上的记录也查询出来.

using
使用一个字段来作为连接条件,两张表的同名字段
select * from  `student0` right join `class` using(class_id);
发布了20 篇原创文章 · 获赞 0 · 访问量 201

猜你喜欢

转载自blog.csdn.net/weixin_46054381/article/details/103930779
今日推荐