用Mysql在Navicat做题遇到的判断年月日的问题

虽然前两天刚刚总结完mysql的语法,但是还是有一些细节的问题没有很清楚,今天做题遇到的问题记录一下

1、数据类型datetime(读取年月)

-- 查询my_table中在六月出生的人的信息
select * from my_table
WHERE MONTH(birthday)='6' 
--查询my_table中在2000年出生的人的信息 
select * from my_table
WHERE YEAR(birthday)='2000' 

2、关于主键(码)、外键(码)、索引

主码(primary key)、外码(foreign key)

primary key:定义在一张表中某一列或几列,表示唯一标识符,被primary key标记的列,不能为空,不能重复
foreign key:给表中和主码列相同的列定义外码,将两张表的关系定义为主从表关系,主表里面没有的,从表里面也不能有,然后两表之间可以进行级联操作

级联操作:外码参照主码操作,当删除、修改某个主表里面的记录时,从表里面的那个对应的记录也会自动删除、修改。

-- 创建时定义
create table my_table_1(
	col_1 int(4) primary key,
)
-- my_table_1的主码作为my_table_2的外码
-- 而col_2定义为my_table_2的主码,作为my_table_3的外码
create table my_table_2(
	col_1 int(4),
	col_2 varchar(10) primary key,
	foreign key(col_1) references my_table_2(col_1)
)
create table my_table_3(
	col_1 int(4),
	col_2 varchar(10),
	col_3 varchar(20),
	foreign key(col_1) references my_table_1(col_1)
	foreign key(col_2) references my_table_2(col_2)
)

索引(index)

索引主要是为了优化数据库,加快检索效率的,目前做作业和简单的数据库增删查改还没到优化数据库的程度,所以暂时没有深入研究索引,这里有篇文章写的比较好懂:索引是什么,和主码的关系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值