数据库入门2

数据库入门2


数据类型

具体规则参考如下博客链接
https://www.cnblogs.com/pangguoming/p/7126512.html


字符

  • char长度固定,不足使用空格填充,最多容纳2000个字符,查询速度快但浪费空间
  • varchar变长字符串,最多容纳4000个字符,查询稍慢,但节省空间
  • 大文本text

utf8编码计算,一个汉字占3个字节

数字

  • tinyint, int 整数类型
  • float, double小数类型
  • numberic(5,2), decimal(5,2) 表示小数,表示总共5位,其中可以有两位小数
  • decimal,numeric表示精确的整数数字

日期

  • date 包含年月日
  • time 时分秒
  • datetime 包含年月日时分秒
  • timestamp 时间戳,不是日期,从1970/1/1道指定日期的毫秒数

图片

  • blob

字段约束

主键约束

如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空
通常情况下,每张表都会有主键
ex:将id设置为主键

主键自增策略
初始值为1
primary key auto_increment
主键约束自动递增,id不能重复,不能是null,自动递增

非空约束

字段的值不能为空
not null

唯一约束

字段的值不能重复
unique

外键约束

foreign key
子表的id来源于主表的id
想要删除主表的记录,必须先删除关联的子表

默认约束

default

检查约束

check
在这里插入图片描述

常用函数

lower

数据转小写

upper

数据转大写

length

数据的长度
一个字母或者数字占一个字节,一个汉字占3个字节

substr

截取字串
substr(user_name,1,3) 取user_name字段所有值的第一到第三位,含头含尾

concat

数据拼接

replace

数据替换

ifnull

如果空
null不参与运算,需要特殊处理

round&cell&floor

对小数的相关处理
round 四舍五入
ceil向上取整
floor向下取整

uuid

now

对日期的操作

year& month& day& hour& minute&second

在这里插入图片描述

转义符号

反斜杠 \

条件查询

distinct

where

查询顺序
from where select

like

模糊查询 %占位符
“a%” 以a开头 ——最高效
“%a%”含a
"%a"以a结尾

null

between and

limit

顺序 from where select limit

order by

默认升序
order by 字段名 asc
order by 字段名 desc

聚合函数

根据一列统计结果

count

SELECT COUNT(*) FROM emp;#低效
SELECT COUNT(1) FROM emp;#高效
SELECT COUNT(字段名) FROM emp;#低效

如果按照字段名统计个数,如果字段值是null将不做统计,算出啦总数不准确

max / min

sum

avg

分组

使用不同的聚合函数时,可能会产生行数不同的情况,此时要分组

GROUP BY

按照指定的字段分组
用于对查询的结果进行分组统计
having子句类似于where过滤返回的结果

如果查询时出现了聚合列和非聚合列,通常按照非聚合列分组


having

分组后需要过滤,使用having
分组前可以使用where,有的情况下相对高效,
但是where里不可以出现聚合函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值