SQL学习之增删改查

news2024/11/17 19:35:54

文章目录

  • 数据库
  • 数据类型
  • 建表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 '学生姓名';

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

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

相关文章

官宣合作|Space and Time的SQL证明使zkLogin更强大

为了实现Web3的承诺&#xff0c;必须有一种方法能够提供当前Web基础设施的所有功能&#xff0c;同时不会破坏区块链基础设施的零信任模型。能够在无需依赖第三方中介的情况下运行是一种基本哲学&#xff0c;也是区块链技术的优点&#xff0c;即提高安全性和效率的同时降低成本。…

跨境电商源码:多语言支持与扩展的终极解决方案

随着全球电商市场的不断扩大&#xff0c;跨境电商源码的需求日益增长。对于想要拓展国际业务的电商企业来说&#xff0c;多语言支持显得尤为重要。在这方面&#xff0c;我们的跨境电商源码产品具备显著优势&#xff0c;不仅全面支持多语言&#xff0c;还方便扩展多个语言的CSDN…

瑞萨e2studio(29)----SPI速率解析

瑞萨e2studio.29--SPI速率解析 概述视频教学时钟配置解析RA4M2的BRR值时钟速率7.5M下寄存器值3K下寄存器值 概述 在嵌入式系统的设计中&#xff0c;串行外设接口&#xff08;SPI&#xff09;的通信速率是一个关键参数&#xff0c;它直接影响到系统的性能和稳定性。瑞萨电子的…

windows安装composer并更换国内镜像

第一步、官网下载 下载地址 Composer安装https://getcomposer.org/Composer-Setup.exe第二步、双击安装即可 第三步选择 php安装路径并配置path 第四步、 composer -v查看安装是否成功&#xff0c;出现成功界面 第五步、查看镜像地址并更换&#xff08;composer国内可能较慢…

外汇天眼:3家平台牌照失效,远离以下平台!

监管信息早知道&#xff01;外汇天眼将每周定期公布监管牌照状态发生变化的交易商&#xff0c;以供投资者参考&#xff0c;规避投资风险。如果平台天眼评分过高&#xff0c;建议投资者谨慎选择&#xff0c;因为在外汇天眼评分高不代表平台没问题&#xff01; 以下是监管牌照发生…

DefaultListableBeanFactory

DefaultListableBeanFactory 是一个完整的、功能成熟的 IoC 容器&#xff0c;如果你的需求很简单&#xff0c;甚至可以直接使用 DefaultListableBeanFactory&#xff0c;如果你的需求比较复杂&#xff0c;那么通过扩展 DefaultListableBeanFactory 的功能也可以达到&#xff0c…

【教3妹学编程-算法题】逃离火灾

3妹&#xff1a;2哥&#xff0c;今日都立冬了&#xff0c; 可是天气一点都不冷。 2哥 : 立冬了&#xff0c;晚上要不要一起出去吃饺子&#xff1f;&#x1f95f; 3妹&#xff1a;好呀好呀&#xff0c;2哥请吃饺子喽 2哥 : 歪歪&#xff0c;我说的是一起出去吃&#xff0c;没说我…

python用pychart库,实现将经纬度信息在地图上显示

python使用pyecharts对给到的经纬度数据进行位置标注&#xff0c;下面是批量更新。给入数据&#xff0c;将地图生成。实验数据在下面附件。 from pyecharts import options as opts from pyecharts.charts import Geo import osfolder_path F:\\GPS file_names os.listdir(f…

mycat2 读写分离

mycat2 读写分离 mycat2 读写分离1.创建两个主从复制的数据库2.mycat2 读写分离3.mycat2读写分离测试 mycat2 读写分离 1.创建两个主从复制的数据库 参考&#xff1a;mysql主从复制 2.mycat2 读写分离 连接到mycat数据库 1.在mycat中创建数据库mydb1 CREATE DATABASE mydb…

数字化催生低代码开发浪潮,管理系统也能一键生成

