sql语法学习:关键点和详细解释

news2024/9/24 7:14:47

学习SQL语法是掌握数据库操作的基础。以下是SQL语法的一些关键点和详细解释:

1. SQL基础

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它主要包括以下几个部分:

  • 数据定义语言(DDL):用于定义数据库结构,如创建、修改和删除数据库对象。
  • 数据操作语言(DML):用于操作数据库中的数据,如插入、更新和删除记录。
  • 数据查询语言(DQL):用于从数据库中检索数据。
  • 数据控制语言(DCL):用于管理数据库的访问权限。

2. DDL(数据定义语言)

创建数据库和表
CREATE DATABASE database_name;

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    ...
);
  • CREATE DATABASE 用于创建数据库。
  • CREATE TABLE 用于创建表,指定列名、数据类型和约束条件。
修改表结构

ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name
DROP COLUMN column_name;

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

  • ALTER TABLE 用于修改表结构,可以添加、删除或修改列。
删除表和数据库

DROP TABLE table_name;

DROP DATABASE database_name;

3. DML(数据操作语言)

插入数据

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

  • INSERT INTO 用于向表中插入数据。
更新数据

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

  • UPDATE 用于更新表中的数据。
删除数据

DELETE FROM table_name
WHERE condition;

  • DELETE 用于删除表中的数据。

4. DQL(数据查询语言)

基本查询

SELECT column1, column2, ...
FROM table_name
WHERE condition;

  • SELECT 用于从表中检索数据。
  • WHERE 用于指定查询条件。
排序和分组

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC|DESC;

SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;

  • ORDER BY 用于对结果进行排序。
  • GROUP BY 用于对结果进行分组。
连接查询

SELECT column1, column2, ...
FROM table1
JOIN table2 ON table1.column = table2.column;

  • JOIN 用于连接多个表进行查询。

5. DCL(数据控制语言)

授权和撤销权限

GRANT privilege ON object TO user;

REVOKE privilege ON object FROM user;

  • GRANT 用于授予用户权限。
  • REVOKE 用于撤销用户权限。

6. 常用函数

聚合函数

SELECT COUNT(column_name) FROM table_name;
SELECT SUM(column_name) FROM table_name;
SELECT AVG(column_name) FROM table_name;
SELECT MAX(column_name) FROM table_name;
SELECT MIN(column_name) FROM table_name;

  • COUNT 用于计算行数。
  • SUM 用于计算总和。
  • AVG 用于计算平均值。
  • MAX 用于计算最大值。
  • MIN 用于计算最小值。
字符串函数

SELECT CONCAT(column1, column2) FROM table_name;
SELECT LENGTH(column_name) FROM table_name;
SELECT SUBSTRING(column_name, start, length) FROM table_name;

  • CONCAT 用于连接字符串。
  • LENGTH 用于计算字符串长度。
  • SUBSTRING 用于截取字符串。

7. 事务控制

BEGIN TRANSACTION;

COMMIT;

ROLLBACK;

  • BEGIN TRANSACTION 用于开始一个事务。
  • COMMIT 用于提交事务。
  • ROLLBACK 用于回滚事务。

8. 索引

CREATE INDEX index_name
ON table_name (column_name);

DROP INDEX index_name ON table_name;

  • CREATE INDEX 用于创建索引。
  • DROP INDEX 用于删除索引。

9. 视图

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

DROP VIEW view_name;

  • CREATE VIEW 用于创建视图。
  • DROP VIEW 用于删除视图。

1. 存储过程和触发器

存储过程

CREATE PROCEDURE procedure_name
AS
BEGIN
    -- SQL statements
END;

EXEC procedure_name;

  • CREATE PROCEDURE 用于创建存储过程。
  • EXEC 用于执行存储过程。
触发器

CREATE TRIGGER trigger_name
ON table_name
FOR INSERT, UPDATE, DELETE
AS
BEGIN
    -- SQL statements
END;

  • CREATE TRIGGER 用于创建触发器。

总结

SQL语法涵盖了数据库操作的各个方面,从基本的增删改查到复杂的查询、事务控制和高级功能如存储过程和触发器。掌握这些语法将帮助你有效地管理和操作数据库。

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

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

相关文章

全栈开发(五):初始化前端项目(nuxt3+vue3+element-plus)+前端代理

1.初始化前端项目 Nuxt3:搭建项目_nuxt3 项目搭建-CSDN博客、 2.配置代理 nuxt.config.ts // https://nuxt.com/docs/api/configuration/nuxt-configexport default defineNuxtConfig({devtools: { enabled: true },modules: ["element-plus/nuxt", "pinia/n…

智能PPT行业赋能用户画像

智能PPT市场在巨大的需求前景下,已吸引一批不同类型的玩家投入参与竞争。从参与玩家类型来看,不乏各类与PPT创作有关的上下游企业逐步向智能PPT赛道转型进入,也包括顺应生成式AI技术热潮所推出的创业企业玩家。当前,智能PPT赛道发…

在虚幻引擎中创建毛发/头发

在虚幻引擎中创建毛发/头发 , 首先开启两个插件 Groom 和 Alembic Groom Importer 打开蒙皮缓存 导出人物模型 将人物导入Blender , 选择需要种植头发的点 指定并选择 点击毛发 这里变成爆炸头了 , 把数量和长度调一下 切换到梳子模式 调整发型 导出为abc , 文件路径不…

基于opencv的车牌检测和识别系统(代码+教程)

车牌检测与识别技术详解 车牌检测和识别(License Plate Recognition, LPR)是一项重要的计算机视觉任务,它在交通管理、安全监控以及智能门禁系统等多个领域都有着广泛的应用。随着深度学习技术的发展,LPR系统的准确性和鲁棒性得到…

