您的位置:首页 > 数据库 > MySQL

MYSQL查询语句全集

2012-05-17 02:27 204 查看
--列出pet所有的列 select * from pet

--列出指定的列 select name, owner from 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%'

--所有主人名叫gwen或benny的宠物

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%'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: