个人笔记---数据库基础

目录

一、数据库概述

二、SQL语言

三、数据类型

1.命名规则

2.字符

3.数字

4.日期

5.图片

四、字段约束

1.唯一约束

2.非空约束

3.主键约束

五、基础函数

六、条件查询

1.distinct去除重复行

2.where

3.like 

4.null 

5.between and 

6.limit 

7.order by 

七、聚合aggregation 

1.count

2.max/min 

3.sum/avg 

4.group by /having

八、拓展

1.char和varchar有什么区别?

2.datetime和timestamp有什么区别?

3.注释

4.主键、外键、唯一索引的区别

5.drop、delete和truncate之间的区别


一、数据库概述

1.数据库用来存储和管理数据,英文名database

2.分类:关系型非关系型

3.关系型数据库:数据间关系紧密,如师生关系

4.非关系型数据库:数据间关系松散,如把电脑所有资源存入数据库

二、SQL语言

用来操作数据库的语言,全称:结构化查询语言

DML:数据操作语言,指对数据的CURD

DDL:数据定义语言,指对数据库的定义,表的定义

DCL:数据库控制语言,指对数据的权限控制

DQL:数据查询语言,指定的SQL语句中,大量的会编写查询语句

结构:数据库-表-数据

三、数据类型

1.命名规则

1.字段名必须以字母开头,尽量不用拼音

2.长度不能超过30字符

3.不能使用SQL保留字,如where,order,group

4.只能使用大小写字母、数字、$等

5.mysql习惯全小写

6.多个单词用下划线隔开,如user_name

2.字符

1.char长度固定,不足用空格填充,最多容纳2000字符,查询快但浪费空间

2.varchar长度可变,最多容纳4000字符,查询稍慢但节省空间

utf8编码中,一个汉字占3个字节

3.数字

int整数类型

double小数类型

numeric(m,n)  decimal(m,n)也可以表示小数,m是总长度,n是小数长度。精确的小数类型

4.日期

date包含  年月日

time包含  时分秒

datetime包含  年月日时分秒

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

5.图片

blob 二进制数据,可以存放图片、声音,容量4g

四、字段约束

1.唯一约束

字段的值必须唯一,不能重复,但可以为空,使用 unique

2.非空约束

字段的值不能为null,但可以重复

3.主键约束

字段的值唯一且不为空,通常情况,每张表都有主键。

主键自增策略:不需要程序员自己数主键的值,交给数据库来管理主键的值,数据库会从1开始自增

create table abc(
id int primary key auto_increment
);

五、基础函数

  1. lower:数据转小写
  2. upper:数据转大写
  3. length:数据的长度
  4. substr:截取[  ]
  5. concat:拼接
  6. replace:(xxx,'aa','bb')把aa字符替换为bb
  7. ifnull:(comm,10)判断,如果comm是null,用10替换
  8. round&ceil&floor:round四舍五入,ceil向上取整,floor向下取整
  9. now:年月日时分秒,curdate():年月日,curtime():时分秒

六、条件查询

1.distinct去除重复行

2.where

3.like 

4.null 

 

5.between and 

6.limit 

7.order by 

七、聚合aggregation 

1.count

2.max/min 

3.sum/avg 

4.group by /having

八、拓展

1.char和varchar有什么区别?

  • char为定长字符串,char(n),n最大为255
  • varchar为不定长字符串,varchar(n),n最大长度为65535
  • char(10)和varchar(10)存储abc,那它们有什么差别呢?
  • char保存10个字符,abc三个,其它会用空格补齐;而varchar只用abc三个位置。

2.datetime和timestamp有什么区别?

  • 数据库字段提供对日期类型的支持,是所有数据类型中最麻烦的一个
  • date 是 年与日
  • time是 时分秒
  • datetime年月日时分秒,存储和显示是一样的
  • timestamp时间戳,存储的不是个日期,而是从1970年1月1日到指定日期的毫秒数

3.注释

  • /* 很多注释内容 */
  • #行注释内容
  • – 行注释内容,这个使用较多

4.主键、外键、唯一索引的区别

  • Primary Key 主键约束,自动创建唯一索引
  • Foreign Key 外键约束,外键字段的内容是引用另一表的字段内容,不能瞎写
  • Unique Index 唯一索引,唯一值但不是主键

5.drop、delete和truncate之间的区别

  • drop删除库或者表,数据和结构定义
  • delete和truncate只是删除表的数据
  • delete可以指定where条件,删除满足条件的记录,tuncate删除所有记录
  • 对于自增字段的表,delete不会自增值清零,而truncate是把表记录和定义都删除了,然后重建表的定义,所以自增主键会重头开始计数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值