SQL学习笔记7 游标 约束 索引 触发器

触发器、存储过程、游标、索引和视图 一、触发器 1、概念:用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均有服务器地洞激活相应的触发器,在DBMS核心层进行集中的完整性控制,类似于约束。 2、前触发器:只执行触发器指定的内容而不执行引发触发器的SQL语句。 二、存储过程 1、在开发数据库应用系统时,使用存储过程可以提高数据访问效率,降低网络流量。 3、存储过程的输入参数和输出参数均有默认值,可接... 阅读详情

游标

游标(cursor)是一个存储在DBMS服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动浏览其中的数据。
Access不支持游标
使用游标的步骤:

  • 声明定义游标(定义要使用的SELECT语句)
  • 打开游标(执行SELECT语句)
  • 根据需要取出各行
  • 关闭游标,可能的话,释放游标(某些DBMS)

创建游标

DECLARE custcursor CURSOR
FOR
SELECT * FROM customers
WHERE cust_email IS NULL
  • DB2、MariaDB、MySQL、SQL server版本
DECLARE CURSOR custcursor
IS
SELECT * FROM customers
WHERE cust_email IS NULL
  • Oracle、PostgreSQL版本

打开游标

OPEN CURSOR custcursor

使用游标
SQL Server

DECLARE @id INT
DECLARE @name NVARCHAR(100)
DECLARE c_department CURSOR FOR  -- 声明游标
  SELECT id,name from department
OPEN c_department  -- 打开游标
FETCH next FROM c_department INTO @id,@name -- 获取对应的行,并将数据赋给声明的变量中
WHILE @@FETCH_STATUS=0 -- 取不出更多行时终止循坏
BEGIN 
  --代码
  --代码
  FETCH next FROM c_department INTO @id,@name
END
CLOSE c_department -- 关闭游标
DEALLOCATE c_department --释放游标
  • 当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行
  • 使用FETCH指出要检索哪些行,从何处检索以及将它们放到何处,可以加入循环

关闭游标

CLOSE custcursor
  • 游标一旦关闭,若不再次打开,将不能使用,第二次使用无需声明,直接打开

释放游标

DEALLOCATE custcursor
  • 某些DBMS要求释放游标,如SQL server

约束

管理如何插入或处理数据库数据的规则

使用PRIMARY KEY创建主键

CREATE TABLE vendors
(
    vend_id CHAR(10) NOT NULL PRIMARY KEY,
    vend_name CHAR(50) NOT NULL,
    vend_address CHAR(50) NULL
);

使用CONSTRAINT添加主键

ALTER TABLE vendors
ADD CONSTRAINT
PRIMARY KEY (vend_id);

使用REFERENCES添加外键

CREATE TABLE vendors
(
    vend_id CHAR(10) NOT NULL PRIMARY KEY,
    vend_name CHAR(50) NOT NULL,
    vend_address CHAR(50) NOT NULL REFERENCES customers (cust_id)
);

使用CONSTRAINT添加外键

ALTER TABLE orders
ADD CONSTRAINT
FOREIGN KEY (cust_id) REFERENCES customers (cust_id)
  • 有些DBMS支持级联删除(cascading delete),该特性在从一个表删除行时,会自动删除所有相关的数据

唯一约束 UNIQUE
保证该列的数据是唯一的,类似于主键,但可以修改,且可包含NULL值。唯一约束不可用于定义外键

CREATE TABLE vendors
(
    vend_id CHAR(10) NOT NULL PRIMARY KEY,
    vend_name CHAR(50) NOT NULL,
    vend_address CHAR(50) NOT NULL UNIQUE
);

检查约束CHECK
保证某列或一组列的数据满足一组指定的条件

CREATE TABLE orderitems
(
    order_num INTEGER NOT NULL,
    prod_id CHAR(10) NOT NULL,
    quantity INTEGER NOT NULL CHECK (quantity > 0)
);
ALTER TABLE customers
ADD CONSTRAINT 
CHECK (gender LIKE '[MF]')

