精华内容
下载资源
问答
  • 数据更新与sql简单查询
    万次阅读
    2018-07-10 14:21:03

    最近写一个查询列表的功能,写sql的时候开始犯迷糊,已经知道的表与表的关系,但是还是花了很长时间查询出想要的数据,现在给大家分享一个简单的sql,很实用,方便大家写sql语句。

    首先,两张表的联合查询,很简单:    

    SELECT t.*,
    s.BXDH,s.BM,s.BXR,s.BXSJ,s.BXXM,s.BXXQ,s.FJ,s.LXFS,s.SSFL,s.XQMC,s.SZQY,s.XXDZ,s.ZT,s.WXG,s.BJ
    FROM tydb_wdbj t,sbbx_wsbx s WHERE t.ywlx2='wsbxlc' AND t.SRCUNID=s.UNID ;

    接下来重点来了,需要展示第三张表中一个字段的数据,当然第三张表和这两张表都有联系,这个时候,只需加一个要展示的字段就行:

    SELECT t.*,
    s.BXDH,s.BM,s.BXR,s.BXSJ,s.BXXM,s.BXXQ,s.FJ,s.LXFS,s.SSFL,s.XQMC,s.SZQY,s.XXDZ,s.ZT,s.WXG,s.BJ,
    (SELECT  k.`CREATORNAME`   FROM opinion_info  k  WHERE k.`FIELDNAME`='SBBX_WSBX.wxkys' AND k.`DATAUNID`= s.`UNID`) wxkys
    FROM tydb_wdbj t,sbbx_wsbx s WHERE t.ywlx2='wsbxlc' AND t.SRCUNID=s.UNID ;
    这两条数据的区别,只是多加了一列,就可以将两张表的查询变成三张表的联合查询;
    更多相关内容
  • SQL查询单表数据(一)

    万次阅读 多人点赞 2020-02-17 21:21:48
    SQL 中,字符 “*” 具有特殊的含义,使用用它,将从指定的表中返回每一列,在这里由于没有使用 where 子句,所以将会返回每一行,即是 查询表中所有的行列,就是所有的数据 。 还有一种写法就是分别列出每一列...

    【SQL从一点一滴分析系列文章】为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询
    在分析 SQL 时,也会同时分析 mybatis 、Hibernate 中的相关操作
    点击查看详情

    本节讲述 在 DB2 、Oracle 、 PostgreSQL 、mysql 、 SQL Server 数据库中 基本的 select 查询单表数据语句

    1 从单表中查询所有的行和列

    查询表中所有的数据

    select * from t_user
    

    在 SQL 中,字符 “*” 具有特殊的含义,使用用它,将从指定的表中返回每一列,在这里由于没有使用 where 子句,所以将会返回每一行,即是 查询表中所有的行与列,就是所有的数据 。

    还有一种写法就是分别列出每一列 如下

    select user_name,user_age,user_agent,user_flag,user_address from t_user
    

    在交互执行的特定查询中,使用 * 写法更容易些,然而,在写程序代码的时候,推荐指定每一列,这样后续开发中就可以很清楚的查看到返回了哪些数据,有利于其他开发者阅读,当然两种写法的性能是一致。

    2 从单表中查询部分数据

    使用 where 子句指定查询结果要保留哪些行,例如 要查询 年龄为28的所有用户信息,我们可以这样写

    select * from t_user where user_age=28
    
    3 从单表中查询满足多个条件的数据

    可以使用 where 结合 or 、and 子句综合查询

    例如查询 地址为山西中的所有用户,以及地址为北京的所有年龄不超过28岁的用户,我们可以这样写

    select * from t_user 
    	where user_province="山西" 
    	or user_age<= 28 and user_province="北京" 
    
    4 从单表中查询部分列

    要查看一个表中特定的列,而不是所有的列的值,例如要查询 用户的 姓名、年龄,可以这样写

    select  user_age,user_name from t_user
    

    通过 select 子句中指定列,可以保证不会返回多余的数据,在跨域网络查询数据时,可以避免查询不需要的数据所带来的时间的浪费。

    5 为查询的列指定别名

    改变查询所返回的列名,使这些数据更具有可读性,可以使用 AS 关键字: 原列名 as 新名称

    select user_age as userAge,user_name as userName from t_user
    

    或者可以 省略 as 关键字

    select user_age userAge,user_name userName from t_user
    

    使用比较好的别名,可以在实际开发中使其他开发者更容易理解查询结果

    6 在 where 子句中引用别名的列

    例如查询 年龄不大于 28 岁的所有用户,如下

    select user_age as userAge ,user_name as userName from t_user where userAge <=28
    
    7 将查询的多个列值组合成一列

    例如在 查询用户表的时候,返回这样的结果集

    张三 的年龄是 24
    李四的年龄是 25

    然而在 t_user 表中,姓名,年龄是不同的列,要把不同的列数据连接起来
    在 DB2 、Oracle 、 PostgreSQL 中使用双竖线作为连接运算符

    select user_name || '的年龄是' || user_age as msg form t_user
    

    在 mysql 中使用 concat 函数

    select concat(user_name,'的年龄',user_age) as msg from t_user
    

    在 SQL Server 中使用 “+” 运算符进行连接操作

    select user_name +'的年龄' + user_age as msg from t_user
    

    查询的结果最终会以 msg 返回

    8 在select查询语句中使用条件逻辑

    要在 select 查询结果中,使用 if-else 筛选数据操作,例如 用户的年龄小于 18 就返回信息 “少年人”,年龄大于60 就返回 “老年人”,其他的返回中年人,可以这样写

    select user_name ,user_age,
    	case when user_age <18 then '少年人'
    	     when user_age>60 then '老年人'
    	     else '中年人'
    	end  as  status
    	from t_user
    

    case 表达式可以对查询结果的返回值执行条件逻辑,在上述查询中,case 筛选的结果 使用的别名是 status

    在这里插入图片描述

    9 限制返回的行数

    例如要查询一个表中的前100条数据,可以使用 数据库提供的内置函数来控制返回的行数

    在 DB2 中,使用 fetch first 子句

    select * from t_user fetch first 100 rows only 
    

    在 mysql postgreSQL 中

    select * from t_user limit 100
    

    在 Oracle 中,使用 where 子句通过 rownum 来限制行数

    select * from t_user where rownum <=100
    

    在 SQL Server 中 使用 top 关键字来限制返回的行数

    select top 100 * from t_user
    
    注意 :

    在 Oracle 中,必须使用 rownum 函数开得到每行的行号,从1开始递增,在使用 rownum <=100 来返回 前100行时,会发生如下操作

    • 1 Oracle 执行查询
    • 2 Oracle 获取第 1个合条件的行,称为第1行
    • 3 判断结果是否有 100 行了吗,如果没有,那么,Oracle 就再返回行,因为要满足行号小于先于100的条件,如果到了100行,那么 Oracle 就不再返回行
    • 4 Oracle 获取到下一行,并递增行号,然后再返回到步骤3中
    10 从表中随机返回 n 条记录

    可以使用数据库中内置函数来生成随机数,例如随机返回表中的5条数据

    在 DB2 中,使用内置函数 rand 与 order by 和 fetch

    select * from t_user
    	order by rand() fetch first 5 rows only 
    

    在 MySQL 中,同时使用 内置的 rand 函数、limit 和 order by

    select * from t_user
    	order by rand() limit 5
    

    在 PostgreSQL 中 ,同时使用 random 函数 limit 和 order by

    select * from t_user
    	order by random() limit 5
    

    在 SQL Server 中同时使用内置函数 newid top orderby

    select top 5 * from t_user
    	order by newid()
    
    11 查找表中的空值

    要查找某列中值为空的所有的行,要确定值是否为空,可以使用 IS_NULL

    select * from t_user 
    	  where user_addres is null
    

    null 不能使用等于或者不等于,为了确定某一行是否有空值,必须使用 is null 或者 is not null

    12 将空值转换为实际值

    在一些行中包含空值,我们在实际开发中可以将这些空值设置成一些默认的值,可以使用 coalesce 函数来替换空值

    select * coalesce(user_address,'北京') from t_user 
    

    在这里查询的结果集中,user_address 的值非空就返回 user_address的值,如果是空,就返回 北京,当然使用 case 也可以实现相同的效果

    select * 
    	case when user_address is null then '北京'
    	else user_address
    	end 
    from t_user
    

    完结

    展开全文
  • 干货,SQL语句select查询表的数据简单查询和条件查询

    简单查询

    1.查询表中的数据:

    select * from 表的名字;
    

    2.不查看表的数据,之查看表的结构

    desc 表的名称;
    

    在这里插入图片描述

    3.查询一个字段

    select 字段名 from 表名
    

    在这里插入图片描述

    4.查询多个字段,逗号隔开

    select 字段名1,字段名2 from 表名;
    

    在这里插入图片描述

    5.给这段起别名

    select 字段名1 as 别名1,字段名2 as 别名2 from 表名
    

    在这里插入图片描述

    6.字段可以使用数学运算

    优化

    在这里插入图片描述

    条件查询

    1.等于

    select 字段 from 表名 where 字段=
    

    在这里插入图片描述

    2.不等于

    select 字段 from 表名 where 字段 != 
    

    或者

     `select 字段 from 表名 where 字段 <> 
    

    在这里插入图片描述

    3.小于

    select 字段 from 表名 where 字段 <
    

    4.小于等于

    select 字段 from 表名 where 字段 <=
    

    5.大于等于

    select 字段 from 表名 where 字段 >
    

    6.查询1-20的范围

    select p_id,p_count from tb_product where p_price >=1 and p_price <= 20;
    

    或者

    mysql>select p_id,p_count from tb_product where p_price between 1 and 20;	
    

    在这里插入图片描述

    在这里插入图片描述

    7.is null(查询为null的字段),is not null(查询不为null的字段)

     select p_id,p_count from tb_product where p_price is null;
    

    8.and

    select p_id,p_count from tb_product where p_price =4 and p_count>0;
    

    在这里插入图片描述

    9.or

    select p_id,p_count,p_price from tb_product where p_price =4 or p_count=611;
    

    (查找p_price=4或者p_count=611的字段)
    在这里插入图片描述

    10.找出p_count >0并且p_price=3或者p_price=4

    select p_id,p_count,p_price from tb_product where p_count>0 and (p_price=3 or p_price=4);
    

    注意:and优先级高,or要使用括号括起来

    11.in(相当于多个or)

    mysql> select p_id,p_count,p_price from tb_product where p_count in(876,611);
    

    使用or的写法

    mysql>select p_id,p_count,p_price from tb_product where p_count = 876 or p_count = 611;
    

    在这里插入图片描述

    12.not in

    mysql> select p_id,p_count,p_price from tb_product where p_count not in(876,611);
    

    在这里插入图片描述

    13.like
    称为模糊查询,支持%或下划线匹配
    %匹配任意多个字符
    下划线:任意一一个字符。
    (8是一个特殊的符号,也是一 一个特殊符号)

    13.1找出p_count以6结尾的

    mysql> select p_count from tb_product where p_count like '%6';
    

    在这里插入图片描述

    13.2找出以4开头的p_count

    mysql> select p_count from tb_product where p_count like '4%';
    

    在这里插入图片描述

    13.3找出第二个数为1的产品

    mysql> select p_count from tb_product where p_count like '_1%';
    

    在这里插入图片描述

    13.4找出第三个数为6的产品

    mysql> select p_count from tb_product where p_count like '__6%';
    

    在这里插入图片描述

    13.5找出p_count中含有6的产品

    mysql> select p_count from tb_product where p_count like '%6%';
    

    在这里插入图片描述

    展开全文
  • 如何对 Excel 中的数据使用 SQL 查询

    千次阅读 2021-06-22 08:08:07
    对于某些有 SQL 经验的人来讲,如果能直接用 SQL 查询数据就方便多了。 比如下面这张销售订单表: A B C D E 1 sales 2009-2013 2 OrderID Client SellerId Amount ...

    Excel 提供了 Filter、透视表、Subtotal 等内置查询功能,但这些界面操作有时反而比较繁琐,也不够灵活。对于某些有 SQL 经验的人来讲,如果能直接用 SQL 查询数据就方便多了。

    比如下面这张销售订单表:

     ABCDE
    1sales 2009-2013
    2OrderIDClientSellerIdAmountOrderDate
    326TAS12142.42009-08-05
    433DSGC1613.22009-08-14
    584GC188.52009-10-16
    6133HU11419.82010-12-12
    732JFS34682009-08-13
    839NR330162010-08-21
    943KT321692009-08-27
    1071JFE3240.42010-10-01
    1199RA31731.22009-11-05
    12440312010-07-29

    目标:求2009 年每个销售员(C 列)的订单数,结果贴在 G 到 H 列。如下图:

     ABCDEFGH
    1sales 2009-2013   
    2OrderIDClientSellerIdAmountOrderDate selleridorderNum
    326TAS12142.42009-08-05 13
    433DSGC1613.22009-08-14 33
    584GC188.52009-10-16 
    6133HU11419.82010-12-12   
    732JFS34682009-08-13   
    839NR330162010-08-21   
    943KT321692009-08-27   
    1071JFE3240.42010-10-01   
    1199RA31731.22009-11-05   
    12440312010-07-29   

    如果用SQL 就是一句:select sellerid,count(1) orderNum from table_name where year(OrderDate)=2009 group by sellerid,非常简单。

    下面我们来看如何在Excel 里使用 SQL 查询计算数据。

    1. 打开集算器

    2. 用Excel 打开需要计算的文件,比如上例。

    3. 选中A2:E12 区域,按 ctrl+C 复制到剪贴板。

    4. 切换到集算器,选中A1 格,注意要让光标落到 A1 的编辑状态中,用 ctrl+V,将数据粘贴进 A1 格。

     

     

    5. 在集算器的A2 格中填入 SQL 语句:$select sellerid,count(1) orderNum from {A1.import@t()} where year(OrderDate)=2009 group by sellerid,注意前面要有一个 $ 符号,这是集算器的约定,from 的内容要写成 {A1.import@t()},表示将 A1 里的字符串转为表格数据以便执行 SQL,@t 表示首行为列名。

     

     

    6. 按F9 执行,然后点击 A2,右侧可以看到执行结果。

     

     

    7. 按住shift(以便带上列名),在右侧点击 "copy data" 按钮,将 A2 的计算结果复制到剪贴板。

     

     

    8. 在Excel 的 G2 单元格,用 ctrl+V 粘贴结果。

    OK,大功告成。

    再举一个关联计算的例子。比如某Excel 有orders和employee这两个sheet,现在要将两个sheet关联在一起。

    前两步见上例。

    3. 选中orders sheet 中的列名和数据,Ctrl+C 复制到剪贴板,Ctrl+V 粘贴到 esProc 的 A1 单元格。

    4. 类似地,将employee sheet 复制粘贴到 esProc 的 B1 单元格。

    5. 在A2 格执行 SQL:$select o.OrderID, o.OrderDate,o.Amount, e.Name, e.Dept
    from {A1.import@t()} o left join {B1.import@t()} e on o.sellerID=e.empID

     

     

    后续步骤见上例。

     

    集算器能支持 SQL92 标准的大部分语法和函数,包括嵌套的子查询,甚至 WITH 都可以。

    展开全文
  • sql连表查询简单方式总结

    千次阅读 2021-11-06 11:26:01
    则结果中相应行右表的部分所有为空,查询结果的行数等于左表数据的行数,由于左右两表此时为一对一关系 2、右连接 right join 右外连接包括right join右表所有行,假设左表中某行在右表没有匹配,则结果中相应左...
  • A表需要根据B表进行更新。 要求: B表的每一条数据的idcard如果A表也有的话,则修改A表中的数据为B表数据,如果A表没有的话,则向A表插入该条数据。A表有,B表没有的数据则不改变。 A表、B表原始数据: 创建...
  • 简单SQL数据脱敏

    千次阅读 2020-08-04 19:53:37
    -- 脱敏姓名 UPDATE table SET `name` = (if(LENGTH(name)>2,CONCAT(LEFT(name,1), '**' ),CONCAT(LEFT(name,1), '*' ))); -- 脱敏身份证号 UPDATE table SET idNumber = (if(LENGTH(idNumber)>...
  • SQL查询重复数据,只显示其中一条 有重复数据主要有以下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件) 2....
  • SQL - 更新数据(UPDATE)

    万次阅读 2020-08-11 00:47:49
    更新数据 为了更新(修改)表中的数据,可以使用UPDATE语句。可采用两种方式使用UPDATE: 更新表中特定行。 更新表中所有行。 下面分别对它们进行介绍。 不要省略WHERE子句 在使用UDDATE时一定要注意细心。因为稍不...
  •     使用SSMS界面方式进行数据的添加修改删除操作比较简单,因此只在此进行介绍,内容分主要使用SQL方式讲解。     展开“数据库”,打开相应的数据库,然后再展开“表”,,右击需要操作的数据表,选择...
  • plsql-数据查询(一、简单查询

    千次阅读 2021-10-29 15:19:17
    一、简单查询 二、条件查询 三、排序查询 四、分组查询 五、完整的查询语句 oracle数据库 一、简单查询 1.简单查询语法: SELECTCOL_NAME1,COL_NAME2,… FROMTB_NAME ; 2.语法解释: 从数据源TB_NAME中...
  • SQL简单查询语句之模糊查询

    千次阅读 2020-10-29 15:58:10
    sql中,可以根据某些特定的条件进行模糊查询,比方说要查找咦某个字母开头的昵称,或者一组类似的数据等。我们用字段like表示相似,来进行模糊查询。 在模糊查询中,%表示任意字符,_表示一个字符。 下面直接上...
  • sql语句实现简单查询以及索引查询

    万次阅读 2017-10-30 21:03:30
     简单查询:是根据SQL语句中的条件进行查询,采用的手法是遍历查询,选出符合条件的记录;  索引查询如同书的目录一样,可以直接定位查询的位置,加快查询的速度;  二、SQL语句实现  简单查询:  select ...
  • SQL 查询指定行数的数据

    万次阅读 2019-06-15 18:30:13
    今天遇到一个关于“查询指定行数的数据”的sql查询语句问题,突然发现以前没怎么接触过,刚才想起来了,赶紧看了下文档,又上网搜了下,有了下面的东西,不知道有没有什么地方不对?oracle:先看一下文档中关于any和...
  • SQL数据更新操作(增、删、改)

    千次阅读 2020-04-08 17:46:05
    SQL简单查询语句 SQL语句练习题 数据更新 增(数据的增加) 语法: INSERT INTO 表名称 [(字段1,字段2,字段3,...)] VALUES(值1,值2,值3,...) 注意: 如果需要进行增加数据的话,则以下的几种数据类型要...
  • SQL 多条件批量查询

    千次阅读 2022-02-14 17:17:29
    我想到的做法就是:遍历这个 待插入的批量数据,每一个按照代码和号码去数据库中查询,查到了就跳过,没查询到就新增。但是这个 待插入的批量数据 可能很大,我要遍历他,然后循环的去数据库中按照代码、号码查询,...
  • 怎样用sql语言删除一行数据SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法DELETE FROM 表名称 WHERE 列名称 = 值①将数学系全体学生的成绩删除 。执行语句:操作...
  • 最近做web的时候遇到一个问题,在对列表数据进行查询时,会有多个查询条件,有些查询条件有数据,有些查询条件则为空,某个查询条件为空时则要默认查询此字段下的全部数据,这样的SQL查询语句该怎么写呢?...
  • SQL语句实现简单的多表查询

    万次阅读 2020-11-27 17:17:31
    一、简单的多表联查(inner join,left join,right join) 1、 两表联查 user_table表 department表 1、inner join代表内连接,数据显示内容以外键为准,意思就是外键没有的,数据就不显示。 select user_table....
  • 在可以确定时哪种类型时我们使用简单sql就可以解决。 ORACLE-SQL: 如: select * from ( select * from t_table a where a.tpye=? order by a.time desc ) where rownum=1; MYSQL-SQL: 如: select * from t...
  • PyODPS是MaxCompute的Python版本的SDK,提供简单方便的Python编程接口。PyODPS支持类似Pandas的快速、灵活和富有表现力的数据结构。您可以通过PyODPS提供的DataFrame API使用Pandas的数据结果处理功能。本文用于帮助...
  • SQL语言中的子查询

    千次阅读 2022-04-28 10:49:05
    查询可以嵌套在另外一个子查询中,SQL Server最多支持32个嵌套级别 嵌套子查询的例子: 查找价格高于'上海永久'和'凤凰'品牌的所有产品的平均定价的产品。 第一步: 子查询以获取品牌名称为 '上海永久' 和 '...
  • SQL查询JSON格式的数据

    万次阅读 2018-11-09 15:12:25
    上面的tab1是行程和出差补助这两大列的数据 tab2是票据的数据 返回的 这两个格式是json格式的数组字符串 ,然后json格式字符串转对象就很简单啦 //将表格json数据转成集合 JSONArray jsonarray1 = JSONArray...
  • SQL如何删除重复数据

    千次阅读 2022-05-17 07:36:15
    SQL如何删除重复数据
  • SQL Server-插入数据

    千次阅读 2022-03-10 23:21:31
    SQL Server-插入数据1、插入完整的行1.1、基本的insert语法(语法简单,并不安全)1.2、更安全的insert语法2、插入部分行3、插入检索出的数据4、从一个表复制到另一个表4、全部代码 在进行下面的操作前,先在数据库...
  • SQL Server 查询分析工具

    千次阅读 2020-05-01 16:48:37
    SQL Server 查询如何查看执行时间,性能占用如何?
  • SQL查询语句(从单表到多表、从简单到复杂)

    千次阅读 多人点赞 2021-06-06 22:41:08
    数据库sql语句及字段名不区分大小写,值必须一一对应 1.创建三张表,学生表、选课表、成绩表 CREATE TABLE student (Sno varchar(20) NOT NULL, Sname varchar(20) NOT NULL, sex varchar(20) NOT NULL, age ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 991,899
精华内容 396,759
热门标签
关键字:

数据更新与sql简单查询