mysql周学习总结

这篇博客总结了MySQL的数据库操作,包括如何建库建表建约束,详细介绍了各种数据类型如Int、float、char等。此外,还讲解了使用代码进行数据的增删改查操作,如INSERT、DELETE、UPDATE和SELECT语句的运用,以及查询函数如MAX、MIN、COUNT和AVG。同时,提到了外键约束、字段别名、多条件查询、排序以及通配符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

建库建表建约束

**
新建表
右击数据库中的表新建表弹出新窗口,
第一列输入字段名,数字、字母、下划线
第二列选择数据类型,
常用类型:
Int:一般需要用于计算的数值使用此类型
float、double:用于金钱数值等需要计算小数位的数值
char:定长字符串,用于输入手机号或身份证号等固定号码
varchar:可变长字符串。
Text:用于存储非常长的文本存储
Bit:只有0和1,一般用于区分性别等
第三列输入长度,
第四列输入小数位,
第五列选择是否允许为空(null)。
一般主键会在第一列自动生成

定义外键:
把某一列与其他表的某一列关联起来,以便节约存储空间。一般会关联其他表的主键

使用代码做增删改查

使用代码添加数据
Insert into 表名(列名,列名….)
VALUE(数据,数据)
若想添加多行数据则使用VALUES(数据,数据),(数据,数据),
示例:在歌手表中添加歌手

INSERT INTO singertbl(SingerName,SingerType,Birthday,Area,PhotoPath)
VALUES
('薛之谦','男歌手','1983-07-17','大陆','薛之谦.jpg'),
('何韵诗','女歌手', 	'1977-05-10', '	香港','何韵诗.jpg'),
('SHE','组合', NULL ,'台湾','SHE.jpg '),
('周杰伦', '男歌手','1979-01-18', '台湾', '周杰伦.jpg '),
('Michael Jackson', '男歌手', '1958-08-29','欧美','Michael Jackson.jpg '),
('李孝利', 	'女歌手', '1979-05-10', 	'日韩' ,'李孝利.jpg '),
('张学友', '男歌手','1961-07-10', '	香港' ,'张学友.jpg '),
('蔡琴', 	'女歌手', '1957-12-12 ',	'台湾','蔡琴.jpg '),
('那英','女歌手 ','	1967-11-27','大陆','那英.jpg '),
('张信哲','男歌手','1967-03-26','台湾','张信哲.jpg ')

使用代码删除数据
DELETE FROM 表名 WHERE 列名=数据
示例:DELETE FROM expencetbl WHERE DrinksID=8
删除或修改时要注意!如果想删除或修改被其他表建立了外键的字段需要先删除外键再执行删除操作 或者将该外键的“删除时“属性改为set null 当主表删除时改列显示为NULL。

使用代码修改数据
UPDATE 表名称 SET 列名=新数据 where 列名=旧数据
示例:UPDATE typetbl SET typeName = '游戏动漫' WHERE typeName = '动漫'

数据的查询
总结一些查询要用的函数:
Select max(列名) from 表名
求该列名最大值

Select min(列名) from 表名
求该列名最小值

Select count(列名) from 表名
求该列名个数总和

Select avg(列名) from 表名
求该列名所有数值的平均值

给字段起别名
Select 列名(空格或as)别名 ()中文要用单引号括起来
可以让结果中的字段名改为自己设置的别名

多个条件查询
Select * from 表名 where 条件AND条件 或中间用or隔开
Or:或关系
And:与关系

Order by :对结果排序 sac为升序,desc为降序,默认不写为升序
示例 order by 列名 sac/desc

在计算年龄时可以使用year函数与now函数组合获取现在的年份减去出生日期
示例 year(now()))-year((日期类型)列名)
查询时使用通配符
%:多个任意字符
_:任意一个字符
在使用通配符时要使用like
基本语法:

select 要显示查询结果的列    *号代表结果输出该表的所有列
from 来自哪张表
where 筛选的条件

多个表之间的查询

判断是用外联还是内联
语法 :

SELECT *
FROM 表1 
INNER JOIN 表2   ON 表1.主键 = 表2.外键
Where 条件

使用内外联查询时若要起中文别名必须用as!

子查询:
在一个select查询中再嵌套一个甚至多个select语句,实现多个表之间的数据输出,子查询的缺点也比较明显,代码量大。若需要查询多个表嵌套太多层会把人套晕。
不过个人感觉子查询的优点也很明显,结构简单,只是单一的嵌套基础语句
举例:

SELECT 列名
FROM	表名_detail oc
WHERE 列名 = (SELECT 列名
FROM 表名
WHERE 列名=**')

多表查询:
与子查询不同,这里多表查询是再from多添加一个引用表或多个引用表,这种查询因引用多个表可能会因为不同表有相同字段名产生歧义所以需要在使用字段名前加上表名,如:表名1.列名1,表名2,列名1
使用此查询一般会在where语句 使用表名1.主键=表名2.外键….将几个表的主外键关联。
举例:

SELECT l.lineTypeID,li.typeName  -- 需要输出的信息不在同一个表中
FROM line l,linetype li		-- 引用了两个表并起别名
WHERE l.lineTypeID=li.lineTypeID  -- 关联两个表的共同字段
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值