免责申明:写这篇文章的初衷只是为了让我自己更好地掌握相关的知识。所以不保证对错。欢迎批评指教。
mysql主要用select进行数据的检索,可以检索出一列,多列,一个表。如:
select column from table #检索某一列
select columns from table #检索某几列
select * from from table #检索整个表
*号是通配符,返回的结果是整个表。在实际应用中,返回整个表的情况比较少见,除了要看整个表的所有列的情况外,不然列出整个表会导致mysql工作效率低下。
数据检索最经常用到的就是where子句了。如
select column from table where column=**
#**表示某条件,可以是数值或者文本,文本要加单引号
数据检索经常要过滤数据,主要用到的函数包括order by,操作符,and,or,in,not。
order by用于排序操作,默认升序,在其后家desc改变为降序。用在where之后,然后经常和limit搭配,这样可以进行简单的排序操作。
select prod_name from products order by prod_name limit 1
解析:取最小值。升序排序后取第一个数据。
select prod_name from products where prod_name <10 order by prod_name limit 2,3
解析:升序排序后从第二行开始取三行。
操作符包括=,<>,!=,,>=,between,and,or,in,not等。如:
select prod_name from products where prod_name <10
select prod_name from products where prod_name =(10,12)
select prod_name from products where prod_name between 10 and 20
select prod_name,prod_id from products where prod_name=10 and prod_id=556
select prod_name from products where prod_name in (10,12)
select prod_name from products where prod_name not in (10,12)
模糊过滤要使用通配符“%”或者“_”,经常和操作符LIKE搭配使用
"%"在搜索模式中能匹配任意个字符,可以用在搜索模式中的任意位置。如
select prod_name from products where prod_name LIKE “%jet”
select prod_name from products where prod_name LIKE “s%t”
解析:返回prod_name列中后面带有jet的字符串。
返回返回prod_name列中第一个是s,最后一个是t的字符串。当然“%”也可以代表没有字符串。
“_”在搜索模式中只能代替一个字符,用法和“%”基本一样。
需要注意的是,通配符很强大,但是使用通配符进行搜索的效率比较低,特别是当通配符在字符串的第一个位置时,这种情况一定要避免。
需要注意的是:当and和or一同使用时,and优先级更高,所以在使用and和or
时一定要使用圆括号规范计算的等级。