mysql 学习2 基本语法

mysql 学习二 基本语法

   本文基于你对数据库有一定的了解.

   选择了数据库后就可以对库里面的表进行操作了(前提是你有权限这部分后面会将到).

假设我有个表为pet.列名有name,species,sex,owner,birth.

查看所有数据SELECT * FROM pet;


选择特殊行

查看名字为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’);

选择特殊列

查看名称,出生日期:SELECT name, birth FROM pet;

唯一查看拥有者即拥有者只输出一次:SELECT DISTINCT owner FROM pet;

选择行,选择列

同样也可以选择行并且选择列

如:SELECT name, species, birth FROM pet WHERE species = ‘dog’ OR species = ‘cat’;

按日期排序

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为开头名字的数据:SELECT * FROM pet WHERE name LIKE ‘b%’;

查看以b为开头名字且只有两个字母的名字的数据:SELECT * FROM pet WHERE name LIKE ‘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;

多表查询

查看可以配对的动物属于自关联

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

)

数据分页

获取第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中多一条重复的记录

mysql 学习2 基本语法

相关文章:

你感兴趣的文章:

标签云: