1、SQL语言

分类方式

类别描述

部署方式

嵌入式/单机/双机/集群/分布式/云数据库

业务类型

OLTP数据库/OLAP数据库/流数据库/时序数据库

存储介质

内存数据库/磁盘数据库/SSD数据库/SCM数据库

年代

第一代是单机数据库/第二代是集群数据库/第三代是分布式数据库和云原生数据库/第四代是AI数据库

什么是SQL语言?

SQL语言是一种基于关系代数和关系演算的非过程化语言,它指定用户需要对数据操作的内容,而不指定如何去操作数据

SQL语言的4大特点

SQL语言具有非过程化、简单易学、易迁移、高度统一等特点

1.非过程化:在使用SQL语言的过程中,用户并不需要了解SQL语言的具体操作方法,只需要通过SQL语言描述想要获得的结果集合的条件,至于如果取得结果,由数据库查询优化系统负责生成具体的执行计划去完成。

2.简单易学:SQL语言的设计非常精简,只需要有限的命令就可以完成复杂的查询操作

3.易迁移:主流的关系数据库系统都支持以SQL语言为标准的查询操作

4.高度统一:SQL语言具有高度的统一性,统一的语法结构和统一的风格,使得对数据库的操作也具有完备性

基本功能:数据定义

数据定义主要的SQL语句如下:

语句

描述

数据定义

DDL:定义、修改、删除数据模式

CREATE TABLE

数据库中创建一个表

DROP TABLE

数据库中删除一个表

ALTER TABLE

改变现存表的结构

CREATE TABLE

数据库中添加一个视图

DROP VIEW

数据库中删除一个视图

语句

描述

数据操作

DML:数据的检索,插入、删除、更新

SELECT

从数据库中检索数据

INSERT

向数据库中添加一行数据

DELETE

从数据库中删除一行数据

UPDATE

修改现存的数据库数据

访问控制的SQL语句:

语句

描述

访问控制

DCL:控制用户对数据的访问权限

GRANT

授予用户访问权限

REVOKE

撤销用户访问权限

事务控制的SQL语句:

语句

描述

事务控制

TCL:控制数据操作的事务

COMMIT

提交当前事务

ROLLBACK

回滚当前事务

SET TRANSACTION

定义当前事务数据访问特征

程序化SQL语句:

语句

描述

程序化SQL

程序开发使用的SQL,主要用于非交互命令行方式

DECLARE

为查询声明一个游标

EXPLAIN

为查询描述数据执行计划

OPEN

检索查询结果打开一游标

FETCH

从游标中获取一行查询结果

CLOSE

关闭游标

PREPARE

为动态执行准备SQL语句

EXECUTE

动态执行SQL语句

DESCRIBE

描述准备好的查询

完整性检查:

域完整性:

NULL约束:可以指定一个列中的值是否可以为NULL

CHECK约束:用来检查输入的值是否满足某一约束条件

DEFAULT约束:如果输入数据中没有指定该列具体的值,可以直接使用DEFAULT约束指定的默认值

实体完整性:

主键:指定的键值组合在集合内只能有唯一的一个值(不可以包含NULL值)

UNIQUE约束:指定的键值组合在集合内只能有唯一的一个值(可以包含NULL值)

参照完整性:

外键:指定的键值组合和外部的键值相对应

什么是索引?

索引实际上是对基本表中的一个列或一组列的数据进行预处理,建立索引的目的是提升查询性能

常见的索引有B树索引、哈希索引、位图索引等

创建索引使用CREATE INDEX语句:CREATE INDEX ON

UNIQUE索引:

1.可以通过UNIQUE关键字来指定创建的索引是否具有唯一性

2.UNIQUE关键字指定的唯一性和主键的唯一性有一些不同。主键中的所有列不能有NULL值,而UNIQUE关键字创建的唯一索引可以允许有NULL值,由于NULL值与NULL值是不相等的,所以UNIQUE索引的唯一性表现在可以具有NULL值,而且可以有多组NULL值

3.查询过程中索引匹配是数据库自动完成的,不需要用户明确指定。

SQL语法视图

什么是视图?

视图是一个虚拟表,其内容由查询定义,视图同表一样,也包含一系列带有名称的列

视图分为两种,普通视图和物化视图:

普通视图不保存数据,物化视图保存数据

查询是:SELECT,FROM,WHERE构成

