Chinaunix首页 | 论坛 | 博客
  • 博客访问: 128902
  • 博文数量: 70
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 18:53
文章分类
文章存档

2015年(8)

2014年(14)

2011年(1)

2010年(21)

2009年(26)

我的朋友

分类: 数据库开发技术

2010-01-19 14:47:08

最全的mysql 查询语句

-- 基本查询
select * from pet

--
列出指定的列
select name, owner form pet

--
直接进行算术运算,对字段起别名
select sin(1+2) as sin

--where
条件
select * from pet where (birth>'1980' and species='dog') or species='bird'

--
null 的条件
select * from pet where sex is not null

--
所有名字第四位是n 的宠物信息是
select * from pet where owner like '___n%'


--
所有主人名叫gwenbenny 的宠物
select * from pet where owner in ('gwen' , 'benny')

--
查询出生日期在90 年代是宠物,相当与 >= and   <=
select * from pet where birth between '1990' and '1999'

--
按主人姓名排序,相同的按宠物姓名倒序排列
select * from pet order by owner, name desc

--
查询性别为公的宠物,按生日倒序排列
select * from pet where sex='m' order by birth desc

--char_lenngth()
返回的字符的长度,length() 返回字节长度
SELECT owner,length(owner),char_length(owner) FROM pet p;



--
列出养有宠物狗的人名
select distinct owner from pet where species='dog'

--
用两种方法查询出所有狗和猫的名字、出生年份、出生月份
select name, left(birth,4) as year, mid(birth, 6, 2) as month from pet
where species='dog' or species='cat'

select name, year(birth) as year, month(birth) as month from pet
where species in('dog','cat')

--
查询所有名字中存在字母'e' 的人,将他们养的宠物按类别、年龄排序
select name, species, birth
from pet
where owner like '%e%'
order by species,birth desc

--
数字函数
select round(2.345,2), truncate(2.345,2), mod(323,5)

--
日期函数
select now(), curdate(), curtime()

select adddate('2007-02-02', interval 31 day)

--
求出所有宠物的年龄
select name,birth,
truncate(datediff(now(),birth)/365,0) as age1,
year(now())-year(birth) - (dayofyear(birth)>dayofyear(now())) as age2
from pet

--
分组函数
select min(birth),max(birth),avg(birth),count(*),count(sex),
sum(birth)
from pet

--
每种宠物各有几只
select species,count(*)
from pet
group by species

--
查询年龄最大的宠物的信息
select * from pet where birth =
   (select max(birth) from pet)

--
每年各出生了几只宠物
select year(birth), count(*) from pet group by year(birth)

--
鸟和猫的性别比例
select species, sex, count(*)
from pet
where species in ('cat','bird')
group by species, sex

--
各种宠物年龄的和
select species, sum(truncate(datediff(now(),birth)/365,0)) as SumAge
from pet
group by species

--
数量大于1 的宠物种类
select species, count(*) as c
from pet
group by species
having c>=2

--
基本双表关联
select a.name,a.species, a.sex,b.date, b.type, b.remark
from pet a,event b
where a.name = b.name

--
查询宠物产仔时的年龄
select a.name, a.species,
truncate(datediff(b.date,a.birth)/365,0) as age
from pet a,event b
where a.name = b.name and b.type='litter'

--90
年代出生的狗的事件列表
select a.name,birth,species,sex,date,type,remark
from pet a,event b
where a.name=b.name and birth between '1990' and '1999'
and species='dog'

--
活着的宠物按发生的事件类型分组,看各种事件发生的次数
select type, count(*)
from pet a, event b
where a.name=b.name and a.death is null
group by type

--
记录的事件数量超过1 条的宠物信息
select a.name,species,sex,count(*)
from pet a, event b
where a.name = b.name
group by b.name
having count(*)>=2

--
列出发生了两件事情的宠物的事件记录信息
select a.name,type,date,remark,b.species,b.sex,b.owner
from event a, pet b
where a.name=b.name and
   b.name in
   (
select name
from event
group by name
having count(*)=2
   )


--
插入语句
insert into pet (name,species,birth)
values ('KKK','snake','2007-01-01');

insert into pet
values ('KK','Diane','cat','f',null,null);

insert into pet set name='k',owner='Benny'


--
更新语句
update pet set species='snake',sex='f',birth=now()
where name='k'

--
将事件表中生日的日期,更新到pet 表中相应宠物的birth 字段
update pet a
set birth = (
             select date
             from event b
             where a.name=b.name and b.type='birthday'
         )
where a.name in (
               select name
               from event
               where type='birthday'
            )


--
删除语句
delete from pet where name like 'k%'

阅读(600) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~