首页 > 数据库 >软件测试|一文告诉你SQL到底是什么

软件测试|一文告诉你SQL到底是什么

时间:2023-05-07 11:31:36浏览次数:28  
标签:一文 记录 数据库 用户 视图 查询 SQL 软件测试

前言

我们在学习数据库时,第一个要弄明白的东西就是,SQL是什么,SQL 是 Structured Query Language 的缩写,字面意思为“结构化查询语言”,它可以用来进行数据的查询、插入、更新、删除等操作,也可以用于创建和管理数据库对象,如表、视图、存储过程、函数等。本篇文章我们就将对SQL进行系统介绍。

SQL是什么

SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。

SQL 是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 MySQL、Oracle、SQL Server、MS Access、Sybase、Informix、Postgres 等,都将 SQL 作为其标准处理语言。

此外,SQL 也有一些变种,就像中文有粤语吴语等方言,比如:

  • 微软的 SQL Server 使用 T-SQL
  • Oracle 使用 PL/SQL
  • 微软 Access 版本的 SQL 被称为 JET SQL(本地格式)

SQL 的特点

SQL 之所以广受欢迎,是因为它具有以下特点:

  • 允许用户访问关系型数据库系统中的数据
  • 允许用户描述数据
  • 允许用户定义数据库中的数据,并处理该数据
  • 允许将 SQL 模块、库或者预处理器嵌入到其它编程语言中
  • 允许用户创建和删除数据库、表、数据项(记录)
  • 允许用户在数据库中创建视图、存储过程、函数
  • 允许用户设置对表、存储过程和视图的权限

SQL 执行过程

当你在任何一款 RDBMS 中执行 SQL 命令时,系统首先确定执行请求的最佳方式,然后 SQL 引擎将会翻译 SQL 语句,并处理请求任务。

整个执行过程包含了多种组件,比如:

  • 查询调度程序
  • 优化引擎
  • 传统的查询引擎
  • SQL 查询引擎

传统查询引擎能够处理所有的非 SQL 命令,但是 SQL 引擎并不能处理逻辑文件。

下图展示了 SQL 的体系结构:

软件测试|一文告诉你SQL到底是什么_数据库

SQL命令

与关系型数据库有关的 SQL 命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE、DROP 等,根据其特性,可以将它们分为以下几个类别。

  1. DDL - Data Definition Language,数据定义语言

对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。

命令

说明

CREATE

用于在数据库中创建一个新表、一个视图或者其它对象。

ALTER

用于修改现有的数据库,比如表、记录。

DROP

用于删除整个表、视图或者数据库中的其它对象

  1. DML - Data Manipulation Language,数据处理语言

对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除、修改和查询。

命令

说明

SELECT

用于从一个或者多个表中检索某些记录

INSERT

插入一条记录

UPDATE

修改记录

DELETE

删除记录

  1. DCL - Data Control Language,数据控制语言

控制数据的访问权限,只有被授权的用户才能进行操作。

命令

说明

GRANT

向用户分配权限

REVOKE

收回用户权限

总结

本文主要介绍了SQL的基本概念,包括SQL的定义、SQL的特点、SQL的执行过程以及SQL命令的分类,后面我们将介绍什么是关系型数据库及其管理系统。


标签:一文,记录,数据库,用户,视图,查询,SQL,软件测试
From: https://blog.51cto.com/u_15640304/6251828

相关文章

  • mysql error 1064(42000)
    mysql表里面,使用同样的语法查询一张表,用的nopcommerce的表,里面的Order表,查询的时候出不来,总是提示1064(42000说语法有错误,思考不会有错,于是查询这个问题,也有想过这张表名有些特殊, 查询要加反单引号,select*from`Order`;就查询出来了,可能Order是一个关键......
  • 《SQLi-Labs》03. Less 11~15
    目录Less-11知识点题解Less-12题解Less-13题解Less-14题解Less-15知识点题解sqli。开启新坑。Less-11知识点第十一关页面发生了变化,是账户登录页面。那么注入点在输入框。前十关使用的是get请求,参数都体现在url上,而十一关是post请求,参数在表单里。可以直接在输入框......
  • sqlilabs第一关
    首先打开网页,进行注入点的测试输入?id=1and1=1发现1=2的时候没有进行报错,有两种可能,一种是不能注入,第二种是字符型可以通过对字符型里面的''进行闭合,输入'and1=1--+发现在1=2的情况下出现了报错,说明还是可以进行注入的, 然后输入'orderby()--+来拆解一下有多少个显示字段,......
  • SQL 数据库连接设置
    SQL数据库连接设置第一步:设置Web.config<?xmlversion="1.0"?><!--有关如何配置ASP.NET应用程序的详细信息,请访问http://go.microsoft.com/fwlink/?LinkId=169433--><configuration><appSettings><addkey="ConnectionString1&qu......
  • MySQL调优 - 汇总
    汇总下平时开发中对mysql的调优过程。(一)mysqlserver的调优首先需要知道哪些配置可以调整,通过showvariables可以查看配置项。可以通过set方式更改配置项:方式一:(例子)set long_query_time=1;但仅对当前session生效,新连接更改无作用,如下方式二:(例子)setgloballong_query_t......
  • sql语法--distinct去重
      distinct对单列数据实现去重效果并返回单列如果是对多列去重,当且仅当多条数据中多列的数据完全一致才能够去重如图1selectdistinctpassword,phonefromtb_user; 图1 不能够去重如图2 ......
  • 【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无
    问题描述开发AzureJSFunction(NodeJS),使用mssql组件操作数据库。当SQL语句执行完成后,在Callback函数中执行日志输出 context.log("..."),遇见如下错误:Warning:Unexpectedcallto'log'onthecontextobjectafterfunctionexecutionhascompleted.Pleasecheck......
  • 数据库迁移之从oracle 到 MySQL
    关键字:数据库迁移之从oracle到MySQL开场白:对于水平扩展需求很强烈的大型网站,oracle到mysql的迁徙是必然的,一个重要的因素就是Oracle数据库是收费的,而MySQL则是完全免费的,mysql经过在大型网站的考验及沉淀目前已经修复的很完美了,下面就oracle到mysql......
  • 【DB】MySQL傻瓜安装,超简单
    一、概述MySQL版本:5.7.17下载地址:http://rj.baidu.com/soft/detail/12585.html?ald客户端工具:NavicatforMySQL绿色版下载地址:http://www.cr173.com/soft/38153.html  二、MySQL安装 安装条件:1).netframework4.0(下载地址:http://rj.baidu.com/soft/d......
  • mysql 查询根据外部数据排序
    1、FIELD函数FIELD是一个MySQL函数,用于返回一个或多个表达式在列表中的位置。它可以用于对查询结果进行排序或筛选。2、根据外部数据排序在MySQL中,可以使用ORDERBYFIELD()函数根据外部数据对查询结果进行排序。FIELD()函数可以接受一个或多个参数,并返回第一个参数在......