• DB2_SQL_常用知识点&实践


    一、删除表中的数据(delete或truncate)

    1 truncate table T_USER immediate;

      说明:Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用;

         TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少;

       DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

      范例

    1 truncate table T_USER where USERNAME <> 'admin';

      说明:"<>"符号是不等于的意思,即"!="

    1 DELETE FROM T_USER WHERE ID = <condition>;

    二、显示数据库中所有表

    1 SELECT * from syscat.tables where tabschema = 'SCTS';

    三、db2自动增长列

    1 ---默认自增,允许手工修改
    2 generated by default as identity3 ---不允许指定,只能由数据库自动分配并插入
    4 generated always as identity

      说明:第一种方式在插入数据时允许手工指定自增字段的值,只要不重复即可,并且数据库会自动设置下一个值;

          第二种方式则不允许指定,只能由数据库自动分配并插入。

      范例

    1 ---定义id为int类型主键,并且不为空,自增长(从1开始,每次递增1)
    2 id INTEGER NOT NULL generated by default as identity (START WITH 1, INCREMENT BY 1);

    四、DB2 单引号(')转义

      比如:未转义之前,看下面的sql几个value?3.5个?

    1 INSERT INTO T_VCARD VALUES'11112','male','Let's Go!');

    上面这句在DB里面执行肯定是错误的,实际上需要转义才是正确的:单引号转义符单引号(')

    1 INSERT INTO T_VCARD VALUES'11112','male','Let''s Go!');

    五、连接字符串

      两种方式用运算法、利用函数

    1 ---利用运算法
    2 select ID || CREATE_TIME  FROM T_TOPIC_TEMPER;
    3 ---利用拼接函数
    4 select CONCAT(ID,CREATE_TIME)  FROM T_TOPIC_TEMPER;

      说明:一般来说,当要连接多个字符串的时候,使用运算符要简单一点。

    六、DB默认值default

    1 "CREATE_TIME" TIMESTAMP DEFAULT CURRENT TIMESTAMP NOT NULL,
    2 "MANUAL_ORDER"    INTEGER default '0',

    七、主键

    1 constraint "P_Identifier_1" primary key ("ID");

    八、索引

    1 CREATE UNIQUE INDEX T_USER_IDX ON T_USER (ID, TOPIC_ID)ALLOW REVERSE SCANS;

    九、视图

     1 CREATE VIEW
     2     IM.T_TOPIC_CLASSIFY_MAPS_TEMPER_VIEW
     3     (
     4         TOPIC_ID,
     5         CLASSIFY_ID,
     6         MANUAL_ORDER,
     7         SCORE
     8     ) AS
     9 SELECT
    10     B.TOPIC_ID AS TOPIC_ID,
    11     A.CLASSIFY_ID         AS CLASSIFY_ID,
    12     A.MANUAL_ORDER         AS MANUAL_ORDER,
    13     B.SCORE  AS  SCORE
    14 FROM
    15     IM.T_TOPIC_CLASSIFY_MAPS A,
    16     IM.T_TOPIC_TEMPER B,
    17     IM.T_TOPIC C
    18 WHERE
    19     A.TOPIC_ID=B.TOPIC_ID
    20 AND C.ID=B.TOPIC_ID
    21 AND C.STATE =1;

    十、修改字段属性、添加字段等

      修改字段长度:

    1 --==============================================================
    2 -- 修改话题avatar的字段长度: Table: T_TOPIC
    3 --==============================================================
    4 alter table T_TOPIC ALTER COLUMN AVATAR SET DATA TYPE VARCHAR(256);

      添加字段:

    1 --==============================================================
    2 -- 给T_TOPIC表增加TOPIC_PHOTO_NAME字段: Table: T_TOPIC
    3 --==============================================================
    4 ALTER TABLE T_TOPIC ADD COLUMN TOPIC_PHOTO_NAME VARCHAR (256);

    十一、INSERT 语句

      DB2的INSERT语句有三种格式:即一次插入一行一次插入多行从SELECT语句中插入

      现在要求插入一行数据,我们这么写:

    1 INSERT INTO USER(NAME,AGE) VALUES ('Jack','25');

      现在要求插入三行数据(可以一行一行写,不再举例),推荐一次插入多行的写法:

    1 INSERT INTO USER(NAME,AGE) VALUES 
    2 ('Jack','25'),
    3 ('Tom','26'),
    4 ('Jucie','27');

      那么一次插入多行的好处是什么呢?有两点好处:

          1、性能更好

          2、由于一条语句,所以它们是一个处理单元,要么都插入,要么都不插入

      第三种,我们还可以从SELECT中插入,格式如下:

    1 INSERT INTO USER (NAME,AGE)
    2 SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...
  • 相关阅读:
    【安全运维】在Windows平台利用sysmon进行安全分析
    【渗透测试】利用分块传输绕安全狗
    【渗透测试】如何获取目标网站真实IP
    【渗透测试】渗透测试常用在线工具
    【读书笔记】《互联网企业安全建设高级指南》6-17
    【安全运维】linux安全加固项目
    【安全运维】初识osquery
    【渗透测试】使用隧道模式访问目标数据库
    【企业安全】使用文件hash进行威胁分析
    【编程开发】python学习-判断是否是私网IP地址
  • 原文地址:https://www.cnblogs.com/enshrineZither/p/3566326.html
Copyright © 2020-2023  润新知