mysql 学习二 基本语法

本文基于你对数据库有一定的了解.
选择了数据库后就可以对库里面的表进行操作了(前提是你有权限这部分后面会将到).
假设我有个表为pet.列名有name,species,sex,owner,birth.
查看所有数据SELECT * FROM pet;
[b]选择特殊行[/b]
查看名字为Bowser的数据:SELECT * FROM pet WHERE name = 'Bowser';
查看生日在1998-1-1之后的数据:SELECT * FROM pet WHERE birth > '1998-1-1';
查看物种为狗而且性别为雌性的数据:SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
查看物种是蛇或者物种是鸟的数据:SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
当然AND和OR可以混用,但AND比OR具有更高的优先级。如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意.
查看雄性猫或者雌性狗的数据:
SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm') OR (species = 'dog' AND sex = 'f');

[b]选择特殊列[/b]
查看名称,出生日期:SELECT name, birth FROM pet;
唯一查看拥有者即拥有者只输出一次:SELECT DISTINCT owner FROM pet;

[b]选择行,选择列[/b]
同样也可以选择行并且选择列
如:SELECT name, species, birth FROM pet WHERE species = 'dog' OR species = 'cat';

[b]按日期排序[/b]
SELECT name, birth FROM test.pet ORDER BY birth asc/desc;(asc代表升序,desc为降序)
默认为asc也就是升序
同时asc,desc只能用于他前面的字段.
SELECT name, birth FROM test.pet ORDER BY name,birth asc;在该例中asc对name不起作用.

[b]模式匹配[/b]
_代表任意字符,%代表任意数量任意字符
查看以b为开头名字的数据:SELECT * FROM pet WHERE name LIKE 'b%';
查看以b为开头名字且只有两个字母的名字的数据:SELECT * FROM pet WHERE name LIKE 'b_';

[b]计数行[/b]
查看数据总条数SELECT COUNT(*) FROM pet;
查看每个人的宠物的数量:SELECT owner, COUNT(*) FROM pet GROUP BY owner;
使用count计数函数后还有其他的字段一定要有group字段,group代表分类的意思.所以如果除了count字段外还有其他字段的化一定要有group语句,否则报错.
同样也可以这样SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;

[b]多表查询[/b]
查看可以配对的动物属于自关联
SELECT p1.name,p1.sex,p2.name,p2.sex,p1.species
from test.pet p1,test.pet p2
where p1.sex='f' and p2.sex='m' and p1.species=p2.species

查看每个物种出生最晚的动物:
SELECT p1.species,p1.name,p1.birth
FROM `test`.`pet` p1
where birth=(
select max(birth)
from test.pet p2
where 1=1
and p1.species=p2.species
)

[b]数据分页[/b]
获取第3,4,5共3条记录:SELECT * FROM `test`.`pet` limit 2,3;

union 和union all
union相当于or
而union all相当与不去重的union
SELECT owner,name,species
FROM `test`.`pet`
where 1=1
and sex='f'
union
SELECT owner,name,species
FROM `test`.`pet`
where 1=1
and species='bird'
相当于
SELECT owner,name,species
FROM `test`.`pet`
where 1=1
and sex='f' or species='bird'

由于有一条记录既是鸟而且性别是雌性所以在union all比union中多一条重复的记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值