mysql 查询
2015-12-21 11:03
387 查看
查询数据:select s_name from student limit 1;//限制数量
select * from student where s_id in (select s_id from student where s_id is not null);
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
你可以在WHERE子句中指定任何条件。
你可以使用AND或者OR指定一个或多个条件。
WHERE子句也可以运用于SQL的 DELETE 或者 UPDATE 命令。
WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
以下为操作符列表,可用于 WHERE 子句中。
下表中实例假定 A为10 B为20
如果我们想再MySQL数据表中读取指定的数据,WHERE 子句是非常有用的。
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
实例
以下实例将读取 tutorials_tbl 表中 tutorial_author 字段值为 Sanjay 的所有记录:
除非你使用 LIKE 来比较字符串,否则MySQL的WHERE子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定WHERE子句的字符串比较是区分大小写的。
如下实例
select * from student where s_id in (select s_id from student where s_id is not null);
MySQL where 子句
我们知道从MySQL表中使用SQL SELECT 语句来读取数据。如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
语法
以下是SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
你可以在WHERE子句中指定任何条件。
你可以使用AND或者OR指定一个或多个条件。
WHERE子句也可以运用于SQL的 DELETE 或者 UPDATE 命令。
WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
以下为操作符列表,可用于 WHERE 子句中。
下表中实例假定 A为10 B为20
操作符 | 描述 | 实例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
从命令提示符中读取数据
我们将在SQL SELECT语句使用WHERE子句来读取MySQL数据表 tutorials_tbl 中的数据:实例
以下实例将读取 tutorials_tbl 表中 tutorial_author 字段值为 Sanjay 的所有记录:
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl WHERE tutorial_author='Sanjay'; +-------------+----------------+-----------------+-----------------+ | tutorial_id | tutorial_title | tutorial_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 3 | JAVA Tutorial | Sanjay | 2007-05-21 | +-------------+----------------+-----------------+-----------------+ 1 rows in set (0.01 sec) mysql>
除非你使用 LIKE 来比较字符串,否则MySQL的WHERE子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定WHERE子句的字符串比较是区分大小写的。
如下实例
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl \ WHERE BINARY tutorial_author='sanjay'; Empty set (0.02 sec) mysql> 例1,查询name字段中包含有“明”字的。 select * from table1 where name like '%明%' 例2,查询name字段中以“李”字开头。 select * from table1 where name like '李*' 例3,查询name字段中含有数字的。 select * from table1 where name like '%[0-9]%' 例4,查询name字段中含有小写字母的。 select * from table1 where name like '%[a-z]%' 例5,查询name字段中不含有数字的。 select * from table1 where name like '%[!0-9]%'
相关文章推荐
- mysql 表日常变化前几
- Mysql5.5安装
- 采用Atlas+Keepalived实现MySQL读写分离、读负载均衡
- mysqldump的一个小小问题
- mysql小问题
- 源码安装mysql
- mysql错误代码1045的解决方案
- Mysql中间件研究(Atlas,cobar,TDDL)
- 阿里云服务器之mysql
- Mysql 创建数据库表(删除,删除,插入)
- Mysql 数据类型
- MySql 优化小结
- Mysql 性能查询命令
- MySQL Performance-Schema(三) 实践篇
- mysql性能优化之索引优化
- MySQL 部分函数使用
- mysql中去除重复字段-distinct
- mysql性能优化之索引优化
- mysql 索引 index range
- mysql在第一次查询的时候很慢,第二次查询就比较快的原因?