SQL注入学习日记基础篇之SQL数据库学习日记(二)

SQL数据库学习日记(二)
为什么需要数据库?
对于应用而言,应用需要保存数据,例如你LOL账号上所解锁的皮肤数据,便于远程查找,编辑或者转移到其他设备上。对于保存数据而言,最简单的方式是写入文件中,类似建立类似文件夹的架构。
但是随着数据数量的增多,类比电脑,文件夹数目增多以及文件个数增多会导致磁盘变卡,运行速度过慢,其根本原因如下:
  读写文件并解析出数据需要大量重复代码;
  从成千上万的数据中快速查询出指定数据需要复杂的逻辑。
而且拓展到每个应用而言,每个应用需要独立创建一个库,而且库与库之间的访问接口并不互通,数据无法共通,造成很大程度的浪费
而数据库软件的出现很大程度解决的这个问题。
数据库的主要功能是将数据分类,存储。对于数据库与应用的交互,应用只需要上传数据即可,数据分类存放的功能是由数据库软件实现的。
数据库的数据模型一共有三种结构:
一、层次结构(树状图)
二、网状结构(交通路网)
三、关系模型(二维表格)
经过时间推移,关系模型最终最为广泛运用,因为它足够简洁,易于理解
而关系模型的结构可以用映射(函数)解释,一个id对应一组数据,类似函数

数据类型:
对于一个关系表,除了名称还要定义类型,以下列举几个常用类型


名称    类型    说明
INT    整型    4字节整数类型,范围约+/-21亿
BIGINT    长整型    8字节整数类型,范围约+/-922亿亿
REAL    浮点型    4字节浮点数,范围约+/-1038
DOUBLE    浮点型    8字节浮点数,范围约+/-10308
DECIMAL(M,N)    高精度小数    由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位,其中小数10位,通常用于财务计算
CHAR(N)    定长字符串    存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串
VARCHAR(N)    变长字符串    存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串
BOOLEAN    布尔类型    存储True或者False
DATE    日期类型    存储日期,例如,2018-06-22
TIME    时间类型    存储时间,例如,12:20:59
DATETIME    日期和时间类型    存储日期+时间,例如,2018-06-22 12:20:59

在选择数据类型时,要根据需求来选择,尽可能节约存储空间,高效利用,优化库结构

什么是SQL
SQL是结构化查询语言,用于访问和操作数据库。
虽然sql是标准语句,但是不同厂商的数据库往往添加了不同的扩展,使得有些数据库不能互通,但是最核心的基本功能还是通用的
总而言之,SQL操作数据库的能力为以下几种:
DDL 允许用户定义数据(创建表,删除表,修改表结构等)通常由数据库管理员执行
DML 为用户提供增删改的能力,是应用程序对于数据库的日常操作,数据库与应用程序交互的基本方式
DQL 允许用户查询数据,最频繁的日常操作

语法特点
SQL语言关键字不区分大小写!!!但是,针对不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。同一个数据库,有的在Linux上区分大小写,有的在Windows上不区分大小写。

为养成良好习惯:SQL关键字总是大写,以示突出,表名和列名均使用小写。

在关系数据库中,每张表的一行称之为一条记录,每条记录由多个字段组成,同一个关系表有相同的若干字段,称为主键
字段定义了数据类型,以及是否为NULL。
NULL表示数据不存在,而不是值为‘0’或者为‘’空串,是不存在,类似集合空集
通常情况下尽量避免字段为NULL,可以简化查询
与excel表不同的是,关系数据库的表与表之间要建立类似函数的映射关系(一对多,多对一,一对一)才能遵循程序逻辑来组织和存储数据
例如成绩表中排列班级平均分中
一行对应一个班级,而一个班级对应多个学生,所以 班级表 与 学生表 的关系就是一对多
相反,若先确定学生,反过来可知 学生表 与 班级表 是 多对一
 而对于 班主任表 和 班级表 则是 一对一 

在关系数据库中,关系是通过主键和外键来维护的

资料来源于廖雪峰老师的网站,详细资料建议去廖老师网站学习

SQL教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值