zoukankan      html  css  js  c++  java
  • 009.增删查改语法(sql实例)


    --------------------------------------------合并结果集SELECT UNION ----------------------------------------------------------
    SELECT 'HAHA',1,52
    UNION--联合,将查询的两个结果集合并,*结构一致才能合并到一起,结构不一致则会报错
    SELECT '嘿嘿',1,52

    SELECT 'HAHA',1,52
    UNION all
    SELECT '嘿嘿',1,52
    --常见面试题:
    --1.union 并集时,结果集要求结构一致
    --2.union 和 union all 的区别:
    --union 重复数据显示1次
    --union all 完全显示数据,即使重复也多次显示。
    ---------------------------------------------子查询(添加多行)-------------------------------------------------------------------
    USE Student
    --A.添加多行数据:
    --insert [into] name[(列的列表)] --values(值的列表),(值的列表)....
    --将查询结果添加到表中(技术:子查询)

    INSERT INTO lesson(ccode,cname,cnum)
    SELECT'C001','C#编程基础',32 union
    SELECT'C002','C#OOP',36 UNION
    SELECT'C003','C#FRAME',36
    SELECT * FROM lesson

    -----------------------------------表的备份SELECT * INTO info_bak FROM info--------------------------------------
    --实现表的备份(复制到其他表中
    --1. 生成表 查询 ,select into
    -- 准备:查询
    USE Student
    SELECT * --负责列的显示
    FROM info --数据的来源
    WHERE sname='赵明月' --查询的条件
    SELECT sunmb FROM info

    SELECT sname FROM info WHERE sname LIKE '%月%'
    --egA :
    --备份info表到info_bak中
    --生成表 查询 select into 包含了两个功能:1.创建新表info_bak 2.插入查询数据
    --1.info_bak 2.插入查询数据
    SELECT * INTO info_bak FROM info
    SELECT * FROM info_bak

    --egB:
    --备份空的info表到info_bak1中
    SELECT * INTO info_bak1 FROM info WHERE sunmb=0
    SELECT * FROM info_bak1
    --egC:
    --把数据备份到已存在的表中
    --将 info 表中的女同学信息,备份到info_bak1中.
    --info_bak1:插入数据(从info表中查出来的)
    --操作(zichaxun)
    INSERT INTO info_bak1
    SELECT * FROM info WHERE sex=0

    SELECT * FROM info_bak1

    ----------------------------------------------修改UPDATE--------------------------------------------------------
    --修改:update
    --语法:
    --UPDATE tab_name SET colname=val,colname=val
    --eg1.
    UPDATE info SET address='北京海淀'
    WHERE sname='赵月'
    SELECT * FROM info

    --eg2.
    --将学号是4的同学的基本信息,修改成你本人的信息
    UPDATE info SET sname='清瑞',sex=1,birthday='1992-01-01',address='山西永济程胡庄八组',tel='13520179329'
    WHERE sunmb=4
    SELECT * FROM info

    --eg3.
    --将tel是010开头的同学的地址改成北京市
    UPDATE info SET address='北京市'
    WHERE tel LIKE '010%'
    SELECT * FROM info

    ------------------------------------------------删除DELETE-------------------------------------------------------
    --删除:DELETE(行)
    --语法:DELETE [FROM] tab_name
    -------WHERE [筛选行] 如果不写,将删除所有行
    --eg1.
    DELETE FROM info WHERE sunmb=1
    SELECT * FROM info

    --eg2.
    --清空 info(删除所有行)
    DELETE info
    SELECT * FROM info
    --truncate table 截断表
    --先DROP TABLE 再 CREATE TABLE 是DDL操作
    --语法:
    TRUNCATE table info
    --(截断表和删除清空表都是删除所有行,保留表结构,but DELETE重新添加数据后ID是继续,TRUNCATE重新添加数据后ID是从1开始)
    --(DELETE 橡皮擦 TRUNCATE 撕纸)

    --****面试题:
    --1. DELETE 删除表中所有数据是否记录日志,是否能恢复? DML
    --记录日志是对行数据的删除行为,是可以恢复的.

    --2. TRUNCATE TABLE 是否记录日志,是否能恢复? DDL
    --如果是oracle:DDL操作不记录事务日志,不可恢复.
    --如果是sqlserver:DDL操作被记录,记录的是数据页的操作,所以在sqlserver数据库能恢复

    --3. 这两种操作如果是删除海量数据表格的数据,哪个效率更高?
    --truncate table 效率高,因为它是以数据页为单位删除和记录日志,所有相对于delete来讲它的操作和记录次数少,所以效率会更高.
    --删除数据的时候delete用的比较多,更加灵活.

    关注90後梦想大师,梦想从未止步.
  • 相关阅读:
    基于Ubuntu + nextCloud 搭建自己的私人网盘
    基于Ubuntu部署 memcached 服务
    基于Ubuntu搭建Seafile专属网盘
    基于ubuntu搭建 Discuz 论坛
    基于ubuntu搭建 WordPress 个人博客
    基于CentOS 搭建 FTP 文件服务
    搭建 WordPress 个人博客
    Scale-out NAS 和scale-up NAS 系统的优缺点
    鱼缸的启示:Scale-out和Scale-up架构
    整死你个妖精,CDN西游捉妖记!
  • 原文地址:https://www.cnblogs.com/harveylv/p/6326450.html
Copyright © 2011-2022 走看看