MySQL SELECT语句使用技巧大全

普通查询(SELECT 语句用于从数据库中选取数据)

SELECT FROM 语法用于从数据表中查询读取数据。

语法:

 代码如下 复制代码

SELECT column1,column1,... FROM tb_name

如果要读取全部字段,可以使用 * 号代替字段名:

SELECT * FROM tb_name

记录一些select的技巧:

1、select语句可以用回车分隔

 代码如下 复制代码
$sql="select * from article where id=1"
和 $sql="select * from article

where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时

2、批量查询数据
可 以用in来实现

 代码如下 复制代码
$sql="select * from article where id in(1,3,5)"

3、 使用concat连接查询的结果

 代码如下 复制代码
$sql="select concat(id,"-",con) as res from article where id=1"

返回"1-article content"

4、使用locate
用 法:

 代码如下 复制代码
select locate("hello","hello baby");返回1

不存在返回0

5、使用 group by
以前一直没怎么搞明group by 和 order by,其实也满简单的,group by 是把相同的结果编为一组

 代码如下 复制代码
exam:$sql="select city ,count(*) from customer group by city";

这句话的意思就是从customer表里列出所有不重复的城市,及其数量(有点类似distinct)
group by 经常与AVG(),MIN(),MAX(),SUM(),COUNT()一起使用

6、使用having
having 允许有条件地聚合数据为组

 代码如下 复制代码
$sql="select city,count(*),min(birth_day) from customer
group by city having count(*)>10";

这句话是先按city归组,然后找出city地数量大于10的城市
btw: 使用group by + having 速度有点慢
同时having子句包含的表达式必须在之前出现过

7、组 合子句

 代码如下 复制代码
where、group by、having、order by
 代码如下 复制代码
select articlecategory_id,count(*) from article group by articlecategory_id having count(*)<5;

(如果这四个都要使用的话,一般按这个顺序排列)

8、 使用distinct
distinct是去掉重复值用的

 代码如下 复制代码
$sql="select distinct city from customer order by id desc";

这句话的意思就是从customer表中查询所有的不重复的city

9、 使用limit
如果要显示某条记录之后的所有记录

 代码如下 复制代码
$sql="select * from article limit 100,-1";

10、多表查询

 代码如下 复制代码
$sql="select user_name from user  u,member  m
where u.id=m.id and
m.reg_date>=2006-12-28
order by u.id desc"
 代码如下 复制代码
 代码如下 复制代码
 
SELECT
p.name, count(*)
FROM
unicom_record AS ur
Left Join sheet AS s ON ur.sheet_id = s.id
Left Join promotion_addr AS p ON s.promotion_addr_id = p.id
WHERE
ur.status =? ‘COMPLETE’ AND
ur.`date` >=? ’2010-03-01′ AND
ur.`date` <? ’2010-04-01′
GROUP BY
p.id

注意:如果user和member两个标同时有user_name字段,会出现mysql错误(因为mysql不知 道你到底要查询哪个表里的user_name),必须指明是哪个表的;

11.与php结合查询

例子:

 代码如下 复制代码

<?php
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
    die("连接数据库失败:" . mysql_error());
}

mysql_select_db("test", $conn);
mysql_query("set character set 'gbk'");   //避免中文乱码字符转换
mysql_query("set character set 'utf8'");   // PHP 文件为 utf-8 格式时使用
$sql = "SELECT * FROM user";
$result = mysql_query($sql);                //得到查询结果数据集

//循环从数据集取出数据
while( $row = mysql_fetch_array($result) ){
    echo "用户名:".$row['username']."<br />";
    echo "电子邮件:".$row['email']."<br />";
    echo "注册日期:".date("Y-m-d", $row[regdate])."<br /><br />";
}
?>

浏览器输出:

用户名:admin
电子邮件:admin@5idev.com
注册日期:2010-08-06

用户名:小明
电子邮件:xiao@163.com
注册日期:2010-07-02

用户名:Jack
电子邮件:jack@gmail.com
注册日期:2010-07-02

用户名:小王
电子邮件:12345@163.com
注册日期:2010-11-13

时间: 2024-12-27 02:03:50

MySQL SELECT语句使用技巧大全的相关文章

Mysql查询语句优化技巧_Mysql

索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等.这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录. 查询的开销指标: 执行时间 检查的行数 返回的行数 建立索引的几个准则: (1).合理的建立索引能够加速数据读取效率,不合理的建立索引反而会拖慢数据库的响应速度. (2).索引越多,更新数据的速度越慢. (3).尽量在采用MyIsam作为引擎的时候使用索引(因为My

MySQL Select 语句检索记录使用详解

数据库最普遍的操作就是"插.查.删,改".在前在的日志中,我为大家介绍过MySQL的 insert 插入语句,也为大家介绍过 update 更新语句,以及删除语句 delete 和 truncate语句.今天就为大家来介绍一下,MySQL中唯一的检索数据语句:select语句. select 语句是SQL开发者最常用的语句,也是最强大的武器,幸运在的是,学习这个语句并不是很难. select 语句的定义: 一切都要遵循规矩来办事,所以和之前的教程一样,我们先来看一下手册上面说的 sel

mysql select语句操作实例_Mysql

Select的语法 复制代码 代码如下: SELECT     [ALL | DISTINCT | DISTINCTROW ]       [HIGH_PRIORITY]       [STRAIGHT_JOIN]       [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]       [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]     select_expr, ...    

mysql SELECT语句去除某个字段的重复信息_Mysql

SELECT语句,去除某个字段的重复信息,例如: 表名:table id uid username message dateline 1 6 a 111 1284240714(时间戳) 2 6 a 222 1268840565 3 8 b 444 1266724527 4 9 c 555 1266723391 执行语句(去除username字段重复信息并按时间排序): SELECT * FROM table a INNER JOIN ( SELECT max( dateline ) AS dat

Mysql select语句设置默认值的方法_Mysql

1.在没有设置默认值的情况下: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果: 设置显示默认值: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, IFNUL

10个mysql中select语句的简单用法_Mysql

1.select语句可以用回车分隔 $sql="select * from article where id=1" 和 $sql="select * from article where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时 2.批量查询数据 可以用in来实现 $sql="select * from article where id in(1,3,5)" 3.使用concat连接查询的结果 $

MySQL的SELECT语句技巧

以下的文章主要描述的是MySQL SELECT使用技巧大全,MySQL SELECT在实际中的应用比例还是占为多数的,如果你对这一新开发的技术,心存好奇的话,以下的文章将会揭开它的神秘面纱. 记录一些select的技巧: 1.select语句可以用回车分隔 $sql="select * from article where id=1" 和 $sql="select * from article where id=1" ,都可以得到正确的结果,但有时分开写或许能更明了

MySQL查询语句大全集锦_Mysql

1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TAB

MySQL中select语句介绍及使用示例

数据表都已经创建起来了,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,下面为大家讲解下MySQL中select语句的应用,感兴趣的碰可以学习下   数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from president; 也可以只选取某一个数据行里的某一个数据列 select birth from president where las