数据库简介与SQL语法

1、数据库简介

2、数据库结构

3、SQL语句

4、SQL基本语法

5、MySQL基础查询语句

6、高级查询与子查询

7、渗透测试常用函数

8、判断闭合类型


一、数据库简介

  数据库(Database)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的、我们可以通过数据库提

  的多种方法来管理数据库里的数据更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同

  常见数据库:Oracle Database甲骨文公司、SQL Server微软公司、DB2IBM公司、PostgreSQL开源、MySQL开源、Access微软

  数据库种类虽然很多,但它们在语法层面有很多相通之处

二、数据库结构

  服务端、客户端、库、表、字段、记录

  服务端,用于接收并处理其他程序发出的请求的程序,或安装此类程序的计算机

  客户端,向服务器发出请求的程序,或安装此程序的计算机

  库,多个表组成的数据集合

  表,由行和列组成的二维表,类似excel

  字段,表的列,垂直方向,表格的表头

  记录,表的行,水平方向,表格里的数据

  PS:关系数据库必须以行为单位进行记录读写

三、SQL语句

  SQL语句,用于存取数据以及查询、更新和管理 关系数据库系统 ;sql 语句就是对数据库进行操作的一种语言。

  DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)

  第一种,DDL(数据定义语言),创建、修改或删除数据库以及数据库中的表等对象

  · CREATE:创建数据库和表等对象

  · DROP:删除数据库和表等对象

  · ALTER:修改数据库和表等对象

  第二种,DML(数据操作语言),查询或修改表中的数据

  · SELECT:查询表中的数据

  · INSERT:向表中输入数据

  · DELETE:删除表中数据

  · UPDATE:修改表中的数据

  第三种,DCL(数据控制语言),确认或取消对数据库中的数据变更的执行操作,以及对用户的操作数据库中的对象权限进行设定

  四、SQL基本语法

  数据库操作

  · CREATE DATABASE name  新建数据库

  · SHOW DATABASES  查看所有数据库

  · DROP DATABASE name  删除数据库

  · USE name  进入数据库

  数据表操作

  · CREATE TABLE table_name  新建表

  · SHOW TABLES  查看所有数据表

  · DROP TABLE table_name  删除表

  · DESC table_name  查看表的类型

  · ALTER TABLE table_name DROP column_name  删除表里的字段

  · ALTER TABLE table_name ADD column_name column_type  添加表里的字段

  · ALTER TABLE table_name CHANGE 原字段 改成的字段 改成字段的数据类型; 修改字段

   PSone 字段属性

  · PRIMARY KEY 主键  不能为空且唯一

  · CHARACTER SET utf8 设置编码

  · AUTO_INCREMENT 自增长

  · NOT NULL 数据不能为空

  PStwo 数据类型

  · varcher(255)字符串

  ·char

  ·int 整数

  ·float 浮点

  表数据操作

  · INSERT INTO table_name (username,password)VALUES ('admin','admin')插入数据

  · UPDATE table_name SET column_name=要改成的数据 where 条件;修改数据,若没有where及后面的条件默认该字段下数据全改

  · DELETE FROM table_name where column_name=字段值;删除数据

  · SELECT *FROM table_name 查看表里数据

  · SELECT column_name FROM table_name 查看表里某个字段里的数据

  · SELECT DATABASE()查询当前库名

  PSthere SQL语句书写规范

  · 以英文分号结尾

  · SQL语句不区分大小写,但是插入表中的数据区分

  ·单词使用英文空格或换行符隔开

五、MySQL基础查询语句

  · select*from table_name order by column_name[ASC默认|ESC]; 字段排序,默认正序,后面加desc则为降序

  order by  字段序数;   根据第几个字段排序。

  · select*from table_name order by 字段序数。

  · select*from table_name limit n,m;  n表示从第几行开始(0开始数),m表示取几条

  MySQL通配符模糊查询

  '%' 百分号通配符,任何字符出现任意次数。

  '%a%' => 包含a的数据,'%a' => 结尾是a的数据,'a%' => 开头是a的数据

  '_' 下划线通配符,只能匹配单个字符,可以叠加

  'a_'   ‘a__'    'a____'    ……

  · select*from table_name where column_name like '%a%'; 模糊查询 

  · +、-、*、/、%(取余) 运算符

  · NOT(!)、AND(&)、OR(|  分隔符)

  · select sleep(秒数)  延时