【算法业务】基于Multi-Armed Bandits的个性化push文案自动优选算法实践

1. 背景介绍 该工作属于多年之前的用户增长算法业务项目。在个性化push中,文案扮演非常重要的角色,是用户与push的商品之间的桥梁,文案是用户最直接能感知的信息。应该说在push产品信息之外,最重要的就是文案,直接能…

机器学习 | Scikit Learn中的普通最小二乘法和岭回归

在统计建模中,普通最小二乘法(OLS)和岭回归是两种广泛使用的线性回归分析技术。OLS是一种传统的方法,它通过最小化预测值和实际值之间的平方误差之和来找到数据的最佳拟合线。然而,OLS可以遭受高方差和过拟合时&#x…

Unreal Engine 5 C++: 插件编写03 | MessageDialog

在虚幻引擎编辑器中编写Warning弹窗 准备工作 FMessageDialog These functions open a message dialog and display the specified informations there. EAppReturnType::Type 是 Unreal Engine 中用于表示应用程序对话框(如消息对话框)返回结果的枚举…

vue.js 展示树状结构数据,动态生成 HTML 内容

展示树状结构数据: 从 jsonData 读取树状结构的 JSON 数据,将其解析并生成 HTML 列表来展示。树状结构数据根据 id 和 label 属性组织,节点可以包含子节点 children。 展示评级信息: 从预定义的表单字段 form 中读取 arRateFlag 和…

GS-SLAM论文阅读笔记--GLC-SLAM

前言 最近GS-SLAM回环检测的工作已经逐步发展了,看一下这篇新文章。 文章目录 前言1.背景介绍2.关键内容2.1 tracking2.2 local mapping2.3 Loop Closing2.4总体流程 3.文章贡献 1.背景介绍 现有的基于3dgs的SLAM方法往往存在累积的跟踪误差和地图漂移&#xff0c…

三菱FX5U CPU模块的初始化“(格式化PLC)”

1、连接FX5U PLC 1、使用以太网电缆连接计算机与CPU模块。 2、从工程工具的菜单选择[在线]中[当前连接目标]。 3、在“简易连接目标设置 Connection”画面中,在与CPU模块的直接连接方法中选择[以太网]。点击[通信测试]按钮,确认能否与CPU模块连接。 FX5…

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(1)数字电路基础

目录 一、信号特征 二、组合逻辑电路和时序逻辑电路 1、组合逻辑电路 2、时序逻辑线路 三、信号转换 1、数字集成电路的分类 2、常用电平接口技术 四、可编程逻辑器件 flechazohttps://www.zhihu.com/people/jiu_sheng 小柴冲刺嵌入式系统设计师系列总目录https://blo…

[vulnhub] Prime 1

https://www.vulnhub.com/entry/prime-1,358/ 主机发现端口扫描 探测存活主机,137是靶机 nmap -sP 192.168.75.0/24 // Starting Nmap 7.93 ( https://nmap.org ) at 2024-09-22 16:25 CST Nmap scan report for 192.168.75.1 Host is up (…

Rust - 字符串:str 与 String

在其他语言中,字符串通常都会比较简单,例如 “hello, world” 就是字符串章节的几乎全部内容了。 但是Rust中的字符串与其他语言有所不同,若带着其他语言的习惯来学习Rust字符串,将会波折不断。 所以最好先忘记脑中已有的关于字…

MMD模型一键完美导入UE5-VRM4U插件方案(一)

1、下载pmx模型 1、去模之屋官网下载MMD模型,模之屋 2、下载完成得到pmx和Texture文件 2、下载并启用VRM4U插件 1、下载VRM4U插件, VRM4U,点击Latest下载对应引擎版本 2、将插件放到Plugins目录,然后

GB28181语音对讲协议详解

GB28181-2016语音对讲流程如下图1所示: 图1.语音对讲流程。 其中, 信令 1 、2 、 3 、 4 为语音广播通知、 语音广播应答消息流程; 信令 5 、 1 2 、 1 3 、 1 4 、 1 5 、 1 6 为 S I P 服务器接收到客户端的呼叫请求通过 B 2 B UA 代理方式建立语音流接收者与媒…

DevExpress WPF中文教程:如何解决行焦点、选择的常见问题?

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

【HarmonyOS】应用权限原理和封装

背景 在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。 授权方式 包括两种授权方式,分别是system_grant(系统授权) 和 user_grant(用户授权)…

ruoyi源码解析学习 - 微服务版 - ruoyi-gateway

com.ruoyi.gateway 今天简单看看若依的gateway的配置模块干了啥 最近面试很多外包公司,都对低代码平台有点要求,这些代码虽说用起来不费劲,但是其中还是有很多细节能让我学习学习的。(微服务版,上次搞jeecgboot的笔试…

R包安装教程,如何安装rjags和infercnv

一.介绍 在数据分析过程中,R语言因其强大的统计分析能力和丰富的包生态系统,成为众多研究人员和数据科学家的首选工具。本文将详细介绍如何在R环境中安装两个重要的R包——rjags和infercnv。rjags用于与JAGS(Just Another Gibbs Sampler&…

热斑黄斑光伏发电板 红外黄斑检测图像数据集内含最高温度信息 1200张,jpg格式。

热斑黄斑光伏发电板 红外黄斑检测图像数据集 内含最高温度信息 1200张,jpg格式。 热斑黄斑光伏发电板红外黄斑检测图像数据集介绍 数据集名称 热斑黄斑光伏发电板红外黄斑检测图像数据集(Hot Spot and Yellow Spot Detection in Photovoltaic Panels I…