连接:多个基本表的连接结果

选择:过滤之后的元组会组成新的中间关系

连接操作还能指定连接条件

连接又可分为内连接,外连接,半连接

内连接:只有符合连接条件的结果才会作为最终的连接结果

外连接:左外连接,右外连接和全连接

半连接:SQL语法中不能直接使用半连接,基于连接条件谓词中是否含有否定谓词

集合操作:

集合操作主要是对两个结果进行并,差和交的运算

名称

描述

UNION

并操作,将UNION两端的结果集做并集操作

EXCEPT

差操作,从左侧的结果集中排除右侧的结果集

INTERSECT

交集,对两个结果集取做交集操作

SQL语言:

通过权限管理来对数据对象的访问进行控制

权限分为系统权限和对象权限

通过GRANT语句来授予权限,通过REVOKE语句来收回权限

SQL语法事务控制

事务是由一组SQL语句序列构成的原子操作集合,具有原子性、一致性、隔离性和持久性的特点

事务分为隐式事务和显式事务

隐式事务对于用户执行的每个SQL语句,数据库自动启动事务,根据SQL语句的成功与否自动进行提交或者回滚操作

显式事务需要用户通过SQL事务命令指定事务块的边界

PLSQL存储过程

存储过程是一组SQL语句和逻辑控制的集合

存储过程可以带有参数,参数的类型就是SQL标准中的类型。存储过程的参数有三种不同的输入输出模式:IN,OUT,INOUT

函数必须指定返回值,存储过程必须独立调用

触发器是数据库事件的相应机制

每一个DML操作都会产生一个触发事件,如果操作对象上创建了与事件对应的触发器,并且满足触发器的触发条件,那么就会触发动作。同一个触发器可以指定多个触发事件,每个事件发生时都会激活触发器来执行触发器的动作。

SQL语法游标

处理数据的一种方法,是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。

通过move命令移动游标,fetch获得游标指向的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用docker让项目持续开发和部署

大多人选择开发时在本地,部署时文件都在容器里,如果没有容器,那就本地开发,没有映射文件,如果部署环境到容器了,容器内部启动时设置执行命令,再将映射的文件进行编译,这就直接能实现…

一些常见网络安全术语

1、黑帽 为非法目的进行黑客攻击的人,通常是为了经济利益。他们进入安全网络以销毁,赎回,修改或窃取数据,或使网络无法用于授权用户。这个名字来源于这样一个事实:老式的黑白西部电影中的恶棍很容易被电影观众识别&…

Linux-PWM驱动实验

在裸机篇我们已经学习过了如何使用 I.MX6ULL 的 PWM 外设来实现 LCD 的背光调节,其实在 Linux 的 LCD 驱动实验我们也提到过 I.MX6ULL 的 PWM 背光调节,但是并没有专门的去讲解 PWM 部分,本章我们就来学习一下 Linux 下的 PWM 驱动开发。 PWM…

ChatGPT 最新推出的 Pro 订阅计划,具备哪些能力 ?

OpenAI 最近推出了 ChatGPT Pro,这是一个每月收费 200 美元的高级订阅计划,旨在为用户提供对 OpenAI 最先进模型和功能的高级访问。 以下是 ChatGPT Pro 的主要功能和能力: 高级模型访问: o1 模型:包括 o1 和 o1 Pro…

wordpress网站安装了Linux宝塔面板,限制IP地址访问网站,只能使用域名访问网站

一、Linux服务器安装Linux宝塔面板 这个步骤参考网上其他教程。 二、Linux宝塔面板部署wordpress网站 这个步骤参考网上其他教程,保证网站能够正常访问,并且使用Linux宝塔面板申请并部署了SSL证书,使用https协议默认443端口正常访问。 三…

C#中的模拟服务器与客户端建立连接

创建一个控制台项目,命名为Server,模拟服务器端。在同一个解决方案下,添加新项目,命名为Client,模拟客户端。在服务器端与客户端之间建立TCP连接,并在客户端发送消息,在服务器端输出。 Server项…

LeetCode279. 完全平方数(2024冬季每日一题 27)

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 …

Docker基础【windows环境】

课程内容来自尚硅谷3小时速通Docker教程 1. Docker简介 Docker 通过 Docker Hub 实现一行命令安装应用(镜像)【Nginx,Mysql等】,避免繁琐的部署操作。同时通过轻量级(相对于虚拟机)的容器化的思想&#x…

