mysql - select总结
来源:互联网 发布:小众软件官网 编辑:程序博客网 时间:2024/06/06 08:50
最近学习mysql, 回陆续整理我的学习笔记。没有什么技术难度,不过却在以后可以非常方便的使用。
select语句:从表中检索一个或多个数据列。使用select时,要给出两个信息--选择什么以及从什么地方选择。
下面使用column_name代表列名,table代表表名:
1. select column_name from table; //选择所有符合要求(单列)的行
2. select column_name, column_name1... from table; //选择所有符合要求(多列)的行
3. select * from table; //选择所有符合要求(所有列)的行
4. select distinct column_name from table; //选择所有符合要求的,但不同的行
上面与1的区别是:如果选择某列的结果中有相同的行,可以用distinct删除重复的,只显示不同的行
5. select column_name from table limit number; //限制结果:选择符合要求的前number个结果
6. select column_name from table limit start_row, number; //限制结果:选择符合要求的,从start_row行开始的number个结果
7. select table.column_name from database.table; //完全限定的表名、列名
8. select column_name from table order by column_name1; //选择所有符合要求的行,并对结果按column_name1进行升序排序(默认)。column_name1可以等于column_name
9. select column_name from table order by column_name1, column_name2...; //在8的基础上,对相同的行的结果按照column_name2进行升序排序(默认),以此类推
10. select column_name from table order by column_name1 desc; //选择所有符合要求的行,并对结果按column_name1进行降序排序
11. select column_name from table order by column_name desc, column_name2 desc; //如果要对多个关键字降序排序,需要在每个关键字后面加上desc
12. select column_name from table order by column_name1 limit number; //按照column_name1进行升序排序,并取结果的前number个数据
13. select column_name from table order by column_name1 desc limit number; //按照column_name1进行降序排序,并取结果的前number个数据
12、13两个可以用于取排序后最高或最低的结果。
使用select语句的where子句指定搜索条件(如果需要排序,order by应该在where子句之后):
where子句关系操作符:
1. select column_name from table where column_name1 = value; //搜索指定列column_name1的值为value的行
2. select column_name from table where column_name1 != value; //搜索指定列column_name1的值不为value的行
上述1和2中的“=”和“!=”可以根据需求替换为“<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)”。
3. select column_name from table where column_name1 between value1 and value2; //搜索指定列column_name1的值在范围value1到value2之间的行
组合where子句(op为上述的子句操作符):
1. select column_name from table where column_name1 op1 value1 and column_name2 op2 value2; //搜索指定列column_name1的值满足op1操作,并且column_name2的值满足op2操作,二者必须同时满足。and子句可以根据需求扩展为多个
2. select column_name from table where column_name1 op1 value1 or column_name2 op2 value2; //搜索指定列column_name1的值满足op1操作,或column_name2的值满足op2操作,二者中任意一个满足即可。or子句可以根据需求扩展为多个
3. select column_name from table where column_name1 op1 value1 or column_name2 op2 value2 and column_name3 op3 value3; //搜索指定列column_name2的值满足op2操作,并且column_name3的值满足op3操作,或者column_name1的值满足op1操作
特别注意:and的优先级高于or, 所以先进行and操作,再进行or操作。
如果我们希望找出满足如下条件的结果:column_name1或column_name2中任意值成立,并且满足column_name3的值成立,这时,我们需要通过添加()来提高or的优先级,如下:
select column_name from table where ( column_name1 op1 value1 or column_name2 op value2 ) and column_name3 op3 value3;
4. select column_name from table where column_name1 in ( value1, value2 ); //搜索指定列column_name1的值等于value1或value2,括号内为所有要进行匹配的清单
in操作符等价于or操作,上式等价于:
select column_name from table where column_name1 = value1 or column_name2 = value2;
5. select column_name from table where column_name1 not in (value1, value2 ); //搜索指定列column_name1的值不等于value1或value2, 括号内为所有要进行匹配的清单,not经常用于复杂的筛选中
where中使用like以及通配符
1. select column_name from table where column_name1 like '...%'; //搜索指定列column_name1中值以...(已知要匹配的内容)开头的行,%表示任何字符出现任意次数,%可以出现在要匹配内容的任意位置
2. select column_name from table where column_name1 like '_...'; //搜索指定列column_name1中值以...(已知要匹配的内容)结尾的行,_表示任何字符出现一次,_可以出现在要匹配内容的任意位置
_只匹配单个字符,而%可以匹配多个字符
特别注意:由于一般搜索匹配指定了值,而通配符的值时未知的。所以通配符搜索的处理一般要比其他搜索所花时间更长,下面是一些使用通配符的技巧:
- 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
- 在确实需要使用通配符时,除非绝对有必要,否则不要把通配符用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来时最慢的。
- 自习注意通配符的位置。如果坊错位置,可能不会返回想要的数据。
0
上一篇:编写安全代码:避免奇怪的逻辑引发的bug
下一篇:Linux内核模块传参
相关热门文章
- mysqldump备份所有数据库,恢...
- 追踪源码揪出mysql崩溃的真凶...
- mysql不能导入和创建存储过程...
- gradle编译安装引发的java安装...
- 对mysql数据结构和数据的一些...
- A sample .exrc file for vi e...
- IBM System p5 服务器 HACMP ...
- 游标的特征
- busybox的httpd使用CGI脚本(Bu...
- Solaris PowerTOP 1.0 发布
给主人留下些什么吧!~~
评论热议
0 0
- mysql - select总结
- Mysql 语言中select语句的总结
- 【Mysql】select,数据简单查询整理总结
- mysql select
- mysql--select
- MYSQL SELECT
- mysql select
- MySQL--SELECT
- mysql select
- select总结
- 7月2日总结,mysql 之select
- Mysql学习总结(40)——MySql之Select用法汇总
- mysql的select语句
- mysql的select语句
- Mysql select ..Limit操作
- mysql, select *, limit
- mysql update by select
- mysql 的select into
- 一道关于位段的面试题
- shell脚本实现对网卡流量监控
- HTTP 头部解释
- 正则表达式入门到精通
- 编写安全代码:避免奇怪的逻辑引发的bug
- mysql - select总结
- AMR 文件解析及编解码流程
- Linux内核模块传参
- 语言编程需要注意的64位和32机器的区别
- mfc中使用Tab Control控件
- MFC:Tab Control 控件中贴对话框
- [IOS 开发] NSGlobalBlock,NSStackBlock, NSMallocBlock
- 一个关于自旋锁(spin lock)问题的讨论
- 关于linux系统的USB Camera驱动说明
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
汉堡王外卖
汉堡王招聘
汉堡王外卖app
汉堡王活动
汉堡王客户调查网址
汉堡王什么好吃
汉堡王网上订餐
汉堡王皇堡
汉堡王电子优惠券
汉堡王皇堡套餐
汉堡王几点开门
汉堡王套餐
汉堡王兼职
汉堡王 优惠券
汉堡王哪个汉堡好吃
汉堡王价格
汉堡王9元汉堡
汉堡王菜单价格表
汉堡王是哪国的
汉堡王英文
汉堡王新品
汉堡王价目表
汉堡王总部电话
汉堡王冰淇淋
汉堡王公司
汉堡王logo
汉堡王广告
汉堡王热量表
汉堡王客服电话
汉堡王工作
汉堡王地址
海绵宝宝汉堡王
汉堡王24小时
汉堡王几点关门
汉堡王投诉电话
汉堡王客服
汉堡王工资
汉堡王麦当劳
汉堡王标志
汉堡王 皇堡
汉堡王 app