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)

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

  1. SQL注入葵花宝典(基础篇)

    基础篇重在一些基本的概念和步骤 高级篇重在于一些技巧 许多刚入门的小菜们可能会经常听到SQL注入这个词汇, 但更多人的可能对SQL并不怎么了解,只是感觉是一种 很神秘的******手段,所以我就想系统 ...

  2. mysql sql注入工具_基础篇——SQL注入(工具注入)

    注入工具 上一篇介绍了SQL注入漏洞以及一些手工注入方法,本篇介绍一下注入工具 1.sqlmap sqlmap属于比较经典的一个注入工具,功能强大,还自带一些绕过参数 使用方法: sqlmap.py ...

  3. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  4. MySQL学习笔记-基础篇2

    MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...

  5. 【SQL基础学习】----基础篇(1)

    前言: 存储数据的容器 在内存中(数据存在易失性,断电即数据没了):         数组         集合 磁盘(永久存储):         文件(不易管理)         数据库(持久化, ...

  6. SQL注入漏洞(原理篇)

    SQL注入是我安全入门学的第一个漏洞,这个漏洞怎么说呢,前期的学习单单记住那几个payload知道如何查库.查表.查列.查字段就可以做题目了.没办法,初学者零基础就是这样,从记忆开始再到逐渐理解结束, ...

  7. SQL注入看这一篇可能还不够——SQL注入各类型总结+靶场实战

    SQL注入简介 SQL注入原理 SQL注入是通过将恶意的sql语句插入到应用代码中,由于过滤不严导致的在后台执行恶意sql语句而产生的漏洞. SQL注入类型 注入参数:数字型注入.字符型注入.搜索型注 ...

  8. SQL常用语句(基础篇)

    SQL常用语句(基础篇) 说明:创建数据库 CREATE DATABASE database-name 说明:删除数据库 drop database dbname 说明:备份sql server -创 ...

  9. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  10. 【Kotlin】学习小记-基础篇

    Kotlin学习小记-基础篇 Kotlin的介绍 入门基础篇 属性声明 关于val和final的小Tips 参数 1.可变参数 2.命名参数 函数返回值 1.默认返回Unit值 2.返回Nothing ...

最新文章

  1. python爬取学校题库_如何使用 Python 爬虫爬取牛客网 Java 题库?
  2. Visual Studio中没有为此解决方案配置选中要生成的项目
  3. sharedpreferences 重启不保存_MMKV为什么可以替换SharedPreferences
  4. 160个Crackme013之投机取巧
  5. pom.xml文件指定jdk版本号/跳过测试
  6. 使用 C# 代码实现拓扑排序
  7. SpringBoot之Bean之条件注入@ConditionalOnProperty
  8. linux中nm、ldd、readelf命令
  9. 机器学习-GBDT和XGboost
  10. 软件设计师教程笔记整理
  11. INCONEL 600该合金因其强度和耐腐蚀性而广泛用于化学工业
  12. 滴滴6月或发布造车计划;头部App上线一键关闭 “个性化推荐 ”​;下载捆绑,“高速下载”竟为元凶 | EA周报...
  13. Robin:SEO从业者打造个人品牌的八个建议,白杨SEO个人品牌实战举例
  14. hhkb java_为什么知乎上这么多人推荐 HHKB,却不反复强调说该键盘不适合大多数程序员?...
  15. 第13章 Python建模库介绍--Python for Data Analysis 2nd
  16. 小鹤双拼鹤形教程-by小鹤双拼输入法QQ群友-45℃的回忆
  17. 租用云主机可以做什么用?
  18. CSS——CSS盒子模型(重点※)
  19. python 实现布谷鸟算法(CS)
  20. 后浪的Java追随者们是什么样的?

热门文章

  1. 灵信LED屏 二次开发C#
  2. 博途仿真PLC与第三方客户端通信
  3. 华为hicar支持车型列表_汽车大观| 华为的“汽车梦”
  4. 大津法(最大类间方差法OTSU)
  5. 通俗理解核方法(kernel function)
  6. iOS 越狱检测/反越狱
  7. macbook硬盘读写速度测试(Disk Speed Test 测速贴图)
  8. SPSS 独立样本t检验方法
  9. 删除fences桌面整理软件
  10. 三极管在ad中的原理图库_AD18 原理图库