flinkSql 将流和表的互相转换

流——>表 方式一 方式二 方式一&#xff1a;写sql DataStreamSource<String> source env.socketTextStream("localhost", 8881); // 表名&#xff0c;流&#xff0c;字段名称 tableEnv.createTemporaryView("t_1",source&#xff0c;$("…

【人工智能】深入解析Python中的聚类算法:从K-Means到DBSCAN

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 聚类是一种无监督学习的核心技术,用于将数据点分组到不同的簇中,使得同一簇内的点相似度最大化,不同簇间的点差异性最大化。K-Means和DBSCAN是两种最常见的聚类算法,分别适用于密度驱动和形状复杂的数据分组需…

core Webapi jwt 认证

core cookie 验证 Web API Jwt 》》》》用户信息 namespace WebAPI001.Coms {public class Account{public string UserName { get; set; }public string UserPassword { get; set; }public string UserRole { get; set; }} }》》》获取jwt类 using Microsoft.AspNetCore.Mvc…

运输层4——TCP格式(重点!)

目录 一、TCP报文段格式 二、最大报文长度 MSS 一、TCP报文段格式 长度&#xff1a;前20个字节固定 后4n个字节&#xff08;报文段格式不固定&#xff09; 1、源端和目的端&#xff1a;各2个字节 作用&#xff1a;指明TCP链接的发送 2、序号 4字节 作用&#xff1…

Android显示系统(03)- OpenGL ES - GLSurfaceView的使用

Android显示系统&#xff08;02&#xff09;- OpenGL ES - 概述 Android显示系统&#xff08;03&#xff09;- OpenGL ES - GLSurfaceView的使用 Android显示系统&#xff08;04&#xff09;- OpenGL ES - Shader绘制三角形 Android显示系统&#xff08;05&#xff09;- OpenGL…

python+docker实现分布式存储的demo

test.py代码 #test.py from flask import Flask, request, jsonify import requests import sys import threadingapp Flask(__name__)# 存储数据 data_store {}# 节点列表&#xff0c;通过环境变量传入 nodes [] current_node Noneapp.route(/set, methods[POST]) def …

关于睡懒觉

我们经常听到一个词&#xff1a;睡懒觉。 我认为&#xff0c;睡懒觉这个词&#xff0c;是错误的。 人&#xff0c;是需要睡眠的&#xff0c;睡不够&#xff0c;就不会醒。睡够了&#xff0c;自然会醒&#xff0c;也不想继续睡。不信你试试&#xff0c;睡够了&#xff0c;你…

kafka进阶_4.kafka扩展

文章目录 一、Controller选举二、Kafka集成2.1、大数据应用场景2.1.1、Flume集成2.1.2、Spark集成2.1.3、Flink集成 2.2、Java应用场景(SpringBoot集成) 三、Kafka常见问题3.1、Kafka都有哪些组件&#xff1f;3.2、分区副本AR, ISR, OSR的含义&#xff1f;3.3、Producer 消息重…

Scrapy的简单实现

Scrapy的简单实现 1. Scrapy是什么 Scrapy是一个用于抓取网站&#xff08;即网页爬取&#xff09;和从网页中提取结构化数据的开源框架。它为编写网络爬虫来抓取网站内容提供了高效、灵活的方式&#xff0c;并将这些信息以常见的格式保存&#xff0c;如JSON、CSV或XML。Scrap…

Linux网络编程---本地套接字

1.概述 本地套接字 1&#xff1a;作用:本地的进程间通信 2.有关系的进程间通信 3.没有关系的进程间的通信 本地套结字实现流程和网络套结字实现相似&#xff0c;一般采用tcp 二.通信流程 本地套结字通信的流程:1.服务器端:1.1 int fd socket(AF_UNIX/AF_LOCAL,…

面试官:MongoDB是什么,它有什么特性与使用场景?

哈喽&#xff01;大家好&#xff0c;我是小奇&#xff0c;一个专给面试官添堵的撑序员 小奇打算以轻松幽默的对话方式来分享一些技术&#xff0c;如果你觉得通过小奇的文章学到了东西&#xff0c;那就给小奇一个赞吧 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一…

【Spring项目】表白墙,留言板项目的实现

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;项目实现准备 1&#xff1a;需求 2&#xff1a;准备工作 &#xff08;1&#xff09;…