余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

数据分析丨一文了解SQL知识体系,超全SLQ学习指南

xiyangw 2022-11-25 11:57 16 浏览 0 评论

本期SQL专题将系统的带大家学习SQL相关知识,围绕SQL基础知识、SQL练习、SQL面试题三方面进行更新,想学习SQL的朋友记得持续关注!

本篇重点内容:

1、数据库

2、什么是SQL

3、SQL分类

4、SQL语法

5、常用SQL语句速查


01 数据库


在学习SQL之前,大家应该先了解一个概念,什么是数据库?

数据库这个术语的用法很多,但就SQL的角度来看,数据库是以某种有组织的方式存储的数据集合,最简单的办法是将数据库想象为一个文件柜。

文件柜只是一个存放数据的物理位置,它不管数据是什么,也不管数据是如何组织的。

数据库术语

  • 数据库(Database)保存有组织的数据的容器(通常是一个文件或一组文件)。
  • 数据表(Table)某种特定类型数据的结构化清单。
  • 模式(Schema)关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。
  • (Column)表中的一个字段。所有表都是由一个或多个列组成的。
  • (Row)表中的一个记录。


02 什么是SQL


SQL是Structured Query Language(结构化查询语言)的缩写,SQL是一种专门用来与数据库沟通的语言,是一种从数据库中读写数据的简单有效的方法。

SQL都能做什么?

  • 面向数据库执行查询
  • 可从数据库取回数据
  • 可在数据库中插入新的记录
  • 可更新数据库中的数据
  • 可从数据库删除记录
  • 可创建新数据库
  • 可在数据库中创建新表
  • 可在数据库中创建存储过程
  • 可在数据库中创建视图
  • 可以设置表、存储过程和视图的权限


03 SQL分类


数据定义语言(DDL)

数据定义语言(DataDefinition Language,DDL)是 SQL语言集中负责数据结构定义与数据库对象定义的语言。

DDL 的主要功能是定义数据库对象。

DDL 的核心指令是CREATE、ALTER、DROP

数据操纵语言(DML)

