create table class
(
Cid NUMBER(10) not null,
Cname VARCHAR2(100),
teacherID NUMBER(10),
constraint PK_CLASS primary key (Cid)
);
create table student
(
Sid NUMBER(20) not null,
Sname VARCHAR2(100),
Saddress VARCHAR2(200),
Sbirthday DATE,
constraint PK_STUDENT primary key (Sid)
);
插入数据的语句
INSERT INTO table_name (column1,column2,…)
values ( value1,value2, …);
把 一个表中的数据插入另一个表中
INSERT INTO table_name SELECT 语句
更新
UPDATE table_name set column1=new value,column2=new value,… WHERE <条件>
DELETE FROM table_name WHERE <条件>
简单查询(这里不涉及子查询和联合查询
SELECT [DISTINCT] column1 [as newname] ,columns2,… FROM table1
WHERE 条件 (可选)
GROUP BY column_list (可选)
HAVING <条件> (可选)
ORDER BY column_list (ASC|DESC) (可选)
DISTINCT –表示隐藏重复的行
WHERE –按照一定的条件查找记录
GROUP BY –分组查找(需要汇总时使用)
HAVING –分组的条件
ORDER BY –对查询结果排序
Where运算符
where <条件1>AND<条件2> –两个条件都满足
where <条件1>OR<条件2> –两个条件中有一个满足即可
where NOT <条件> –不满足条件的
where IN(条件列表) –所有满足在条件列表中的记录
where BETWEEN .. AND .. –按范围查找
where 字段 LIKE –主要用与字符类型的字段
‘-’ 表示任意字符;
‘%’ 表示多字符的序列;
where 字段 IS [NOT] NULL –查找该字段是[不是]空的记录
GROUP BY 分组查找(可结合组函数)
注意:在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。where 语句中不能有组函数
例如这样就是错误的(因为salary没有在group by 的字句中)
SELECT JOB,SALARY from COM GROUP BY JOB;
这样是对的
SELECT JOB from COM GROUP BY JOB;
SELECT JOB,AVG(SALARY) from COM GROUP BY JOB;
GROUP BY 的作用时依照某个条件进行分组
看下面运行结果
SELECT JOB,AVG(SALARY) from COM GROUP BY JOB;
由于按照job分组 那么相同的job就为一组 所以就出现了10组。Avg求平均值 这个函数就去每个组中计算然后返回结果
其他组函数还有
Sum 求和
MIN 求最小值
MAX 求最大值
Count 计算数量
目前为止学习的都是单表查询,下次学习一下多表查询。单表查询主要是记住where的条件,以及组函数与group by 的组合查询 多去敲几遍代码,就一目了然了。
水平有限 若有错误 欢迎指正