数据库SQL运用(1)

2023-11-14

--数据库关键字:Top Like In Between As Join InnerJoin LeftJoin RightJoin FullJoin Union
--------------------------------------------------------
--Top
--Top 子句用来截取要返回的数目,如果查询出的数据有成千上百条,那么Top就很有用了,
--可以只取读取结果的前几条,
--select top number|percent 列名 from 表名
use TSqlDemo
select top 3 * from Student --这样取出来的数据是查询结果集的前3行
select top 50 percent * from Student --这样取出来的数据时结果集的50%,如果总共有5条,那么取3条
---------------------------------------------------------
--Like
--Like操作符用用于查询时条件的模式。
select * from Student where Name like '%花'--%是指缺少的字母,%花指的是最后一位是花的人
--n%n指的是第一位和第二位是n的人,%n%指的是中间有n的人
----------------------------------------------------------
--通配符
--%这种符号被称为通配符,在数据库中可以代替一个或多个字符,必须与like一起使用
--%代替一个或多个字符
--_仅代替一个字符
--[N]字符列中的任何单一字符。[a]%代表以a为第一个字母的字符串
--[!N][^N]代表不在字符列中的单一字符.[!a]%代表不以a为第一个字母的字符串
--这些通配符都与Like子句做为Like子句的条件使用
-----------------------------------------------------------
--In
--In顾名思义就是在...中的,在sql语句中用来筛选多个数据
select * from Student where Name in('小花','小荷花')
--In后面要加一个括号,在括号中我们可以指定我们要选择的对象,可以是多个,可以是1个
--对象之间用‘,‘隔开,这样我们就将Name与括号中的多个数据相比较,只要符合其中一个就可以
-----------------------------------------------------------
--between and
--between在where后使用,用于选择在二者之间的数据,可以是数字和字符
select * from Student where Age between 20 and 21--年龄在20和21之间的人,包括20和21
select * from Student where Age not between 20 and 21 --年龄不在20和21之间的人,查询结果中没有20和21
-----------------------------------------------------------
--As
--As可以为表或者列指定名称,只是将显示的名称换了,并没有将数据库中字段的名称真正的换掉
select Name as '名称' from Student
--这样查询出来的结果Name的列头被换为名称,更直观。方便程序
-----------------------------------------------------------
--Join
--Join方便我们从更多的表格中得到结果,有时一张表格满足不了我们的需求,这时候需要用到Join
--现在我们再建一个成绩表,在成绩表中有每个人的学号还有他们的成绩,在学生表中的学号这一列是主键,是不会重复的
--成绩表中的SNum和Student表中的Num是一个字段,他们将2张表联系起来,这样即使姓名相同,学号也可以区分他们
--现在我们想要知道谁考了多少分,就需要从查询成绩表,然后去学生表拿名字
select Student.Name,Score.Math from Score,Student where Student.Num=Score.SNum
--这是第一种方法,我们可用通过多表的结合查询,下面用join的方法
select Student.Name,Score.Math from Score inner join Student on Student.Num=Score.SNum
--inner join on 需要注意的是from后面的表名和inner join后面的表名不能相同
--on后面是我们关联查询的查询依据,在on的后面我们同样可以查询条件的字句,
select Student.Name,Score.Math from Score inner join Student on Student.Num=Score.SNum where Math >90 order by Score.Math desc
--where 一定要在order by 的前面
------------------------------------------------------------
--Join还有几个相似的查询,如left join InnerJoin LeftJoin RightJoin FullJoin
--上面我们所做的例子是Inner join ,下面我们看看他们的不同
--inner join: 表中有一个匹配项时,显示行
--left join: 即使右表中没有匹配,也返回左表的所有的行
--right join: 即使左表中没有匹配,也返回右表的所有的行
--full join: 只要其中一个表中存在匹配,就返回所有表的行
--下面我们做实验来测试这几种join
select Student.Name,Score.Math from Student left join Score on Student.Num=Score.SNum
--返回的结果是,他把学生表里的全部数据都返回的,如果没有score的则显示未NULL
select Student.Name,Score.Math from Student right join Score on Student.Num=Score.SNum
--返回的结果是,他把成绩表中所有的数据都返回了,如果在学生表里没有,则在Name处显示null,当然我们之前做过外键
--所以在成绩表中的人必须在学生表里存在,大家可以去掉外键之后试试
select Student.Name,Score.Math from Student full join Score on Student.Num=Score.SNum
--full顾名思义就是全部,不管你们有没有匹配我全都给你返回
-------------------------------------------------------------
--union
--union可以将查询出的2张表结合在一起,但是前提是他们的查询语句必须一样
--查询出的结果必须一样,行数必须一样,就是2张一样的表不同的就是数据,
--表的结构必须吻合,这样才可以合并在一起
select * from Student
union
select * from Score
--------------------------------------------------------------

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库SQL运用(1) 的相关文章

  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 需要 SQL 查询澄清[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个由以下列组成的表 billid patientid doctorid fees 如何显示治疗多名患者的医生 尝试了以下代码并得到了
  • 简单的 Linq 查询对同一个表有重复的连接?

    来自 Julia Lerman 的新实体框架书中的示例 我有一个包含两个表的数据库 联系人和地址 Contact 表有一个 ContactID int 以及名字 姓氏等 Address 表有一个 ContactID 以及城市 州 邮政编码等
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何
  • SQL查询查找具有特定数量关联的行

    使用 Postgres 我有一个架构conversations and conversationUsers Each conversation有很多conversationUsers 我希望能够找到具有确切指定数量的对话conversati
  • 没有提示指令的直连接中表的顺序是否会影响性能?

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 矩阵乘法 - 视图/投影、世界/投影等

    在 HLSL 中有很多矩阵乘法 虽然我了解如何以及在何处使用它们 但我不确定它们是如何导出的或它们的实际目标是什么 所以我想知道是否有在线资源可以解释这一点 我特别好奇将世界矩阵乘以视图矩阵以及世界 视图矩阵乘以投影矩阵背后的目的是什么 您
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo

随机推荐

  • vue应用vue-pdf打包多出一个worker.js文件

    项目要用到pdf预览功能 因为是vue项目就是直接导入了vue pdf组件 但是在进行打包的时候在dist文件夹下面多个worker js文件 导致项目部署后预览pdf直接报了404 后来尝试了很多办法去解决 但是都是不太好用 目前有两种解
  • ASP.NET Core WebAPI学习-1

    Web API学习 ASP NET Core WebAPI学习 1 ASP NET Core WebAPI学习 2 ASP NET Core WebAPI学习 3 ASP NET Core WebAPI学习 4 ASP NET Core W
  • xshell + xmanager 图形化工具使用

    这里使用 Xshell6 0 Xmananger6 0工具 注意 很多资料说 在root下 export DISPLAY 0 0 然后xhost 就可以直接连接 但是在操作中始出现不了图形 后来使用下面的xshell xmanager工具时
  • python离散事件仿真库SimPy官方教程

    参考 SimPy Discrete event simulation for Python 建议先简单了解仿真原理 离散事件仿真原理DES 简单介绍 simpy的实现关键在于生成器的使用 通过例子说明一下 生成器function use y
  • Python 爬虫 NO.4 HTTP 响应状态码

    1 HTTP 响应状态码 响应状态码 即 Response Status Code 表示服务器的响应状态 如 200 代表服务器正常响应 404 代表页面未找到 500 代表服务器内部发生错误 在爬虫中 我们可以根据状态码来判断服务器响应状
  • SIGIR'22

    1 背景 近年来 因果推断在推荐 广告 用户增长等领域得到越来越多的关注和应用 如在用户 客户增长领域的消息发送和权益分发方面 为了兼顾用户体验和平台效率 不仅需要预估用户在接受不同权益下的转化概率 还需要预估用户自然情况下未接收干预的转化
  • cocos2d-x屏幕适配原理分析

    转自 https www 2cto com kf 201212 175527 html https blog csdn net u012861978 article details 53233892 分析 designResolutionS
  • QT5.11下载与安装教程

    一 QT软件下载 Qt 5 9 之后的安装包与之前相比 不再区分 VS 版本和 MinGW 版本 而是全都整合到了一个安装包中 因此 与之前的安装包相比 体积也是大了不少 以前是 1G 多 现在是 2G 多 QT5 9 0安装包 QT5 8
  • 电商打折套路解析

    1 分析出 各个品牌都有多少商品参加了双十一活动 这里面有个问题 最后在设置分类是设置错了 应该有4个类 少量少打折 少量大打折 大量小打折 大量大打折 分析思路可以参考下面的思维导图 import numpy as np import p
  • 使用Matplotlib画心形函数图

    函数如下 代码如下 import numpy as np import matplotlib pyplot as plt 导入模块 t np arange 6 6 0 1 x 16 np power np sin t 3 y 13 np c
  • labview与三菱PLC通讯研究

    labview 与三菱 PLC 通讯研究 一 介绍Labview Labvie是实验室虚拟仪器工程工作台 Labview Virtual Instruments Engineering Workbench 的简称 是美国国家仪器公司开发的虚
  • Spring 日志框架

    Spring5 日志使用 Spring jcl 模块 测试一下spring5 的默认日志实现 public class LogDemo public static void main String args Log logger LogFa
  • 第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup

    杂项的附件地址 https share weiyun com BZyngGSZ CISCN web Ezpop misc everlasting night ez usb 问卷调查 pwn login nomal crypto 签到电台 基
  • ICDE2020

    Improving Neural Relation Extraction with Implicit Mutual Relations Jun Kuang Yixin Cao Jianbing Zheng Xiangnan He Ming
  • Centos虚拟机使用virt-manager创建虚拟机

    目录 使用virt manager 主机与centos7虚拟机的共享文件夹设置 将共享文件夹中的iso文件复制到上个home iso目录下 使用virt manager创建虚拟机 上篇文章链接 VM下安装Ubuntu CentOS并安装配置
  • C#两种进程暂停和继续的方法 2021-02-16

    C 两种进程暂停和继续的方法 方法一 方法二 方法一 可以使用Thread Suspend和Thread Resume这两个方法 namespace ThreadSuspended public partial class Form1 Fo
  • CLIP跨语言多模态模型 pytorch下安装

    github地址 GitHub openai CLIP Contrastive Language Image Pretraining 创建python环境 conda create n CLIP python 3 8 安装pytorch和t
  • lxml.html方法,用lxml编辑html代码

    假设我有html代码 它被破坏了 它是从另一个程序给出的 我必须找到其中的所有图像 并将src属性更改为一些代码 仅此而已 它应该在决赛中被打破 在 这是我的代码 coding utf 8 from lxml import etree fr
  • Android 查看是否已经安装某应用(获取某应用的包名)

    借助的工具 adb以及真手机 adb下载 https dl google com android repository platform tools r33 0 1 windows zip 下载解压 解压到ADB文件 复制该路径 配置环境变
  • 数据库SQL运用(1)

    数据库关键字 Top Like In Between As Join InnerJoin LeftJoin RightJoin FullJoin Union Top Top 子句用来截取要返回的数目 如果查询出的数据有成千上百条 那么Top