数据库简介与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. 使用Docker部署Tomcat

    目录 使用Docker部署Tomcat 1. 获取镜像 2. 第一次启动tomcat 3.带参数启动 4.查看tomcat日志 5.时区问题 使用Docker部署Tomcat 1. 获取镜像 dock ...

  2. 【操作系统和计网从入门到深入】(四)基础IO和文件系统

    前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记,所以如果是博主比较熟悉的知识点,博主可能就直接跳过了,但是所有重要的知识点,在这个专栏里面都会提到!而且我也一定会保证这个专栏知识点的完整 ...

  3. PicGo + Gitee 实现 Markdown 图床

    最近再研究图床,注册的阿里云域名备案还在审批,所以七牛云图床暂时没用,所以试下用PicGo+ Gitee PicGo - 基于 electron-vue 开发的图床工具 PicGo目前支持了微博图床, ...

  4. 音频处理实用AI工具

    最近在做音频处理相关的工作,主要有以下几个好用的工具. 1. 语音转文字--whisper 这是一款由OpenAI开发的语音转文字工具,项目地址位于:openai/whisper. 这个工具是用来生成 ...

  5. 除了mysql 和 sql server, 你还有另外一种选择 postgreSQL

    数据库的重要性,不用多说.数据库的名字,大家应该也知道很多.就国内来说,使用者最多的应该是mysql 和sql server,大企业用ORACLE的也不在少数. 就我个人而言,在使用.NET的时候,基 ...

  6. springboot log 没落盘

    在配置文件中增加了下面的配置并不起作用. logging.file=/xx/xx.log 是因为在 springboot 2.2 版本之后上面的采纳数已经被废弃,需要用下面新的参数: logging. ...

  7. Linux-nmon系统监控工具

    一.Nmon介绍 Nmon得名于 Nigel 的监控器,是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的,使用 Nmon 可以很轻松的监控系统的 CPU.内存.网 ...

  8. C#对于加密的一点整合 (AES,RSA,MD5,SHA256)

    aes 对称加密  密钥必须是32字节 using System; using System.Security.Cryptography; using System.Text; namespace C ...

  9. 测距工具部分情况下无效的问题解决 - 高德JSAPI

    最近项目中新增了一个需求是在地图上新增一个测距工具,方便看一下距离 高德官方本身自带了有一个测距工具类的 RangingTool ,以插件的方式引入即可 问题一: 如果地图上有覆盖物的话(我这是 po ...

  10. Skywalking-Aop Docker单机环境搭建

    1.OAP-SERVER和UI环境搭建 本次搭建是基于MySQL进行持久化,因此需要提前准备好一个MySQL容器 (MySQL容器部署略过).如有错误还请指正. 1.1 OAP服务搭建 拉取skywa ...