六、高级查询与子查询

  联合查询

  · union 联合查询

  select column_name from  table_name union select column_name from  table_name

  条件,表里的要输出字段数必须相同

  PS:前面的数据和后面的数据相同,则输出一个

  子查询

  子查询,当一个查询的结果是另一个查询的条件时称为子查询

  简单理解,子查询就是先执行括号里的东西,然后执行的结果作为另一个查询的条件

  · select*from a where xh=(select 98);

  简单理解,拆分理解

  select 98;  =>  98

  select*from a where xh=98;

七、渗透测试常用函数

  · GROOUP_CONCAT(column_name); 返回由属于一组的列值连接组合而成的结果

  · DATABASE(); 返回当前数据库名

  · VERSION();  返回MySQL服务器版本

  · SLEEP();  休眠N秒

八、判断闭合类型

  SQL语句的闭合类型:整型闭合、单引号闭合、双引号闭合、单引号加括号、双引号加括号

  1、整形闭合 

SELECT * FROM admin WHERE id=1;   //整形闭合

  模拟注入

  ?id=1'   =>  报错

  ?id=1''  =>  报错

  判断为整形闭合

  2、单引号闭合 

SELECT * FROM admin WHERE id=‘1’;

  模拟注入

  ?id=1'  =>  报错

  ?id=1'' =>  正常返回id=1的值

  判断为单引号或者单引号括号闭合

  任何闭合方式都这样在没有遇到相对应的闭合时,都会把这个符号当作一个整体,注释符也不例外

  再次模拟注入

  ?id=1'-+  =>  无报错 => 单引号闭合

  ?id=1'-+  =>  报错  =>  单引号括号闭合

  3、双引号闭合 

SELECT * FROM admin WHERE id="1";  //双引号闭合

  ?id=1'  => 正常返回id=1的值

  ?id=1" => 报错

  判断为双引号闭合或者双引号括号闭合

  再次模拟注入

  ?id=1"-+  => 无报错 => 双引号闭合

  ?id=1"-+ => 报错  =>  双引号括号闭合

  4、总结

  判断闭合类型

  首先尝试:?id=1'

       ?id=1"

  不报错 =>  整形闭合

  报错   =>  单引号报错 ,双引号不报错 => 尝试 ?id=1'-+  =>  无报错单引号闭合,报错单引号加括号闭合

  报错  =>  单引号不报错,双引号报错  =>  尝试 ?id=1"-+  =>  无报错双引号闭合,报错双引号加括号闭合  

    

  

