重点
- 单张表的CURD
- 多张表的CURD
1 SQL
SQL Structed Query Language 结构化查询语言
授权:scott把查询emp的权限给tom
grant select on emp to tom
语句要传输到oracle服务器,被执行
2 查询
select 字段 from 表
查询一个字段
select ename from scott.emp
查询多个字段
select eno,ename from scott.emp
查询所有
select * from 表
3 按条件查询
select 字段 from 表 where 条件
例如 查询工资大于2000的员工信息
select * from emp where sal>2000
查询scott的员工信息
select * from emp where ename=‘scott’
查询除了scott的员工信息
select * from emp where ename <> ‘scott’
4 插入数据
向S表中添加一条记录
insert into s(sno,sname,city) values(‘s1’,‘海南公司’,‘海口’);
如果向表种插入所有字段都插入记录,则字段可以省略
insert into s values(‘s1’,‘海南公司’,‘海口’);
向某些列插入数据
insert into s(sno,sname) values(‘s1’,‘海南公司’);
现在有一个stuinfo表,要做一张备份表。备份表结构要跟stuinfo一样。
问:怎么创建一个备份表?
复制一张表,包括数据
create table stuinfobak as select * from stuinfo;
如果只想要表结构,不想要数据
create table stuinfobak as select * from stuinfo where 4=3;
向sruinfobak中插入stuinfo的数据
insert into stuinfobak select * from stuinfo。
5 更新
update 表名 set 字段=值 where 条件
如果不加条件会修改所有的记录
update stuinfo set stuage = 26;
修改的条件,条件一般是主键等于xxx
– to-date('2019/1/1,‘yyyy-mm-dd’)把字符串按格式转换成日期类型
update stuinfo set stuage =27,stuname=‘sadsa’,
behin_date=to-date('2019/1/1,‘yyyy-mm-dd’) where stuno=‘101010’;
6 删除
delete from 表 where 条件
删除 学号是101012的记录
delete from stuinfo where stuno=‘101012’;
清空表(事物)
truncate table stuinfo;
如果没有添加主键,插入的数据重复了
查询不重复的数据
select distinct * from stuinfo;
移除掉重复的数据
select
dba database administrator
不要弄联合主键 维护效率低 要搞主键可以设置一个 scno当主键