当前位置: 首页 > news >正文

SQL学习之增删改查

文章目录

  • 数据库
  • 数据类型
  • 建表create table
  • 插入数据insert into
  • 查询数据select from
  • 修改数据update set
  • 删除数据delete from
  • 备份ctas
  • 结果插入iis
  • 截断表 truncate table
  • 修改表结构alter table
  • 添加注释

注:本文的SQL语法是基于Oracle数据库操作的,但是基本的SQL语法在数据库中应该都是通用的


数据库

什么是数据库?什么是表?
数据库可以理解为图书馆,图书馆里面的书就是数据库中的数据,数据库表就是书架,每个架子都有自己名字(编号),不同的架子放的是不同类型的书,数据库表也一样。

针对表的操作有很多,可以分为对表本身的操作,包括创建表、删除表、修改表,这类操作称为DDL;还有操作表中的数据,包括插入数据、修改数据、删除数据,这类操作称为DML;还有一类是对前面操作的授权,称为DCL;最重要的是查询表中数据的操作,称为DQL。

  • DDL(data definition language)操作包括:create table、alter table、drop table;
  • DML(data manipulation language)操作包括:insert into、update set、delete from、truncate table;
  • DCL(data control language)操作包括:grant、revoke;
  • TCL(transaction control language)操作包括:commit、rollback;
  • DQL(data query language)操作包括:select;

数据类型

Oracle数据库中常用的数据类型大致如下:

类 型描 述
char(n)保存固定长度的字符串,n在1-2000之间。
varchar2(n)保存数字、字母等变长字符串,n在1-4000之间。
number(m,n)保存数字,是整数或小数。n表示小数长度,整数长度是m-n。
date保存日期时间类型,不含毫秒。
timestamp保存日期时间类型,含毫秒。
clob存放海量文字。
blob存放海量二进制文件,如图片、电影、音乐等。

还有其他类型,如long、float、int、rowid(伪列)等。
注:

  1. oracle数据库的表中的每一行数据都有一个唯一的标识符,或者称为rowid,在oracle内部通常就是使用它来访问数据的。
  2. char是一种固定长度的类型,无论储存的数据有多少都会固定长度,如果插入的长度小于定义长度,则可以用空格进行填充。而varchar2是一种可变长度的类型,当插入的长度小于定义长度时,插入多长就存多长。

在SQL中没有bool类型,在plsql中有bool类型。

建表create table

create  table  表名  (列名1  类型, 列名2  类型....)

说明:

  1. “create table 表名(列名 类型)”是固定写法。表名是自己起的,英文开头,可以包含数字,可以包含下划线,表名中不能有空格,不要使用中文做表名。
  2. 表名后面必须跟小括号,里面是列的定义,列名后面是一个类型,中间用空格区分;多个列定义之间使用逗号分割。列名定义规则跟表名一样。
  3. 创建表时,只能执行一次,多次执行会报错“00955 名称已由现有对象使用”。

eg:创建学生表stu
在这里插入图片描述

create table stu(sno number, sname varchar2(32), sage int, sdate date, sincome number(8,2));

插入数据insert into

语法如下:

insert into 表名(1,列2......)values(1,值2......);

说明:

  1. “insert into (…) values (…)”是固定结构,小括号是必须有的。
  2. 第一个小括号中是需要插入的列名,第二个小括号中是需要插入的值。一定要注意的是列名跟值是一一对应的。不仅个数一致,位置也要一致。
  3. 插入的值,必须跟数据类型保持一致:number/int类型就是纯数字,varchar2类型是用单引号引起来;date类型是字符串前面加date;
  4. 被插入的表必须存在,如果不存在,需要create table创建。
  5. 同一条插入语句,重复执行,会插入多条相同的数据。

eg:向表中插入下述内容
在这里插入图片描述

insert into stu(sno, sname, sage, sdate, sincome)values(1,'张三',23,date'1990-02-23', 3000.32);
insert into stu(sno, sname, sage, sdate, sincome)values(2,'李四',24,date'1989-10-12', 4300.46);
insert into stu(sno, sname, sage, sdate, sincome)values(3,'王五',25,date'1987-07-03', 4977.58);

查询数据select from

语法如下:

select * from 表名;
select 列名1, 列名2... from 表名;

说明:

  1. “select … from …”是固定结构,先写select,再写from;
  2. select后面跟着是星号,表示显示所有列;
  3. select后面可以跟具体的列名,多个列名之间使用逗号分割;
  4. from后面跟的是表名;

修改数据update set

语法如下:

update 表名 set 列名1=新值1,列名2=新值2  [where 列名=某值];

说明:

  1. “update … set …”是固定结构。
  2. set后面的等号表示把新值1赋给某一列,让该列的值变成新的值;有多个列的值要修改,就写多个等式,中间用逗号分割。
  3. where是可选的,如果没有where条件,意味着对所有行都修改;有where条件,只对满足条件的行做修改。

eg:按下面要求,修改stu中的数据
在这里插入图片描述

update stu set sincome=4000;
update stu set sincome=4000 where sno=1;
update stu set sincome=4000 where sno<3;
update stu set sincome=sincome+1000;

删除数据delete from

语法如下:

delete  from  表名  [where条件];

说明:

  1. 如果不带where条件,则删除表中所有记录;带where条件,则删除符合条件的行。

eg:按如下要求删除stu表中数据
在这里插入图片描述

-- 删除张三
delete from stu where sno=1;
-- 删除所有
delete from stu;

备份ctas

如果对一个表进行备份,或者对表中一部分数据,一部分列备份,就可以使用ctas。
相当于“文件的另存为”功能。

语法如下:

create table 新表名 as select语句

eg:
对stu表备份,新的表名是stu1

create table stu1 as select * from stu;

把stu表的sno、sname、sage三列数据备份到新的表stu2中。

create table stu2 as select sno, sname, sage from stu;

创建一个表stu3,结构跟stu表完全相同,但是没有数据。

create table stu3 as select * from stu where 1=2;

结果插入iis

查询一个表的内容,把查询结果插入到另一个表中。
语法如下:

insert into 表名 select语句;

例 :演示iis插入数据。

insert into stu3 select * from stu;

截断表 truncate table

对于删除整个表的所有数据,delete并不会释放表所占用的空间。
如果用户确定是删除整表的所有数据,那么使用 truncate table 速度更快。

一个表可以看做是一张纸,上面有很多数据,使用delete删除相当于使用橡皮擦擦除数据,使用truncate删除相当于换了一张新的纸,非常干净,而且速度快。

使用delete删除,可以回滚数据;使用truncate删除,不能回滚数据。

例 :对stu1表进行截断操作。

truncate table stu2;

修改表结构alter table

主要操作包括增加列、删除列、修改列名、修改列的数据类型。

  • 添加字段
    语法如下:
alter table 表名 add(列名1 列类型, 列名2 列类型)

说明:

  1. 添加列,add后面有小括号,里面是列名和类型;添加多个列,使用逗号分隔;

例 :在stu表中增加一列sphone,类型是varchar2(11)。

alter table stu add (sphone varchar2(11));
  • 删除字段
alter table 表名 drop column 列名 

例 :删除stu表中刚刚添加的sphone列。

alter table stu drop column sphone;
  • 修改字段
-- 列的名字重新命名
alter table 表名 rename column 旧的列名 to 新的列名
-- 修改列的类型
alter table 表名 modify 列名 新的列类型

例 :把stu表中的列sincome改为salary。

alter table stu rename column sincome to salary;

添加注释

comment on table 表名 is '注释内容';
comment on column 表名.字段名 is '注释内容';

例 :给stu表添加表注释和字段注释,并在plsql developer中点击右键“描述”查看注释。

comment on table stu is '学生表';
comment on column stu.sno is '学号';
comment on column stu.sname is '学生姓名';

相关文章:

SQL学习之增删改查

文章目录 数据库数据类型建表create table插入数据insert into查询数据select from修改数据update set删除数据delete from备份ctas结果插入iis截断表 truncate table修改表结构alter table添加注释 注&#xff1a;本文的SQL语法是基于Oracle数据库操作的&#xff0c;但是基本的…...

Ansible角色定制实例

目录 角色定制&#xff1a;roles 角色定制实例&#xff1a;利用角色部署wordpress 1.在roles目录下生成对应的目录结构 2.定义配置文件 ①nginx ②php ③mysql ④定义剧本文件 ⑤启动服务 角色定制&#xff1a;roles 对于普通的剧本&#xff08;playbook&#xff09;有…...

ElastaticSearch--- es多字段聚合

在使用es时&#xff0c;我们经常会用到聚合查询。 简单的聚合查询&#xff0c;已经在前面介绍过&#xff0c;详情见&#xff1a; https://www.cnblogs.com/expiator/p/13843969.html 有时&#xff0c;也会用到多字段聚合查询。类似于Mysql的Group By多个字段。 比如&#xf…...

本周Github有趣开源项目:Rspress等6个

Github有趣的项目、工具和库&#xff1a; 1、sshx 一个基于 Web 的安全协作终端。通过网络进行快速、协作的实时终端共享 特征&#xff1a; 运行一个命令即可与任何人共享您的终端。 在无限画布上调整大小、移动窗口以及自由缩放和平移。 查看其他人的光标实时移动。 连接到…...

【华为OD题库-016】字符串摘要-Java

题目 给定一个字符串的摘要算法&#xff0c;请输出给定字符串的摘要值 1、去除字符串中非字母的符号 2、如果出现连续字符(不区分大小写)&#xff0c;则输出:该字符(小)&#xff0b;连续出现的次数 3、如果是非连续的宁符(不区分大小写)&#xff0c;则输出:该字符(小写)该字母之…...

生成式AI - Knowledge Graph Prompting:一种基于大模型的多文档问答方法

大型语言模型&#xff08;LLM&#xff09;已经彻底改变了自然语言处理&#xff08;NLP&#xff09;任务。它们改变了我们与文本数据交互和处理的方式。这些强大的AI模型&#xff0c;如OpenAI的GPT-4&#xff0c;改变了理解、生成人类类似文本的方式&#xff0c;导致各种行业出现…...

深度学习AIR-PolSAR-Seg图像数据预处理

文章目录 深度学习sar图像数据预处理一.图片预处理操作1.log(1x)处理2.sqrt平方化处理 二.原网络训练效果展示原始数据训练效果展示&#xff1a; 三.对比实验1.采用原始数据2.采用取log(1x)后的数据3.采用取平方后归一化处理&#xff1a; 四.总结&#xff1a;五.思考 深度学习s…...

求最大公约数math.gcd()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 求最大公约数 math.gcd() [太阳]选择题 下列代码执行输出的结果是&#xff1f; import math print("【执行】print(math.gcd(6, 8))") print(math.gcd(6, 8)) print(&quo…...

数据结构之队列

目录 引言 队列的概念与结构 队列的实现 定义 初始化 销毁 入队 判断队列是否为空 出队 获取队头元素 获取队尾元素 检测队列中有效元素个数 元素访问 源代码 queue.h queue.c test.c 引言 数据结构之路经过栈后&#xff0c;就来到了与栈联系紧密的兄弟—…...

MySQL数据库——存储过程-循环(while、repeat、loop)

目录 while 介绍 案例 repeat 介绍 案例 loop 介绍 案例一 案例二 while 介绍 while 循环是有条件的循环控制语句。满足条件后&#xff0c;再执行循环体中的SQL语句。具体语法为&#xff1a; -- 先判定条件&#xff0c;如果条件为true&#xff0c;则执行逻辑&#…...

Django路由

路由系统 1.Django1中的路由1.1 普通形式1.2 分组1.2.1 无名分组1.2.2 有名分组 2. Django2版本2.1 传统的路由2.2 正则表达式路由 3. 路由分发3.1 include(一般使用此方式做路由分发)3.2 手动分发 4. name别名及使用name的反向URL生成4.1 一般情况下的别名使用及反向生成4.2 分…...

头歌实践平台-数据结构-二叉树及其应用

第1关&#xff1a;实现二叉树的创建 #include "binary_tree.h"BiTreeNode* CreatBiTree(char* s, int &i, int len) // 利用先序遍历创建二叉树 // 参数&#xff1a;先序遍历字符串s&#xff0c;字符串初始下标i0&#xff0c;字符串长度len。 // 返回&#xff1…...

2023.11.11通过html内置“required-star“添加一个红色的星号来表示必填项

2023.11.11通过html内置"required-star"添加一个红色的星号来表示必填项 在HTML中&#xff0c;可以使用标签来为元素添加说明。同时可以通过添加一个红色的星号来表示必填项。 <!DOCTYPE html> <html lang"en"> <head><meta charse…...

pcie【C#】

根据提供的引用内容&#xff0c;使用C#编写PCIE的Demo需要遵循以下步骤&#xff1a;1.连接好硬件后&#xff0c;烧录bit文件&#xff0c;安装PCIe内核驱动&#xff0c;然后重启计算机。2.打开VS工程&#xff0c;创建一个新的C#控制台应用程序项目。3.在项目中添加对C DLL的引用…...

西门子精智屏数据记录U盘插拔问题总结

西门子精智屏数据记录U盘插拔问题总结 注意: 数据记录过程中不允许带电插拔 U 盘! 数据记录的相关功能可参考以下链接中的内容: TIA博途wincc V16 如何进行变量周期归档?...

(论文阅读27/100)Deep Filter Banks for Texture Recognition and Segmentation

27.文献阅读笔记 简介 题目 Deep Filter Banks for Texture Recognition and Segmentation 作者 Mircea Cimpoi, Subhransu Maji, Andrea Vedaldi, 原文链接 http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Cimpoi_Deep_Filter_Banks_2015_CVPR_pap…...

ARMday06(串口)

代码&#xff1a; #include "gpio.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_uart.h" void init(); char getc(); void putc(const char data); int main() {init();//初始化putc(j);char …...

Rust字符串详解

文章目录 字符串切片String迭代方法基础字符串方法容量操作增删改查 字符串切片 我们所熟知的由双引号括起来的字符串&#xff0c;在Rust中只是个字符串切片&#xff0c;又叫字符串字面值。这种类型一旦创建&#xff0c;则不可更改。但支持索引&#xff0c;从切片中索引出来的…...

(四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖…...

Window安装MongoDB

三种NOSQL的一种,Redis MongoDB ES 应用场景: 1.社交场景:使用Mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能 2.游戏场景:使用Mongodb存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析

LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...