资安学习路上-网站常见漏洞与 Injection的爱恨情仇3

资料库类型补充

1. SQL 资料库

结构化查询语言(Structured Query Language),用来存取关联式资料库的内部结构与资料。
资料会储存在资料表中,每一列代表一笔纪录,可利用 SQL 语句跟资料库作互动
(1)关联式资料库

  • 每一张表有唯一主键 primary key
  • 利用外键 Foreign Key 参考到其他资料表的资料
    (2)储存多张资料表
    (3)利用正规化建立关联
    (4)栏位有事先定义格式
    (5)特性
  • 资料完整性约束,如唯一值、不能是空值
  • 资料库交易:一次执行多条 SQL 语法,会批次执行
  • 交易性:批次处理的其中一条失效,全部都失败
  • 一致性:交易失败後,资料库的状态不会被改变

2. NoSQL资料库

  • 被发明来解决 SQL资料库的缺点 - 回应效率过低
  • 牺牲完整性
  • 无纲要特性:新增栏位不需要更新资料结构 --> 常用 key-value 的状态
  • 无绝对一致,只保证最後结果一致

3. information_schema:

MySQL资讯资料库,里面存放所有资料库、资料表、资料栏位

(1)SELECT schema_name FROM information_schema.schemata
会找到资料库名称的列表 在 information_schema.schemata 找到 schema_name,会显示所有资料库名称
https://ithelp.ithome.com.tw/upload/images/20220509/20148431A87cTWX2Mh.png

(2)SELECT table_name FROM information_schema.tables WHERE table_schema='资料库名称'
会找到资料表名称的列表在 information_schema.tables 中的 table_schema 找到table_name,这里挑选上一步所看到的'sys' 资料库,进行搜寻可看到有以下'host_summary'、'host_summary_by_file_io'等资料表
https://ithelp.ithome.com.tw/upload/images/20220509/20148431Mam6CBcnbu.png

(3)SELECT column_name FROM information_schema.columns WHERE table_name='资料表名称'
会找到栏位名称的列表在 information_schema.columns 中的 table_name 找到column_name,这里挑选上一步所看到'host_summary'资料表,可以看到它所包含的所有栏位名称。
https://ithelp.ithome.com.tw/upload/images/20220509/20148431dg0FiOqGU2.png


<<:  【必收藏系列】查找并清理 Mac 上重复的档案/图片

>>:  在GCP VM上开发Python

[Day23]Vue3 E2E Testing: Cypress 基本介绍

What's Cypress Cypress 是 Vue.js 官方推荐的一个 E2E Testin...

DAY15 服务室--JSON Server自己开

前言 我们现在有了 Nuxt.js 建立的环境、有了 Vuex 来做资料的处理,现在就差资料要从哪里...

解决xampp中mysql的admin介面打不开

下载後照着课程里的步骤开启了XAMPP 哀呀 结果开不起来@@ 错误讯息也一堆英文 GOOGLE到最...

[DAY18]跟 Vue.js 认识的30天 - Vue 混入(`mixin`)

混入(mixin)似乎也是个初学 Vue 比较少被用到的功能,但还是照顺序的了解一下。 基础运用 在...

MySQL 时间类型资料之基本操作

首先我们简单介绍一些时间类型。 DATE 值格式为 'YYYY-MM-DD' 范围为 '1000-0...