- 查询(重点)
- 基本查询
- 1、全表查询和特定列查询
- 2、列别名
- 3、算术运算符
- 4、常用函数
- 5、limit语句
- 6、where语句
- 7、比较运算符(Between/In/ Is Null)
- 8、Like和RLike
- 9、逻辑运算符(And/Or/Not)
查询的基本语法
SELECt [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERe where_condition] [GROUP BY col_list] [ORDER BY col_list] [CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]] [LIMIT number]基本查询 1、全表查询和特定列查询
①全表查询,就是使用符号 * 就代表全部列的数据
select * from student;
②特定列查询
select id, name from student;
说明:
HQL对大小写不敏感
HQL语言以分号;作为语句的结尾
HQL允许参数之间有空格或者回车,所以可以使用缩进和回车让语句更有可读性
2、列别名在查询的时候还可以对查询的结果指定一个新的列名,用as关键字即可
select id as student_id, name as student_name from student;
也可以不使用as关键字,直接将别名跟在字段后即可
| 运算符 | 描述 |
|---|---|
| A+B | A和B 相加 |
| A-B | A减去B |
| A*B | A和B 相乘 |
| A/B | A除以B |
| A%B | A对B取余 |
| A&B | A和B按位取与 |
| A|B | A和B按位取或 |
| A^B | A和B按位取异或 |
| ~A | A按位取反 |
比如查询出所有员工的薪水加奖金
select ename as name, sal+comm income from emp;4、常用函数
①求总行数count
select count(*) count from emp;
②求工资的最大值(max)
select max(sal) max_sal from emp;
③求工资的最小值(min)
select min(sal) min_sal from emp;
④求工资的总和(sum)
select sum(sal) sum_sal from emp;
⑤求工资的平均值(avg)
select avg(sal) avg_sal from emp;5、limit语句
用于限制返回的行数
select * from emp limit 5;6、where语句
使用where语句将满足条件的数据 查询出来
select * from emp where sal > 2000;7、比较运算符(Between/In/ Is Null)
①between是范围选择
比如查询出薪水在1500~5000之内的员工
select * from emp where sal between 1500 and 5000;
②in是数值匹配
匹配出符合in中的数值
比如查询出薪水为1500或者5000的员工信息
select * from emp where sal in (1500,5000);
③is null空值判断
返回空值的数据
比如查询出所有没有奖金的员工信息
select * from emp where comm is null;8、Like和RLike
类似于正则匹配
①LIKE
选择条件包括两个
% --> 代表零个或多个字符(任意个字符)。
_ --> 代表一个字符。
比如查找名字以A开头的员工
select * from emp where ename like 'A%';
②RLIKE
类似于正则表达,可以直接使用Java的正则表达式来查询数据
比如查找名字中带有A的员工信息
select * from emp where ename rlike '[A]';9、逻辑运算符(And/Or/Not)
| 操作符 | 含义 |
|---|---|
| AND | 逻辑并 |
| OR | 逻辑或 |
| NOT | 逻辑否 |
①查询薪水大于1000,部门是30
select * from emp where sal>1000 and deptno=30;
②查询薪水大于3000,或者部门是30的
select * from emp where sal>3000 or deptno=30;
③查询薪水大于1000,并且部门不属于30和10的所有员工
select * from emp where sal>1000 and deptno not in (10,30);



