当前位置: Oracle DBA培训网-优技培训 >> MySQL培训 > MySQL培训教程 >

MySQL基础教程:查询数据select语句

MySQL基础教程:查询数据select语句

MySQL基础教程:查询数据select语句,当数据库中存放了大量数据时,在SELECT语句的结果中分屏查找数据是非常麻烦的一件事情。有时,我们也不清楚所查询列的精确完整值是什么。这种情况下,可以使用LIKE操作符。假设books表中已经输入了数千条记录,一名顾客说他想查询某本书,但他并不记得书的作者名或标题,而只记得标题中的关键字traveler和winter。我们可以基于这些仅有的信息,通过如下SQL语句查询数据库:

  1. SELECT book_id, title,  
  2. CONCAT(author_?rst, ' ', author_last) AS author  
  3. FROM books  
  4. JOIN authors USING(author_id)  
  5. WHERE title LIKE '%traveler%' 
  6. AND title LIKE '%winter%';  
  7.  
  8. +---------+-----------------------------------+---------------+  
  9. | book_id | title | author |  
  10. +---------+-----------------------------------+---------------+  
  11. | 1400 | If on a winter's night a traveler | Italo Calvino |  
  12. +---------+-----------------------------------+---------------+ 

在LIKE操作符后,我们使用了二次通配符%表示我们将查询这些行,该行的title列的值包含字符串traveler,traveler前可以有零个或多个字符(前一个%),traveler后也可跟着零个或更多的字符(结尾处的%)。换种说法,单词traveler必须包含在列的值中。子句的下一部分表示winter也要包含在同一列的值中。另外,LIKE关键字与等号一样,它们都是操作符。

如果另一顾客要求我们在数据库中查询GrahamGreene的作品中标题包含单词Stamboul或Orient的图书信息,可以按照如下所示,在表达式中使用OR操作符:

  1. SELECT book_id, title  
  2. FROM books  
  3. WHERE author_id = 1  
  4. AND title LIKE '%Stamboul%' 
  5. OR author_id = 1  
  6. AND title LIKE '%Orient%'

既然我们已经知道了作者的标识码,上面的语句就变得更简洁了,只对一个表操作就可以。值得注意的是,在每个表达式中都要指定author_id的值,否则我们可能会得到其他作者的作品名中包含查询字符的图书信息。关于操作符的更多信息,可参见附录B。在第6章中可以看到更多的示例以及搜索数据的可行方法。

技术沙龙MORE+

Oracle技术沙龙:【数据保护顶尖技术-MAA】首次全国首播12c MAA技术 云数据库加上MAA技术组成最豪华的技...
Oracle技术沙龙第49期:【Oracle 数据库云技术分享】Oracle技术沙龙第49期:【Oracle 数据库云技术分享】本次技术沙...
Oracle技术沙龙第48期:【Oracle 12c RAC安装】小编:今天讲什么内容呢?以后有什么用呢? 大师:今天讲的是12c...
我要参加技术沙龙