本文中提到的emp和stu都是表名
select
group by 常跟分组函数(如AVG SUM)一起使用
SELECT AVG(score) FROM stu GROUP BY class HAVING AVG(score)>90 ORDER BY stuid DESC(ASC)
多表查询
自连接
等值连接
外连接=左外、右外、全连接
子查询
select * from emp where salary in(select salary from emp where empname=‘Selina’)
插入
insert into emp (empname,empid)value(‘Selina’,1)
修改
update emp set empname=‘Selina’ where empname=’Selinala‘
删除
delete from emp where empid=1
表操作
表操作表名前要加table
创建表
create table emp(
empname varchar2(10),
empid NUMBER
)
改变表(增列)
alter table emp add 列名 列类型
改变表(减列)
alter table emp drop column 列名
改变表(改变表名)
alter table emp rename to stu
改变表(改变列名)
alter table emp rename column empname to stuname
删除表
drop table emp cascade constraints
查看表结构
describe emp
事务
commit 提交事务
rollback 回滚事务
savepoint a 设置事务节点
rollback to savepoint a 回滚到事务节点a
sql语句简单优化
不使用 select *
查询语句中表使用别名
where是从右先执行的,因此把最能缩小范围的放到最右面写
用>=代替>
用truncate代替delete
经常commit可以释放资源
不避免对索引使用函数