当前位置: 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+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