SQL ③-基本语法

news2025/4/18 11:11:01

在这里插入图片描述

SQL基本语法

表操作

创建表

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ...
);

删除表

DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name...];

TEMPORARY:表示临时表,仅在当前会话有效,关闭会话后该表自动删除。

IF EXISTS:如果表不存在,则创建,否则不创建。

修改表

ALTER TABLE table_name
ADD column_name datatype constraint;

ALTER TABLE table_name
DROP COLUMN column_name;

ALTER TABLE table_name
MODIFY column_name datatype constraint;

显示表结构

DESC table_name;

数据操作

插入数据

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

查询数据

SELECT column1, column2, column3,...
FROM table_name;

对查询列对应的字段进行算术运算并且使用 AS 给列起别名。

SELECT <column1 + column2 AS sum_column | column1 + 10 AS c1Add10, column2>
FROM table_name;

对查询的结果进行去重:DISTINCT

SELECT DISTINCT column1, column2, column3,...
FROM table_name;

对查询结果进行排序:ORDER BY

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

DESC:降序,ASC:升序。

条件查询
SELECT column1, column2, column3,...
FROM table_name
WHERE condition;

condition:条件表达式,可以是比较运算符、逻辑运算符、函数等:

  • >, >=, <, <=:比较运算符。
  • =:等于,NULL不安全,例如 NULL = NULL 的结果是 NULL。
  • <=>:等于,NULL安全,例如 NULL <=> NULL 的结果是 TRUE(1)。
  • !=, <>:不等于。
  • BETWEEN a0 AND a1:范围匹配,[a0, a1],如果 a0 <= val <= a1,则返回 TRUE(1)。
  • IN (option, ...):值匹配,如果是option中的任意一个,则返回 TRUE(1)。
  • IS NULL:是 NULL。
  • IS NOT NULL:不是 NULL。
  • LIKE:模糊匹配,%表示任意多个,包括零个任意字符,_表示任意一个字符。
  • 逻辑运算符:
    • AND:与。
    • OR:或。
    • NOT:非。
分页查询
SELECT column1, column2, column3,...
FROM table_name
LIMIT [offset,] row_count;

offset:偏移量,从第几行开始查询,默认为0。

row_count:查询的行数。

更新数据

UPDATE table_name
SET column1 = value1, column2 = value2, column3 = value3,...
[WHERE condition]
[ORDER BY ...]
[LIMIT ...];

删除数据

DELETE FROM table_name
[WHERE condition]
[ORDER BY ...]
[LIMIT ...];

数据约束

NOT NULL

非空约束,字段不能为空。

字段不能为空。

CREATE TABLE table_name (
    column1 datatype NOT NULL,
);

UNIQUE

唯一约束,字段值必须唯一。

字段值必须唯一。

CREATE TABLE table_name (
    column1 datatype UNIQUE,
);

PRIMARY KEY

主键约束,字段值必须唯一并且不能为NULL。是 NOT NULLUNIQUE 的组合。

字段值必须唯一并且不能为NULL。

通常给主键字段加上 AUTO_INCREMENT 属性。

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY AUTO_INCREMENT,
);

复合主键,可以指定多个字段作为主键。

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    PRIMARY KEY (column1, column2)
);

FOREIGN KEY

外键约束,字段值必须存在于另一张表的主键值。

字段值必须存在于另一张表的主键值。

FOREIGN KEY (字段名) references 主表名(列)

CREATE TABLE table_name (
    column1 datatype,
);
CREATE TABLE table_name2 (
    column2 datatype,
    FOREIGN KEY (column2) references table_name(column1)
);

DEFAULT

默认约束,字段值如果没有指定,则使用默认值。

字段值如果没有指定,则使用默认值。

DEFAULT value

CREATE TABLE table_name (
    column1 datatype DEFAULT value,
);

CHECK

检查约束,字段值必须满足一定条件。

字段值必须满足一定条件。

CHECK (condition)

CREATE TABLE table_name (
    column1 datatype CHECK (column1 > 0),
    gender datatype CHECK (gender = 'M' or gender = 'F')
);

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

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

相关文章

esp32cam -> 服务器 | 手机 -> 服务器 直接服务器传输图片

服务器先下载python &#xff1a; 一、Python环境搭建&#xff08;CentOS/Ubuntu通用&#xff09; 一条一条执行 安装基础依赖 # CentOS sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel # Ubuntu sudo apt update && sudo apt install b…

豆浆机语音提示芯片方案:基于可远程在线更换语音的WT2003H-16S芯片

随着智能家居概念的普及&#xff0c;消费者对家电产品的智能化、便捷性提出了更高要求。豆浆机作为厨房常用电器&#xff0c;其操作便捷性和用户体验直接影响市场竞争力。传统豆浆机多依赖指示灯或简单蜂鸣器提示用户操作状态&#xff0c;信息传递单一且无法满足个性化需求。 在…

解密工业控制柜:认识关键硬件(PLC)

前言 作为一名视觉开发工程师&#xff0c;我们不仅要做到做好自己的工作&#xff0c;我们更需要在工业现场学习更多知识&#xff0c;最近网上流传很多&#xff0c;“教会徒弟&#xff0c;饿死师傅”&#xff1b;在自动化行业中&#xff0c;在项目下来很忙的时候&#xff0c;我们…

【嵌入式系统设计师】知识点:第11 章 嵌入式系统设计案例分析

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…

【深度解析】SkyWalking 10.2.0版本安全优化与性能提升实战指南

前言 Apache SkyWalking 作为云原生可观测性领域的佼佼者&#xff0c;在微服务架构监控中扮演着至关重要的角色。然而&#xff0c;官方版本在安全性、镜像体积和功能扩展方面仍有优化空间。本文将分享一套完整的 SkyWalking 10.2.0 版本优化方案&#xff0c;从安全漏洞修复到镜…

