MYSQL的select 学习笔记

记录一些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(如果这四个都要使用的话,一般按这个顺序排列)

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

(0)

相关推荐

  • MySQL学习笔记4:完整性约束限制字段

    完整性约束是对字段进行限制,从而符合该字段达到我们期望的效果比如字段含有默认值,不能是NULL等 直观点说:如果插入的数据不满足限制要求,数据库管理系统就拒绝执行操作 设置表的主键 主键能够标识表中每条信息的唯一性,如同身份证号码和人的关系 人可以同名,但是身份证号码却是唯一的, 创建主键的目的在于快速查找到表中的某一条信息 单字段主键 复制代码 代码如下: mysql> create table student( -> id int primary key, -> name varch

  • MySql官方手册学习笔记2 MySql的模糊查询和正则表达式

    SQL模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零字符).在 MySQL中,SQL的模式默认是忽略大小写的.下面给出一些例子.注意使用SQL模式时,不能使用=或!=:而应使用LIKE或NOT LIKE比较操作符. 要想找出以"b"开头的名字: mysql> SELECT * FROM pet WHERE name LIKE 'b%';+--------+--------+---------+------+---

  • Mysql存储过程学习笔记--建立简单的存储过程

    一.存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户 通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.而我们常用的操作数据库语言SQL语句在执行的时 候需要要先编译,然后执行,所以执行的效率没有存储过程高. 存储过程优点如下: 重复使用.存储过程可以重复使用,从而可以减少数据库开发人员的工作量.提高性能.存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译.一般的SQL语句每执

  • MySQL学习笔记1:安装和登录(多种方法)

    今天开始学习数据库,由于我对微软不怎么感冒,所以就不用他家的产品了本来想装ORACLE的,不过太大了,看着害怕对于我这种喜欢一切从简的人来说,MySQL是个不错的选择好了,关于数据库的大理论我就懒得写了,那些考试必备的内容我已经受够了我只需要知道一点,人们整理数据和文件的行为在不断进化,以至现在使用数据库来更好的管理 下面我们开始安装 我使用的是Linux Mint,基于Ubuntu的一种发行版,用起来的确不错 由于有现成的包管理工具使用,我就不从官网下载编译安装了 一条命令搞定: 安装过程中会

  • MySQL学习笔记5:修改表(alter table)

    我们在创建表的过程中难免会考虑不周,因此后期会修改表修改表需要用到alter table语句 修改表名 复制代码 代码如下: mysql> alter table student rename person; Query OK, 0 rows affected (0.03 sec) 这里的student是原名,person是修改过后的名字 用rename来重命名,也可以使用rename to 修改字段的数据类型 复制代码 代码如下: mysql> alter table person modi

  • MySQL定时器EVENT学习笔记

    要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1 -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; -- 开启定时器 0:off 1:on SET GLOBAL event_scheduler = 1; -- 创建事件 --每隔一秒自动调用e_test()存储过程 CREATE EVENT IF NOT EXISTS event_test ON SCHEDULE EVERY 1 SECOND ON COMPLETI

  • MySQL学习笔记3:表的基本操作介绍

    要操作表首先需要选定数据库,因为表是存在于数据库内的 选择数据库 mysql> use school; Database changed 选择好数据库之后,我们就可以在此数据库之中创建表了 创建表 mysql> create table student( -> id int, -> name varchar(20), -> sex boolean -> ); Query OK, 0 rows affected (0.11 sec) create table用于创建表,后

  • MySQL学习笔记2:数据库的基本操作(创建删除查看)

    我们所安装的MySQL说白了是一个数据库的管理工具,真正有价值的东西在于数据关系型数据库的数据是以表的形式存在的,N个表汇总在一起就成了一个数据库现在来看看数据库的基本操作 无非就是三点:创建 删除 查看 创建数据库 复制代码 代码如下: mysql> create database school; Query OK, 1 row affected (0.00 sec) create database语句用于创建数据库 后面的school是数据库的名字,分号结束 执行成功则会显示Query OK

  • Mysql源码学习笔记 偷窥线程

    感觉代码有些凌乱,注释代码都写的比较随意,好像没有什么统一的规范,不同的文件中代码风格也有差异,可能Mysql经过了很多牛人的手之后,集众牛人之长吧.也可能是我见识比较浅薄,适应了自己的代码风格,井底之蛙了,总之还是怀着敬畏的心情开始咱的源码之旅吧.本人菜鸟,大神轻拍. Mysql可以启动起来了,应该怎么学习呢?总不能从main开始一步一步的看吧,Mysql作为比较底层的大型软件,涉及到数据库实现的方方面面,没有厚实的数据库理论基础和对Mysql各个模块相当的熟悉,从main开始势必会把自己引入

  • MySql官方手册学习笔记1 MySql简单上手

    连接与断开服务器 连接服务器通常需要提供一个MySQL用户名并且很可能需要一个 密码.如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名: shell> mysql -h host -u user -pEnter password: ******** host代表MySQL服务器运行的主机名,user代表MySQL账户用户名,******** 代表你的密码. 如果有效,你应该看见mysql>提示符后的一些介绍信息: shell> mysql -h host -u user -p

  • 一千行的MySQL学习笔记汇总

    本文详细汇总了MySQL学习中的各类技巧,分享给大家供大家参考. 具体如下: /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables -- 修改root密码 密码加密函数password() update mysql.user set password=password('root'); SHOW PROCE

随机推荐