后端基础SQL—数据库简介与SQL语法的更多相关文章

  1. 数据库之一、数据库简介及SQL概要

    1.数据库简介: 数据库(Database,DB)是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合.简单来讲就是可以放大量数据的地方.管理数据库的计算机系统称为数据库管理系统(Dat ...

  2. MySql数据库基础之数据库简介及安装

    MySql数据库简介: 众所周知,MySql数据库是一款开源的关系型数据库,在Web应用方面,MySql是最好的.最流行的RDBMS(Relational Database Management Sy ...

  3. 跨服务器备注SQL数据库 分类: SQL Server 2015-03-05 08:52 227人阅读 评论(0) 收藏

    任务:把服务器1上的SQL数据库自动备份到服务器2上,命名格式=数据库名+年月日+小时. 说明: 服务器2=>192.168.0.22 数据库名=>Book 共享文件夹路径:192.168 ...

  4. 网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

    本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...

  5. 【HTML5】HTML5本地数据库(Web Sql Database)

    Web Sql数据库简介 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库. Web SQL数据库的浏览器支持情况 Web SQL 数 ...

  6. SQL数据库学习,常用语句查询大全

    数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...

  7. (译)Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机

    Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机 今早我们释出一些很棒的Windows Azure更新.这些新的提升包括:SQL数据库:支持SQL自动导出和一个新的高级层 ...

  8. Windows Azure 微软公有云体验(一) 网站、SQL数据库、虚拟机

    Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...

  9. 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法

    在SQL数据库中使用SQL语句(格式:alter table [tablename] alter column [colname] [newDataType])修改某表的字段类型时,报一下错误:由于一 ...

  10. 一个最简单的使用Entity Framework 查询SQL 数据库的例子

    1.ADO.NET 3.5 Entity Framework是随着.net framework 3.5一起发布的,确认开发环境版本是大于等于3.5版本 2.确认已经安装了ADO.NET 3.5 Ent ...

随机推荐

  1. 关于 vant 移动端的 rem 适配方案

    一.使用 lib-flexible 动态设置 rem 基准值 (html 标签的字体大小) (1) 安装依赖: npm i amfe-flexible -D (2) 在main.js 中引入 impo ...

  2. 在Spring Cloud 2020中使用Consul配置中心遇到的问题

    升级Spring Cloud 2020后发现Consul配置中心失效了,配置中心的配置和bootstrap.yml中的配置都没有生效. 话不多说,先看官方文档:https://docs.spring. ...

  3. javascript按钮通过cookie限制60s后才可以点击

    javascript按钮通过cookie限制60s后才可以点击 1️⃣ 首先创建一个html页面,放入一个按钮 2️⃣ 设置点击按钮的触发函数 一般当点击按钮都会有一些业务需要,在需求结束后,触发sa ...

  4. MindSponge分子动力学模拟——定义Collective Variables

    技术背景 在前面的几篇博客中,我们介绍了MindSponge分子动力学模拟框架的基本安装和使用和MindSponge执行分子动力学模拟任务的方法.这里我们介绍一个在增强采样领域非常常用的工具:Coll ...

  5. WPF常用控件 自定义样式( ScrollViewer TextBox PasswordBox Button RadioButton CheckBox ToggleButton ProgressBar TabControl Loading Waiting 饼图 渐变图标 消息通知 )

    控件样式一览: ScrollViewer 继承样式,使用方法跟原生一致,就不过多阐述. TextBox,PasswordBox 继承样式,Tag属性为提示文字. RadioButton,CheckBo ...

  6. 收集 VSCode 常用快捷键

    快速复制行 Shift + Alt + ↑/↓ 都是往下复制行,区别是:按↓复制时光标会跟着向下移动,按↑复制时光标不移动. 向上/向下移动一行 Alt + ↑/↓ 删除整行 Ctrl + Shift ...

  7. .NET周刊【2月第2期 2024-02-11】

    国内文章 C#/.NET该如何自学入门? https://www.cnblogs.com/Can-daydayup/p/18006914 随着DotNetGuide技术社区交流群的扩大,很多新成员希望 ...

  8. 开源大语言模型作为 LangChain 智能体

    概要 开源大型语言模型 (LLMs) 现已达到一种性能水平,使它们适合作为推动智能体工作流的推理引擎: Mixtral 甚至在我们的基准测试中 超过了 GPT-3.5,并且通过微调,其性能可以轻易的得 ...

  9. Qt5.15.0 升级至 Qt5.15.9 遇到的一些错误

    按照之前我写的文章教程,可以很简单的编译出静态库(仅供学习交流) 编译 windows 上的 qt 静态库 编译出静态库后,替换旧版本的库,见我另一篇文章教程 VS2019 配置 QT 库 之所以没有 ...

  10. Golang gRPC学习(05): retry重试

    什么是重试 如果服务出现了错误,主要是网络,服务器出现了短暂异常的时候,该怎么办? 我们都会人工或者自动的重新连接服务试试,看服务是否恢复可用了. 这种重新进行连接服务的一种方式就是重试.如果是在微服 ...