面向大模型的开发框架LangChain

这篇文章会带给你 如何使用 LangChain&#xff1a;一套在大模型能力上封装的工具框架如何用几行代码实现一个复杂的 AI 应用面向大模型的流程开发的过程抽象 文章目录 这篇文章会带给你写在前面LangChain 的核心组件文档&#xff08;以 Python 版为例&#xff09;模型 I/O 封装…

Easysearch VS Opensearch 数据写入与存储性能对比

本文记录 Easysearch 和 Opensearch 数据写入和数据存储方面的性能对比。 准备 压测工具&#xff1a;INFINI Loadgen 对比版本&#xff1a; Easysearch 1.11.1&#xff08;lucene 8.11.4&#xff09;Opensearch 2.19.1&#xff08;lucene 9.12.1&#xff09; 节点 JVM 配置…

【Proteus仿真】【32单片机-A009】矩阵按键系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、按键值与LCD显示 2、矩阵按键 二、使用步骤 系统运行后&#xff0c;LCD1602显示当前的按键值&#xff1b; 当按下不同按键后显示屏更新对应的按键值。 三、硬件资…

用一个实际例子快速理解MCP应用的工作步骤

已经有很多的文章介绍MCP server&#xff0c;MCP Client工作原理&#xff0c;这里不做太多介绍。但是很多介绍都只是侧重介绍概念&#xff0c;实际的工作原理理解起来对初学者还是不太友好。本文以一个智能旅游咨询系统为例&#xff0c;详细说明在利用 Model Context Protocol&…

TCP 和 UDP 可以使用同一个端口吗?

TCP 和 UDP 可以使用同一个端口吗&#xff1f; 前言 在深入探讨 TCP 和 UDP 是否可以使用同一个端口之前&#xff0c;我们首先需要理解网络通信的基本原理。网络通信是一个复杂的过程&#xff0c;涉及到多个层次的协议和机制。在 OSI 模型中&#xff0c;传输层是负责端到端数…

探索原生JS的力量:自定义实现类似于React的useState功能

1.写在前面 本方案特别适合希望在历史遗留的原生JavaScript项目中实现简单轻量级数据驱动机制的开发者。无需引入任何框架或第三方库&#xff0c;即可按照此方法封装出类似于React中useState的功能&#xff0c;轻松为项目添加状态管理能力&#xff0c;既保持了项目的轻量性&am…

HBuilder运行uni-app程序报错【Error: listen EACCES: permission denied 0.0.0.0:5173】

一、错误提示&#xff1a; 当使用HBuilder运行uni-app项目的时候提示了如下错误❌ 15:11:03.089 项目 project 开始编译 15:11:04.404 请注意运行模式下&#xff0c;因日志输出、sourcemap 以及未压缩源码等原因&#xff0c;性能和包体积&#xff0c;均不及发行模式。 15:11:04…

VMware Fusion Pro 13 for Mac虚拟机

VMware Fusion Pro 13 for Mac虚拟机 文章目录 VMware Fusion Pro 13 for Mac虚拟机一、介绍二、效果下载 一、介绍 VMware Fusion Pro for Mac&#xff0c;是一款mac虚拟机软件&#xff0c;跟Parallels Desktop一样&#xff0c;都可以让你的 Mac 同时运行一个或多个不同的操作…

7.第二阶段x64游戏实战-string类

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;7.第二阶段x64游戏实战-分析人物属性 string类是字符串类&#xff0c;在计算机中…

【debug莫名其妙跑飞了】

现象&#xff1a;就是在初始化汇编里跑飞了&#xff0c;也可能运行起来时钟不对 原因&#xff1a;调试器调试程序时会执行reset复位&#xff0c;reset没有正确执行。 细节决定成败&#xff0c;事出反常必有妖&#xff0c;忽略的小卡拉米最后能玩死你啊

基础知识补充篇:什么是DAPP前端连接中的provider

专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读352次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你想要知道区块…

openssl源码分析之加密模式(modes)

openssl实现分组加密模式&#xff08;例如AES128-CBC的CBC部分&#xff09;的模块名字叫做modes&#xff0c;源代码位于 https://gitee.com/gh_mirrors/openssl/tree/master/crypto/modes 博主又打不开github了TT&#xff0c;只能找个gitee镜像 头文件是modes.h。 该模块目前…

【PVR】《Palm Vein Recognition and Large-scale Research based on Deep Learning》

邬晓毅. 基于深度学习的掌静脉识别及规模化研究[D]. 四川:电子科技大学,2024. 文章目录 1、背景2、相关工作3、创新点和贡献4、方法和实验4.1、知识介绍4.2、基于自适应损失函数的掌静脉识别算法研究4.3、退化图像的掌静脉识别鲁棒性提升研究4.4、掌静脉识别系统规模化 5、总结…

PyQt学习记录

PyQt学习记录 要在界面上 创建一个控件&#xff0c;就需要在程序代码中 创建 这个 控件对应类 地一个 实例对象。 在Qt系统中&#xff0c;控件&#xff08;widget&#xff09;是 层层嵌套 的&#xff0c;除了最顶层的控件&#xff0c;其他的控件都有父控件。 几个函数 函数mo…

Linux 学习笔记(5)路径知识详解:绝对路径、相对路径与特殊路径符(期末、期中复习必备)

前言 一、相对路径与绝对路径 1、概念阐述 2、实际示例 二、特殊路径符 1.特殊路径符介绍 2.应用场景 三、总结 四、结语 前言 在 Linux 系统的学习过程中&#xff0c;路径的概念至关重要&#xff0c;它是我们在文件系统中定位文件和目录的关键。今天&#xff0c;我们就…