数据库基础2

目录

查询条件

聚合 aggregation

分组 group

小结


基础函数:

lower--数据转小写

upper--数据转大写

length--数据的长度

substr--截取

concat--拼接数据

replace--把指定字符替换

ifnull--判断,如果有null就替换

round--四舍五入

ceil--向上取整

floor--向下取整

now()--年日时分秒

year()--年

month()--月

day()--日

hour()--时

minute()--分

second()--秒

查询条件

distinct--去除重复

where--具体查询

like--模糊查询 通配符%  —

 not null--字段值不为空的

null --字段值为空的

between  and  范围

limit--分页查询:

order by--排序

聚合 aggregation

count(1)

max()最大值

min()最小值

sum() 求和

avg()平均数

分组 group

group by--用于对查询的结果进行分组统计

having--过滤

小结

char和varchar有什么区别?
char为定长字符串,char(n),n最大为255

varchar为不定长字符串,varchar(n),n最大长度为65535

char(10)和varchar(10)存储abc,那它们有什么差别呢?

char保存10个字符,abc三个,其它会用空格补齐;而varchar只用abc三个位置。

datetime和timestamp有什么区别?
数据库字段提供对日期类型的支持,是所有数据类型中最麻烦的一个,慢慢使用就会体会出来。

date 是 年与日

time是 时分秒

datetime年月日时分秒,存储和显示是一样的

timestamp时间戳,存储的不是个日期,而是从1970年1月1日到指定日期的毫秒数

中文乱码
如果在dos命令下执行insert插入中文数据,数据又乱码,那现在sqlYog客户端执行下面命令:

set names gbk;

设置客户端字符集和服务器端相同。如果不知道它到底用的什么编码?怎么办呢?很简单,两个都尝试下,哪个最后操作完成,查询数据库不乱码,就用哪个。

那为何会造成乱码呢?

Mysql数据库默认字符集是lantin1,也就是以后网页中遇到的ISO8859-1,它是英文字符集,不支持存放中文。我们创建库时,可以指定字符集:

create database yhdb charset utf8;

但这样很容易造成服务器和客户端编码集不同,如服务器端utf8,客户端ISO8859-1。mysql和客户端工具都有习惯的默认编码设置,好几个地方,要都统一才可以保证不乱码。

我们只要保证创建数据库时用utf8,使用可视化工具一般就基本正确。

注释
/* 很多注释内容 */

#行注释内容

– 行注释内容,这个使用较多

主键、外键、唯一索引的区别?
Primary Key 主键约束,自动创建唯一索引
Foreign Key 外键约束,外键字段的内容是引用另一表的字段内容,不能瞎写
Unique Index 唯一索引,唯一值但不是主键
对于约束的好处时,数据库会进行检查,违反约束会报错,操作失败。数据库提供了丰富的约束检查,还有其他约束,但现今弱化关系型数据库的前提下,基本已经很少使用,记住上面三个即可。

drop、delete和truncate之间的区别?
drop删除库或者表,数据和结构定义

delete和truncate只是删除表的数据

delete可以指定where条件,删除满足条件的记录,tuncate删除所有记录

对于自增字段的表,delete不会自增值清零,而truncate是把表记录和定义都删除了,然后重建表的定义,所以自增主键会重头开始计数
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值