MySQL查询语句
基本查询:
1) 查询时加一条固定字段, 例如Student信息后面添加一个班级('普通班')
select id, name, '普通班' as 班级 from Student
2) 查询时去重, 例如查询学生的居住地
select distinct adress from table_name 或者 select distinct(adress) from table_name
3) 查询时合并某几列的数值, 例如显示总成绩
select name, (English + Math) 总成绩 from table_name
条件查询: (where)
1) 逻辑条件: 'and'与 'or'或
2) 比较: '>' '<' '=' '>=' '<=' '<>'不等于 'between xx1 and xx2' <==> '>= xx1 and <= xx2'
3) 判断空(null vs 空字符串): 'is null' / 'is not null' / '=''' / '<>'''
4) 模糊判断: 'like' %无长度限制 _长度1
聚合函数: count() sum() max() min() avg() 统计某一列的属性
查询时排序: order by column_name [asc正序/desc反序]
分组查询: group by column_name
分组后筛选: having + 聚合函数或者其他
分页查询: select * from table_name limit line_index, line_num
例如: 查询时只显示4条信息,从第4条开始显示
select * form table_name limit 3, 4
连接查询:
内连接:只显示能匹配到的
SELECT NAME 姓名, address 宿舍地址 FROM employee, dormitory WHERE employee.dorm_id = dormitory.id;
SELECT NAME 姓名, address 宿舍地址 FROM employee INNER JOIN dormitory on employee.dorm_id = dormitory.id;
左连接: 以左边的表为基准,从右边表选择对应的数值添加进新列
SELECT address, NAME FROM dormitory d LEFT JOIN employee e ON d.id = e.dorm_id;
右连接:同左连接类似,只不过换个位置
全连接:
自连接:SELECT e.name 员工, b.name 上司 FROM employee e LEFT JOIN employee b ON e.bossId = b.id;