后端基础SQL—数据库简介与SQL语法


数据库简介与SQL语法

1、数据库简介

2、数据库结构

3、SQL语句

4、SQL基本语法

5、MySQL基础查询语句

6、高级查询与子查询

7、渗透测试常用函数


一、数据库简介

  数据库(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则为降序

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

  · select*from table_name column_name like '%a%'; 模糊查询 'a%'、'%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秒