(一)、集合运算(交、并、补)

--(1)Union 并运算
select Sname
from Student
UNION
select Tname
From Teacher --(2)INTERSECT 交运算
--查询学校中与老师重名的学生姓名
select Sname
From Student
INTERSECT --不会重复出现
Select Tname
From Teacher --另解
select Sname
From Student
Where Sname IN
(Select Distinct Tname
From Teacher) --(3)找出不选3号课的学生
select distinct Sno
From SC
where Sno not IN
( select Sno
From SC
Where Cno = ''
) -- 另解 使用EXCEPT
Select Sno
From SC
EXCEPT
Select Sno
From SC
Where Cno = ''

二、 数据修改

1. 数据增加

  • INSERT INTO <表名> ([列名])

  • VALUES (<值列表>)

  • 实例

-- (1). 插入一条学生记录 (2017005, 张三, 男,21,数学系)
INSERT INTO Student
Values ('', '张三', '男', , 'MA') --没有说明的列,插入NULL
--说明的列数要等于值的个数
--如果在指定了某列不允许为空,则必须插入数据
--例2 出错, Sno is NOT NULL
INSERT INTO Student(Sname)
VALUES ('刘帅')
  • 创建表

    SELECT *

    INTO newTable

      From oldTable

  • 实例

--例1 创建与Student同结构的表
Select *
Into Stu_tmp
From Student --注意: new Table 不能存在
--但是有附加命令
  • 拷贝表 (新表 已经创建)

      Insert  Into newTable  

    Select *

    From OldTable

  • 多行插入

    INSERT INTO <表名> [(<​> [, <​>....] ) ]

    子查询

  • 实例

--例1 拷贝表
--先在Student表中插入一条数据
INSERT INTO Student
Values ('', '豆子', '男', , 'CS', '1997-07-22')
select * from Student
--拷贝表全部数据 到 新表 (已经创建了新表)
Insert Into Stu_tmp Select * From Student --删除 Stu_tmp
delete From Stu_tmp --插入, 子查询
Insert Into Stu_tmp(Sno, Sname, Sex, Sage, Sdept)
select Sno, Sname, Sex, Sage, Sdept
From Student

2. 数据修改

--将学生95001的年龄改成22岁

--将所有学生的年龄增加1岁
UPDATE Student
Set Sage = Sage + -- 修改计算机全体人员成绩 为0
Update SC
Set Grade =
where Sno in
(Select distinct SC.Sno
From Student, SC
Where Student.Sno = SC.Sno and Sdept = 'CS')

SQL语句(十六)实现集合运算、对数据修改、数据表复制的更多相关文章

  1. sql语句删除由于无主键导致完全重复的数据方法

    sql语句删除由于无主键导致完全重复的数据方法 select distinct * into #Tmp from t_column drop table t_column select * into ...

  2. MySQL数据库增删改查SQL语句(2018整理集合大全)

    查看数据库 show databases;  使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 cre ...

  3. 抓取锁的sql语句-第六次修改

    增加异常处理 CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 ...

  4. Ibatis.Net 动态SQL语句学习(六)

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数吧. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&qu ...

  5. 多条SQL语句对查询结果集的垂直合并,以及表设计时如何冗余字段

    需求引入 你有一个销售单表A 和一个销售单详情表B 和一个收付款记录表C A---->B 一对多   A---->C一对多 如果一个销售单有两个详情,三条收款记录 对一个销售单 我们想查询 ...

  6. Sql语句不能识别Go的解决办法(动态创建表的触发器)

    问题来源 用sqlserver直接打开sql文本,执行没问题,但是当用Sqlcommand类执行cmdtext命令文本时总是失败报错. 原因分析及解决 用数据库直接执行sql语句没问题,甚至还可以用G ...

  7. SQL语句查询数据库的触发器、存储过程、视图以及表的SQL语句

    Sql Server数据库用SQL语句查询方法如下: select name from sysobjects where xtype='TR' --所有触发器 select name from sys ...

  8. sql语句(一)— —判断是否有这条数据的优化

    今天发现一个业务上的存储过程写的不够完善,和老板反应后,老板说你来完善吧,我:苦瓜脸~.说实话,我对SQL语句的熟练程度真的是不提也罢[捂脸],大概的判断流程我知道,但是真的让我自己写,还真得上网查查 ...

  9. SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据

    ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...

  10. SQL语句大小写是否区分的问题,批量修改整个数据库所有表所有字段大小写

    一.实例介绍 SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下: 例: --> 创建表,插入数据: declare @maco table (number int,myvalue ...

随机推荐

  1. angularJS1笔记-(6)-自定义过滤器

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. UTC时间与北京时间

    经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...

  3. 优先队列的一种实现--堆ADT

    二叉堆的两个重要性质: 1.结构性,为完全二叉树,可以用数组方便地表示.2.堆序性:树中每个节点的关键字值大于或等于其父节点的关键字值. 二叉堆的数据结构声明如下: struct HeapStruct ...

  4. php框架的制作原理

    php框架的制作原理 (2012-08-16 14:25:55) 转载▼ 标签: php框架制作 杂谈 分类: php index.php 主入口文件 <?php  define('ISEXIS ...

  5. Read N Characters Given Read4 II - Call multiple times

    The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ...

  6. how to get iframe dom in js

    how to get iframe dom in js https://stackoverflow.com/questions/3999101/get-iframes-document-from-ja ...

  7. Java中LinkedList的fori和foreach效率比较

    在<Java中ArrayList的fori和foreach效率比较>中对ArrayList的两种循环方式进行了比较,本次对LinkedList的两种遍历方式进行效率的比较. 1. list ...

  8. Nginx+Tomcat搭建高性能负载均衡集群--Windows本地测试版

    链接:http://www.cnblogs.com/wbyp/p/6860744.html

  9. [二十七]SpringBoot 之 Restful接口的跨域请求

    什么是跨域 简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求.比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz. ...

  10. 适用于Rick的奖惩体系

    适用于Rick的奖惩体系 虽然对于时间有了更加清晰的认知,但是在时间管理方面还是不够严格,源于对自身的放松要求以及不够自律.第二个是周期性的思想松懈,比如周五了,想着马上周末了. 今天中午洗碗的时候, ...