索引

排序数据用来加快搜索和排序操作的速度,可以在一个或多列上定义索引。

  • 索引虽然加快了检索操作的性能,却降低了插入、修改和删除的性能。
  • 索引数据会占据存储空间
  • 索引名必须唯一命名
CREATE INDEX prod_name_ind
ON products(prod_name)
  • 不同的DBMS创建索引的语句可能不同

触发器

特殊的存储过程,它在特定的数据库活动发生时自动执行,比如INSERT ,UPDATE ,DELETE操作等。触发器与单个表关联。

用途:

  • 保持数据一致
  • 基本某个表的变动在其他表上执行活动
  • 进行额外的验证并根据需要回退数据
  • 计算计算列的值或更新时间戳

SQL server

CREATE TRIGGER customer_state
ON customers
FOR INSERT, UPDATE
AS
UPDATE customers
SET cust_state = Upper(cust_state)
WHERE customers.cust_id = inserted.cust_id;
《黑马程序员MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化》学习笔记总目录 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化》所有知识点的笔记进行总结分类。学习时总结的目录笔记以及。和实训,将在后续更新。第一章:MySQL概述。 阅读详情

相关推荐

SQL面试常考知识点

SQL知识图谱 1 SQL基础知识 SQL基础概念 1 触发器和事件 1.1 触发器(Trigger)   是用户定义在基本表上的一类由事件驱动的特殊过程。由服务器自动激活, 能执行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。使用 CREATE TRIGGER 命令建立触发器。 1.2 事件(event)   是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。 1.3 两者区别和联系   事件和触发器类

weiyaner的博客 2512

数据库“游标”详解

游标是一段私有的SQL工作区,也就是一段内存区域,用于暂时存放受SQL语句影响到的数据。通俗理解就是将受影响的数据暂时放到了一个内存区域的虚表中,而这个虚表就是游标。

WHEgqing的专栏 8439

Database之SQL:RDBMS关系型数据库的简介、SQL语言的简介(原理/各大方言对比)、基础(SQL执行顺序/五大类函数/索引/视图/事务/安全/存储过程/游标/优化)之详细攻略

Database之SQL:RDBMS关系型数据库的简介、SQL语言的简介(原理/各大方言对比)、基础(SQL执行顺序/五大类函数/索引/视图/事务/安全/存储过程/游标/优化)之详细攻略目录RDBMS关系型数据库简介1、RDBMS相关基本概念(1)、两大存储结构、两类数据库、数据库对象(2)、主键/外键(3)、SQL的约束(非空约束/唯一性约束/CHECK约束/主键约束/外键约束/查询约束)Database之SQL:SQL命令实现理解外键、约束(非空约束/唯一性约束/CHECK约束/主键约束/外键约束/查询

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 2310

索引,触发器,存储过程和存储函数及游标的基本使用和了解

索引,触发器,存储过程和存储函数及游标的基本使用和了解索引口述并理解1. 什么是索引2. 索引的作用有哪些3. 索引的分类有哪些4. 创建索引的原则有哪些动手做1. 如何创建索引2. 如何删除索引触发器1. 什么是触发器2. 如何创建一个触发器存储过程和存储函数1. 什么是存储过程2. 什么是存储函数(自定义函数)3. 存储过程与存储函数的区别4. 如何创建及调用一个存储过程5. 如何常见及调用一个存储函数6. 如何删除存储过程7. 如何删除存储函数游标1. 什么是游标2. 使用游标的四个步骤:1. 声明游

励志当大牛的博客 1056

掌握Access多表关联查询的完整例程

Access数据库作为微软推出的轻量级数据库管理系统,广泛应用于小型企业的数据管理和个人数据组织。本章将为您梳理Access数据库的基础知识,包括其核心组件,以及如何进行简单的数据操作,为后续深入学习多表关联和查询操作打下坚实基础。一对一关联指的是两个表中的记录在逻辑上存在一一对应的关系。对于每一条记录,在关联的表中最多只存在一条匹配的记录,反之亦然。这种关系常用于将数据分割到不同的表中以减少冗余,并保持数据的完整性。

weixin_35987118的博客 1448

掌握ADO游标:优化Microsoft Access 2013编程

本文深入探讨了Microsoft Access 2013编程中的ADO Recordsets游标的使用,包括CursorType、LockType和CursorLocation参数的详解,以及异步记录获取等高级特性。通过理解这些参数的细节,开发者可以更加有效地控制数据的交互和应用性能。

weixin_42323064的博客 461

MySQL ----- 约束,视图,索引,存储过程,触发器,游标

7. 约束 约束可在创建表时, 直接设置, 也可以后期修改. mysql不支持check约束, 但可以通过设置为enum枚举类型达到相同效果. 默认值约束 创建时: create table student(gender varchar(10) default '男'); 添加: alter table student modify column sname varchar(10) default '男'; 删除: alter table student modify column sname var

qq_45668041的博客 526

ACCESS数据库读取工具:快速操作与管理

Microsoft Access是微软推出的一个关联数据库管理系统,它最初于1992年随Office专业版一起发布,是较早集成在办公软件套件中的数据库产品。随着时间的推移,Access不断更新改进,成为众多小型企业和个人开发者用来存储和管理数据的应用程序之一。

weixin_35516624的博客 1273

sql 违反唯一约束条件_超强干货!SQL语法合集(下)

静默虚空 |作者掘金| 来源7数据定义DDL 的主要功能是定义数据库对象(如:数据库、数据表、视图、索引等)。1.数据库(DATABASE)创建数据库CREATE DATABASE test;删除数据库DROP DATABASE test;选择数据库USE test;2.数据表(TABLE)创建数据表普通创建CREATE TABLE user ( id int(10) unsi...

weixin_42499332的博客 1221

DP_AUX辅助通道介绍

DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。其中辅助通道(AUX)是一条独立双向半双工的传输通道,它也是一对差分信号线。其数据传输速率1Mbps,用来传输配置参数与指令。

cjie221的博客 5353

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2348

数据库 面试题 实战解答

目录:1、触发器的作用?2、什么是存储过程?用什么来调用?3、 存储过程的优缺点4、索引的作用?和它的优点缺点是什么?5、什么是内存泄漏?6、维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么?7、什么是事务?什么是锁?8、什么叫视图?游标是什么?9、 where和Having区别:10、on和in的区别:11、union和union ALL 的区别:12、数据库的备份类型:13、...

禧年 4756

什么是以太网链路聚合

以太网链路聚合技术通过将多个物理端口捆绑成逻辑端口,可显著提升网络性能。该技术能增加总带宽(各链路带宽之和)、提高可靠性(故障秒级切换)并实现智能负载分担。主要分为手工模式和基于LACP协议的动态模式,后者能检测链路故障更可靠。配置时需确保接口参数一致、模式匹配,适用于核心交换、服务器接入等场景。华为设备通过创建Eth-Trunk接口、指定LACP模式并添加成员接口即可完成部署。这项成熟技术能以低成本解决带宽瓶颈和可靠性问题,是构建高速稳定网络的关键方案。

lai_2020的博客 674

常见的SQL练习题(含答案)

常见SQL问题 一、数据库常见概念 1.触发器的作用? 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 存储过程是一个预编译的SQ...

weixin_33725722的博客 2979

Isaac Sim/Lab & ROS2 入门教程 —— 宇树人形机器人 H1 强化学习策略部署

本文介绍了如何通过ROS2和IsaacSim运行H1人形机器人的强化学习运动策略。主要内容包括:1)设置机器人关节配置和初始位置;2)添加IMU传感器;3)配置ROS2节点以发布观测数据和接收动作指令;4)创建模拟环境并发布ROS时钟;5)最终运行ROS2策略实现对机器人的键盘控制。文中详细说明了关节参数设置、传感器配置、ROS2节点创建等关键步骤,并提供了注意事项和验证方法。完成配置后,用户可通过键盘指令控制机器人在平坦地形上的运动。

