• SQL: 增删改,过程抽象,数据抽象,遍历访问


    本部分包含:

    表修改操作

    增删改查:权限

    查询不影响原表

    修改操作语法上表现为SELECT外添加前缀(与新选项),或缺省SELECT(更具体的语义)

    INSERT行插入(权限足够)

    1.插入完整的行(部分列缺省)——字面量

    2.插入查询结果——对象

    INSERT INTO 表(更安全:改用关键字参数,可以缺省(前提:表必须允许NULL,或有默认值))

    VALUES(逐个字面量)

    INTO是否存在与其他语句的组合?

    否——省略

    INSERT

    SELCET

    WHERE

    (是否保持完整的选项(子语句)?)

    插入检索结果行

    INSERT INTO插入现有表

    SELECT INTO复制到新表

    删改

    UPDATE

    DELETE

    UPDATE

    SET(删:设为NULL,前提:允许)

    WHERE

    DELETE(整行)

    FROM

    WHERE

    删列:UPDATE

    CREATE TABLE 表名

      列名  数据类型  是否允许NULL  DEFAULT val

    不可重名:拒绝覆写

    NULL !=空字串

    对象=值+结构

    删表

    DROP TABlE

     

    复杂表结构(列结构)更改

    1.创建新表

    2.复制数据(映射:计算字段,转换函数;归总:聚集值)

    3.检验新表?

    4.重命名(且删)旧表

    5.重新创建触发器,存储过程,索引,外键

    视图

    SELECT

    FROM 视图

    WHERE

    缺省表名:作为函数?

    依然指定表名

    是虚拟表(过程)不是数据——表可能更新——python property——对表运行时迟邦定

    重用语句

    保护数据?设定权限?

    映射:修改值,格式,表示

    可嵌套:性能低

    视图不能索引,不能带触发器与默认值?

    部分DBMS权限:只读

    表更新对视图的影响?

    视图作为生成器?

    CREATE VIEW name AS

    SELECT

    (其余子语句完整性)

    嵌套 IN SELECT

    平行WHERE &|  UNION

    抽象 VIEW

    存储过程:抽象

    状态——状态——状态——状态

    状态——变化——变化——状态

    存储过程相同则结果相同——Docker

    存储编译后的结果——部分存储独立内容的编译结果——python存储编译后的正则表达式

    SQL存储语法不同——可移植性差

    EXECUTE name(

            参数列表

    不传递主键:自动化生成ID?

    调用时动作:

    参数与签名验证

    生成主键ID

    执行动作:增删改

    参数:

    默认值

    关键字参数

    输出参数,返回值用于修改(哪个函数的)参数?

    使用SELECT检索

    输出值

    CREATE PROCEDURE name(

      listName  IN/OUT/INOUT  typr

    IS

    name   type???

    BEGIN

    END

    局部变量?

    事务处理

    打包SQL语句,并保证原子性(执行/不执行)

    出现异常——恢复到执行前——保证数据库完整性

    发生错误——回卷——异常

    正常——提交

    在沙盒中处理??

    可回退:INSERT,UPDATE,DELETE——增删改

    不可:SELECT——查

    打包方式:标出代码块

    BEGIN

    COMMIT隐式提交——要求显式提交

    ROLLBACK

    撤销一次

    保留点:历史记录

    SAVEPOINT 标记

    回滚到保留点

    ROLLBACK 标记

    游标

    整体处理——随机访问

    (数组作为指针)

    游标修改权限:作为存取器入口:增?删?改?查权限

    访问方式:随机,相对

    列的存取权限控制:可修改,不可修改列

    主要用于交互

    使用:

    声明:创建

    定义:绑定表

    读写数据

    关闭,释放

    创建

    DECLARE name CURSOR

    FOR

    SELECT

    FROM

    WHERE

    使用:

    OPEN CURSER curser

    (LOOP——END)

    FETCH curser INTO date

    CLOSE

    能否使用多个CURSER?

    多个数据如何使用?外部接收者(隐式迭代?)?

  • 相关阅读:
    Markdown语法
    负载均衡、反向代理、CDN的概念
    IDEA远程调试
    跨域简介
    java命令:javac/java/javap
    尾递归实现斐波那契数列
    Java集合:框架
    volatile简介与原理
    乐观锁和悲观锁
    移动端布局的心得
  • 原文地址:https://www.cnblogs.com/qmcj/p/9271987.html
Copyright © 2020-2023  润新知