草庐IT

Select基础查询

技术老男孩 2023-09-28 原文

一、select命令格式

查看表里的行:select 表头名列表 from 库名.表名;
查看表里与条件匹配的行:select 表头名列表 from 库名.表名 where 查询条件 ;

二、where的基础条件

分类 命令/符号/... 说明
数值比较 = 相等
!= 不相等
> 大于
>= 大于等于
< 小于
<= 小于等于
字符比较 = 相等比较
!= 不相等比较
空与非空 is null 判断是否为空
(NULL,null)表示空
is not null 判断是否不为空
("","null","NULL")表示非空
范围匹配 in ("T1",T2) 在…里
not in ("T1",T2) 不在…里
between 数字1 and 数字2 在…之间
模糊匹配 like “表达式” 常用通配符:_表示 1个字符
%表示零个或多个字符
正则匹配 regexp “正则表达式” 通过正则来匹配查询内容
常用正则:^ $ [] * | .
逻辑匹配 and 或者 && 逻辑与:多个判断条件必须同时成立
or 或者 || 逻辑或:多个判断条件其中某个条件成立即可
not 或者 ! 逻辑非:取反
  • 注意:逻辑与and 的优先级要高于逻辑或 or ,如果在筛选条件里既有and又有or 先判断and再判断or,也可以使用()提高优先级判断

三、select...where匹配示例:

  • 字符比较-查找例子
mysql> select  name  from  tarena.user where name="apache" ;
+--------+
| name   |
+--------+
| apache |
+--------+
1 row in set (0.00 sec)
  • 范围匹配-查找例子
mysql> select name , uid  from  tarena.user where  uid  in (1 , 3 , 5 , 7);  
+------+------+
| name | uid  |
+------+------+
| bin  |    1 |
| adm  |    3 |
| sync |    5 |
| halt |    7 |
+------+------+
  • 模糊匹配-查找例子
# 找名字必须是3个字符的 (没有空格挨着敲)
mysql> select name from  tarena.user where  name like "___"; 
+------+
| name |
+------+
| bin  |
| adm  |
| ftp  |
+------+
6 rows in set (0.00 sec)
  • 正则匹配-查找例子
# 查询名字了有数字的
mysql> select name from  tarena.user where name regexp "[0-9]"; 
+-------+
| name  |
+-------+
| yaya9 |
| 6yaya |
| ya7ya |
| yay8a |
+-------+
4 rows in set (0.00 sec)
  • 逻辑匹配-查找例子
  • not between ... and ...
mysql> select  id, name,uid  from  tarena.user where id not between 10 and 20 ;
+----+-----------------+------+
| id | name            | uid  |
+----+-----------------+------+
| 28 | postfix         |   89 |
| 29 | chrony          |  998 |
| 30 | rpc             |   32 |
+----+-----------------+------+
11 rows in set (0.00 sec)

四、select 命令其他用法演示

命令/符号/... 说明
as 或 空格 定义别名使用
concat() 数据拼接
distinct 字段名列表 去重显示
  • 数据拼接:select concat("字段1","连接符","字段2")...
mysql> select concat(uid,"@",gid) from tarena.user where shell is not null;
+---------------------+
| concat(uid,"@",gid) |
+---------------------+
| 2@2                 |
| 3@4                 |
| 4@7                 |
+---------------------+
3 rows in set (0.00 sec)
  • 去重显示:select distinct 字段名列表...
mysql> select distinct shell from tarena.user;                 
+----------------+
| shell          |
+----------------+
| /bin/bash      |
| /sbin/nologin  |
| /bin/false     |
| NULL           |
+----------------+
4 rows in set (0.00 sec)
  • 输出数字
mysql> select 123 ;
+-----+
| 123 |
+-----+
| 123 |
+-----+
1 row in set (0.00 sec)
  • 输出字符
mysql> select "abc" ;
+-----+
| abc |
+-----+
| abc |
+-----+
1 row in set (0.00 sec)
  • 输出时定义列名
mysql> select "abc"  as 字母;
+--------+
| 字母   |
+--------+
| abc    |
+--------+
1 row in set (0.00 sec)
  • 查看mysql变量
# 查看所有变量
mysql> show  variables;  
# 查看指定变量的值
mysql> select @@version;  
+-----------+
| @@version |
+-----------+
| 5.7.17    |
+-----------+
1 row in set (0.00 sec)
  • 输出计算结果
mysql> select 3+5;
+-----+
| 3+5 |
+-----+
|   8 |
+-----+
1 row in set (0.00 sec)
  • 输出命令的结果
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2022-07-01 18:22:26 |
+---------------------+
1 row in set (0.00 sec)

有关Select基础查询的更多相关文章

  1. ruby - ECONNRESET (Whois::ConnectionError) - 尝试在 Ruby 中查询 Whois 时出错 - 2

    我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.

  2. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  3. ruby-on-rails - 在 Rails 和 ActiveRecord 中查询时忽略某些字段 - 2

    我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr

  4. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  5. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  6. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  7. ruby-on-rails - 事件记录 : Select max of limit - 2

    我正在尝试将以下SQL查询转换为ActiveRecord,它正在融化我的大脑。deletefromtablewhereid有什么想法吗?我想做的是限制表中的行数。所以,我想删除少于最近10个条目的所有内容。编辑:通过结合以下几个答案找到了解决方案。Temperature.where('id这给我留下了最新的10个条目。 最佳答案 从您的SQL来看,您似乎想要从表中删除前10条记录。我相信到目前为止的大多数答案都会如此。这里有两个额外的选择:基于MurifoX的版本:Table.where(:id=>Table.order(:id).

  8. sql - 查询忽略时间戳日期的时间范围 - 2

    我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时

  9. ruby-on-rails - rails 上的 ruby : radio buttons for collection select - 2

    我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/

  10. ruby-on-rails - solr 清理查询 - 2

    我在Rails上使用带有ruby​​的solr。一切正常,我只需要知道是否有任何现有代码来清理用户输入,比如以?开头的查询。或* 最佳答案 我不知道执行此操作的任何代码,但理论上可以通过查看parsingcodeinLucene来完成并搜索thrownewParseException(只有16个匹配!)。在实践中,我认为您最好只捕获代码中的任何solr异常并显示“无效查询”消息或类似信息。编辑:这里有几个“sanitizer”:http://pivotallabs.com/users/zach/blog/articles/937-s

随机推荐