数据操纵语言(DataManipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。

DML 的主要功能是访问数据,因此其语法都是以读写数据库为主。

DML 的核心指令是INSERT、UPDATE、DELETE、SELECT。这四个指令合称CRUD(Create, Read, Update,Delete),即增删改查。

事务控制语言(TCL)

事务控制语言(Transaction Control Language, TCL)用于管理数据库中的事务。这些用于管理由DML 语句所做的更改。它还允许将语句分组为逻辑事务。

TCL 的核心指令是COMMIT、ROLLBACK。

数据控制语言(DCL)

数据控制语言(Data Control Language, DCL)是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。

DCL 的核心指令是GRANT、REVOKE。

DCL 以控制用户的访问权限为主,因此其指令作法并不复杂,可利用 DCL 控制的权限有:CONNECT、SELECT、INSERT、UPDATE、DELETE、EXECUTE、USAGE、REFERENCES。

根据不同的DBMS 以及不同的安全性实体,其支持的权限控制也有所不同。


04 SQL语法


SQL 语法结构

子句- 是语句和查询的组成成分。(在某些情况下,这些都是可选的。)

表达式 - 可以产生任何标量值,或由列和行的数据库表

谓词 - 给需要评估的SQL三值逻辑(3VL)(True/False/Unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。

查询 - 基于特定条件检索数据。这是SQL的一个重要组成部分。

语句 - 可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。

最重要的SQL命令

  • SELECT-从数据库中提取数据
  • UPDATE-更新数据库中的数据
  • DELETE-从数据库中删除数据
  • INSERTINTO- 向数据库中插入新数据
  • CREATEDATABASE- 创建新数据库
  • ALTERDATABASE- 修改数据库
  • CREATETABLE- 创建新表
  • ALTERTABLE- 变更(改变)数据库表
  • DROPTABLE- 删除表
  • CREATEINDEX- 创建索引(搜索键)
  • DROPINDEX- 删除索引


SQL使用

表中包含三条记录和五个列(Id、姓、名、地址和城市)

从表中选取LastName列的数据:

SELECT LastName FROM Persons

  • SQL 语句不区分大小写,例如:SELECTselect 、Select是相同的。但是数据库表名、列名和值是否区分大小写,依赖于具体的DBMS以及配置。
  • 多条 SQL 语句必须以分号(;)分隔。
  • 处理 SQL 语句时,所有空格都被忽略。
  • SQL 语句可以写成一行,也可以分写为多行。

一行 SQL 语句

UPDATE user SET username='robot', password='robot' WHERE username = 'root';

多行 SQL 语句

UPDAT Euser SET username='robot',password='robot'

WHERE username = 'root';

#多数SQL开发人员认为,将SQL语句分成多行更容易阅读和调试。

另外,还有一点需要注意,无论是应用开发还是数据库管理,在不同类型数据库,实现其同样功能的SQL查询,都会遇到 SQL 写法或多或少不一样的问题。这与每一个数据库都有自己所特有的一些函数和功能有关。

不同类型的数据库,虽然 SQL 语法大体相似,但是它们各自的函数或符号却有些不同,有的甚至也不通用。

比如将字符串"2020-02-05"转换成日期,标准SQL为Select DATE('2020-02-05') from USER,不同数据库有不同的写法。

ORACLE:Select TO_DATE('2020-02-05', 'YYYY-MM-DD') from USER;

SQLServer:Select CONVERT(varchar(100), '2020-02-05', 23) from USER;

MYSQL:Select DATE_FORMAT('2020-02-05','%Y-%m-%d') from USER;

类似的不同还很多。

SQL三种注释类型

## 注释1

-- 注释2

/* 注释3 */


05 常用SQL语句速查


ALTERTABLE-用来更新现存表的模式,可以用CREATE TABLE来创建一个新表。

COMMIT-用来将事务写入数据库。

CREATEINDEX-用来为一列或多列创建索引。

CREATETABLE-用来创建新的数据库表,可以用ALTER TABLE来更新一个现存表的模式。

CREATEVIEW-用来创建一个或多个表的视图。

DELETE-用来从表中删除一行或多行。

DROP-用来永久性地删除数据库对象(表、视图和索引等)。

INSERT-用来对表添加一个新行。

INSERTSELECT-用来将SELECT的结果插入到表中。

ROLLBACK-用来撤销事务块。

SELECT-用来从一个或多个表(或视图)中检索数据。

UPDATE-用来对表中的一行或多行进行更新。


以上就是今天分享的全部内容,我们下期见!

整理不易,点赞、转发帮忙点一下~

相关推荐

Vue的框架(了解)

前端MVC设计模式MVC设计模式,其实就是将前端实现某个业务的所有代码划分为三部分Model:模型,指数据模型,这个数据一般来自于服务器View:视图,指页面标签内容Controller:控制...

Vue.js实战 第五章练习一

练习要求:在原有表格基础上,新增一项是否选中该商品的功能,总价变为只计算选中商品的总价,同时提供一个全选的按钮。实现思路:按照vue数据和dom元素双向绑定的特性,定义allCheckStatus变量...

Vue基础到进阶教程之class和style绑定

关于class和style我们并不陌生,这个在学习css的时候就是家常便饭了,操作元素的class列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用v-bind处理它们,...

深入Vue 必学高阶组件 HOC「进阶篇」

作者:ssh转发连接:https://mp.weixin.qq.com/s/seKoLSIMtTd1sU4uDrgZCA前言高阶组件这个概念在React中一度非常流行,但是在Vue的社区里讨论...

周末大礼包,23道高质量中级前端面试题。金九银十,建议收藏

这套面试题考察的内容比较常见,涉及到JavaScript、ES6、CSS、Vue、简单算法,浏览器相关知识等。题目列表1.JavaScript的数据类型有哪些2.什么是同源策略3.跨域的方法...

vue3.0-摒弃Object.defineProperty,基于 Proxy 的观察者机制

写在前面:11月16日早上,Vue.js的作者尤大大在VueToronto的主题演讲中预演了Vue.js3.0的一些新特性,其中一个很重要的改变就是Vue3将使用ES6的Proxy作...

程序员都必掌握的前端教程之VUE基础教程(七)

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。本篇文章成哥继续带大家来学习前端VUE教程,今天主要讲解VUE的表单处理等知识点。下面我们就一起来学习该块内容吧!01简介在日常开发中,我...

web前端开之网站搭建框架之vue详解

网站搭建框架之vueVue是web前端快速搭建网站的框架之一。它与jQuery有所不同,是以数据驱动web界面(以操作数据改变页面,而jQuery是以操作节点来改变页面),同时,vue还实现了数据的双...

vue3.0尝鲜-基于 Proxy 的观察者机制探索

Vue.js的作者尤大大在VueToronto的主题演讲中预演了Vue.js3.0的一些新特性,其中一个很重要的改变就是Vue3将使用ES6的Proxy作为其观察者机制,取代之前使用...

TypeScript 设计模式之观察者模式

一、模式介绍1.背景介绍在软件系统中经常碰到这类需求:当一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。这是建立一种「对象与对象之间的依赖关系」,一个对象发生改变时将「自动通知其他...

vue面试3

1.单页面应用与多页面应用的去别2.简述一下Sass、Less,且说明区别?他们是动态的样式语言,是CSS预处理器,CSS上的一种抽象层。他们是一种特殊的语法/语言而编译成CSS。变量符不一样,les...

VUE v-bind 数据绑定

动态的绑定一个或多个attribute,也可以是组件的prop。缩写::或者.(当使用.prop修饰符)期望:any(带参数)|Object(不带参数)参数:attrOrP...

vue初学习之自定义选择框实现

v-model简单介绍在使用vue的过程中会经常用到input和textarea这类表单元素,vue对于这些元素的数据绑定和我们以前经常用的jQuery有些区别。vue使用v-model实现这些标签...

Vue实现拖拽穿梭框功能四种方式

一、使用原生js实现拖拽打开视频讲解更加详细Vue实现拖拽穿梭框功能的四种方式_哔哩哔哩_bilibili<html><head><meta...

Vue3.x setup 语法糖实现props双向绑定

1.背景为了封装一下Element-Plus的分页插件,需要实现父子组件之间的传值。2.父组件<scriptsetuplang="ts">letqueryPa...

取消回复欢迎 发表评论: