当前位置: 首页 > 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存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...