近年来&#xff0c;数字经济以无比迅猛的势头崛起&#xff0c;成为引领全球经济变革的重要引擎。在这个数字化趋势日益明显的时代&#xff0c;企业的数字转型已经成为提高竞争力、适应市场需求的迫切需要。 随着科技的飞速发展&#xff0c;数字技术已经渗透到各个领域&#xff…

安防监控EasyCVR视频汇聚平台运维现场无法使用Linux抓包该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。监控视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、…

安装 Lua 的 HTTP 库

首先&#xff0c;你需要安装 Lua 的 HTTP 库。可以使用 LuaRocks 来安装。以下是安装命令&#xff1a; luarocks install http然后&#xff0c;你可以使用以下代码来爬取网页内容&#xff1a; local http require http-- 设置代理信息 http.set_proxy(jshk.com.cn)-- 网页UR…

社区新零售:改变生活方式的创新商业模式

社区新零售&#xff1a;改变生活方式的创新商业模式 社区新零售&#xff0c;顾名思义&#xff0c;以社区为核心&#xff0c;利用互联网、大数据、人工智能等先进技术&#xff0c;将线上购物和线下体验有机结合&#xff0c;形成一种全新的零售模式。它特别强调地理位置的便利性&…

mysql的主从复制,读写分离

主从复制&#xff1a;主mysql的数据&#xff0c;新增&#xff0c;修改&#xff0c;表里的数据都会同步到从mysql上 主从复制的模式&#xff1a; 1 异步复制 mysql 的最常用的复制&#xff0c;只要执行完&#xff0c;客户端提交事务&#xff0c;主mysql 会立即把结果返回给从…

大厂设计师必备的8款Sketch插件

每个设计师都渴望有一个高效的插件来提高他们的设计能力。设计插件有助于自动化工作流程&#xff0c;快速组织设计文件或简化内容创建。Sketch可以说是设计师知名的设计工具&#xff0c;特别是其资源社区拥有丰富的Sketch插件&#xff0c;大大提高了设计师的工作效率。本文让设…

虹科教您 | 如何选择超声波储罐液位传感器(二)

来源&#xff1a;虹科传感器 虹科教您 | 如何选择超声波储罐液位传感器&#xff08;二&#xff09; 教程背景 超声波储罐液位传感器具有非接触式测量的优点&#xff0c;可以适用于各种不同的液体和环境。本教程将紧跟上期&#xff0c;通过Q&A的形式&#xff0c;帮助您根…

同城服务如何引流和推广 同城小程序制作

客观原因线下实体店经营变得很艰难&#xff0c;而抖音推出的同城号功能&#xff0c;为许多商家带来了新的生机。抖音同城号的操作很简单&#xff0c;只需在短视频发布时打开同城号&#xff0c;短视频将被投入到同城流量池中&#xff0c;可以让位置附近的用户看到&#xff0c;线…

阿里云容器镜像服务的运维总结

一、背景 容器镜像服务&#xff0c;作为一个可选付费产品&#xff0c;主要作用是存储docker的镜像仓库&#xff0c;供k8s拉取到Pod节点里。 你可以自己搭建一个harbor镜像仓库&#xff0c;在公司的开发环境下&#xff0c;将image推送到仓库&#xff1b;然后在生产k8s从仓库拉取…

Matplotlib的使用方法

Matplotlib是Python最著名的绘图库&#xff0c;它提供了一整套和Matlab相似的命令API&#xff0c;十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件&#xff0c;嵌入到GUI应用程序中。Matplotlib能够创建多数类型的图表&#xff0c;如条形图、散点图、条形图、饼图…

数据结构 1、基本概念 动态数组实现

一、大O表示法 判断一个算法的效率 难点 二、线性表 1.定义 2.数学定义 线性表是具有相同类型的n&#xff08;n>0&#xff09;个数据元素的有限序列&#xff08;a0,a1,a2,...,an&#xff09;,ai是表项&#xff0c;n是表长度 3.性质 4.线性表的基本操作 1.创建线性表 2…