创建一个测试表,插入一些测试数据:
Create Table Cstable (Id Int,Age Int,Name Varchar2(8),Address Varchar2(20));
Insert Into Cstable Values(1,13,'张三','深圳');
Insert Into Cstable Values(2,23,'李四','上海');
Insert Into Cstable Values(3,23,'王五','北京');
Insert Into Cstable Values(4,43,'刘心','北京');
Insert Into Cstable Values(5,11,'刘开心','北京');
基本查询
1、基本查询
从表中查询某些列的值,这是最基本的查询语句。
#语法
SELECT 列名1,列名2 FROM 表名
#举例
select name,address from cstable;
2、条件
作用:按照一定的条件查询数据
运算符:
#语法:
SELECT 列名1,列名2 FROM 表名 WHERE 列名1 运算符 值
#举例
select * from cstable where name='张三';
select * from cstable where id >=2;
select * from cstable where id between 2 and 3;
比较操作符都比较简单,不再赘述。关于LIKE,专门拿出来重点说下
3、LIKE
作用:模糊查询。LIKE关键字与通配符一起使用
主要的通配符:
#举例
#查询所有姓张的
select * from cstable where name like '张%';
#查询最后一个字为三的
select * from cstable where name like '%三';
#查询名字包含开字的
select * from cstable where name like '%开%';
#查询名字两个字,并且姓张
select * from cstable where name like '张_';
4、AND
AND 在 WHERE 子语句中把两个或多个条件结合起来。表示和的意思,多个条件都成立。
#查询id大于等于2,且姓刘的
select * from cstable where id >=2 and name like '刘%';
5、OR
OR可在 WHERE 子语句中把两个或多个条件结合起来。或关系,表示多个条件,只有一个符合即可。
#查询姓张或者姓刘的
select * from cstable where name like '张%' or name like '刘%';
6、IN
IN 操作符允许我们在 WHERE 子句中规定多个值。表示:在哪些值当中。
#查询ID为2和4的
select * from cstable where id in (2,4);
7、NOT否定
NOT对于条件的否定,取非。
#查询所有不姓张的
select * from cstable where name not like '张%';
8、ORDER BY(排序)
功能:对需要查询后的结果集进行排序
#查询学生年龄,地址,并根据年龄排序
select age,name,address from cstable order by age;
#或者asc,默认就是升序
select age,name,address from cstable order by age asc;
#或者adsc,降序
select age,name,address from cstable order by age adsc;
9、MAX/MIN/SUM/AVG
MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
MIN 函数返回一列中的最小值。NULL 值不包括在计算中。
SUM函数查询某列的合计值。
AVG 函数返回数值列的平均值
select max(age) from cstable;
select min(age) from cstable;
select sum(age) from cstable;
select avg(age) from cstable;
10、COUNT函数
COUNT() 函数返回匹配指定条件的行数。
#查询有多少姓刘的学生
select count(id) from cstable where name like '刘%';