2506_90492529的博客 2170

【ComfyUI】Wan2.2 + IndexTTS 图像数字人或动物口播视频生成

本文介绍了一个基于ComfyUI的数字人口播视频生成工作流,整合了IndexTTS和图像处理技术。该系统通过多模型协同工作,实现从形象图、文本和音频输入到自动生成口播视频的全流程。核心包含WanVideo系列模型,通过CLIP Vision、T5文本编码器和Wav2Vec语音模型分别处理视觉特征、语义理解和口型同步。工作流涵盖素材加载、特征提取、音频处理和视频生成等节点,支持人物、动物等多种主体的口播内容创作。该方案自动化程度高,适用于知识讲解、剧情旁白等多种场景,能帮助创作者高效产出高质量口播视频。

Mr数据杨 2053

SQL Server学习笔记

数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内部的、有组织的、可共享的、统一管理的大量数据的集合。

2501_91088181的博客 2625

滴滴数据分析80道面试题及参考答案

常见的模型评价指标有准确率、召回率、F1 值、均方误差、均方根误差、R 方等。准确率是指模型预测正确的样本数占总样本数的比例,它反映了模型预测的准确性。召回率是指模型预测为正例的样本中实际为正例的比例,它衡量了模型对正例的捕捉能力。F1 值是准确率和召回率的调和平均数,综合考虑了两者的平衡。均方误差是预测值与真实值之差的平方的平均值,它衡量了模型预测值与真实值的平均偏离程度。均方根误差是均方误差的平方根,与均方误差类似,但更直观地反映了误差的大小。

大模型大数据攻城狮的专栏 1698

SQL Server面试集合

数据库三范式是什么? 第一范式:字段不能有冗余信息,所有字段都是必不可少的。 第二范式:满足第一范式并且表必须有主键。 第三范式:满足第二范式并且表引用其他的表必须通过主键引用。 1、索引的作用?和它的优点缺点是什么? 索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 2、说一下SQLServer中索引的

皮卡 皮卡 皮卡丘 ~ 啾 1261

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

触发器及其应用实验报告总结_数据库—基础知识点总结一

点击蓝字关注我们AI研习图书馆,发现不一样的精彩世界基础知识数据库面试重要知识点总结1. 什么是数据库三范式?第一范式:当关系模式R的所有属性都不能再分解为更基本的数据单位时,称R满足第一范式,简记为1NF第二范式:如果关系模式R满足第一范式,并且R的所有非主键属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF第三范式:设R是满足第一范式条件的关系模式,X是R的任意属...

weixin_39958112的博客 2935

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

sql常见面试题

sql常见面试题 sql理论题 1.触发器的作用?     答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的

志在千里 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数据库的【触发器】【索引】【存储过程】【视图】

1 触发器 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2 存储过程 2.1 什么是存储过程?用什么来调用? 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建...

Strive_0902的博客 1720

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Mysql入门到精通全集(SQL99)包含关系运算,软考数据库工程师复习首选

本文系统梳理了MySQL数据库的核心知识点,包括数据库基础概念、SQL语句分类、数据操作语言、数据定义语言、事务控制、存储引擎、索引、视图、数据库设计范式等。重点介绍了DQL查询语句的各种用法,如条件查询、分组查询、连接查询等,以及DDL语句的表操作和约束设置。同时详细讲解了触发器、存储过程、变量、流程控制等高级功能,并全面归纳了MySQL内置函数的分类和使用方法。全文结构清晰,内容全面,涵盖了MySQL数据库从基础到高级的核心技术要点,可作为MySQL学习的系统性参考文档。

渣渣盟的博客 1万+
上一篇: SQL学习笔记6 视图 存储过程 事务处理
下一篇: SQL学习笔记8 数据类型
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值