1.解鎖scott使用者
---這句話的目的是為了檢視我登入的例項
select * from v$instance;
---v$開頭的動態效能試圖
---解鎖scott賬戶
select * from dba_users;
alter user scott identified by scott;
2.建立tbl_student表
create table tbl_student
(stu_id number(10),
stu_name varchar2(20),
phone_number varchar2(20)
)
3.給表中插入注釋
comment on table tbl_student is '學生基本資訊表';
comment on column tbl_student.stu_id is '學生編號';
comment on column tbl_student.stu_name is '學生姓名';
comment on column tbl_student.phone_number is '手機號碼';
4.表中插入資料
insert into student(stu_id,stu_name,phone_number)
values (1,'張三','18012341234');
insert into student(stu_id,stu_name,phone_number)
values (2,'李四','18012341234');
insert into student(stu_id,stu_name,phone_number)
values (3,'王五','18012341234');
commit;
5.新增列
alter table tbl_student add(stu_gender number(1));
6.新增性別:0表示男 1表示女
update tbl_student t set t.stu_gender ='0'where t.stu_id='1';
7.表資料的刪除
delete from tbl_student where id ='1';
8.清空表的兩種方式
no.1:delete:後面可以直接加條件 刪除我所指定的資料,刪除資料後 原有的資料塊不會被釋放 會產生高水位線問題 但delete支援回滾 速度較慢
no.2:truncate:truncate後面不能加條件 是對資料的直接清空 速度較快 能夠對錶空間得到釋放 但是turncate無法回滾
delete from tbl_student;
truncate from tbl_student;
9.修改表中資料
update tbl_student t set t.stu_name = '呵呵' where t.stu_id='1';
10.查詢表中的資料及部分用法
--查詢表中所有資料
select * from tbl_student;
--查詢id在3到8之間的資料
select * from tbl_student t where t.stu_id between 3 and 8;
--查詢性別為男的人數
select count(t.stu_id)from tbl_student t where t.stu_gender = '0';
--把兩個表的結果都查詢出來 兩個結果集並起來
--union on 和union 的區別:union 會對錶中的資料進行排序而且會清除重複資料 較消耗效能
select * from tbl_student union all select * from tbl_student2;
select * from tbl_student union select * from tbl_student2;
11.查詢男女比例
--case when 當滿足條件的時候
--then 要取得結果 end 表示case when 語句結束
select (count(case when t.stu_gender = '0'
then t.stu_id end)/count(t.stu_id))*100||'%' cnt_nan,
(count(case when t.stu_gender = '1'
then t.stu_id end)/count(t.stu_id))*100||'%' cnt_nv
from tbl_student t;
查詢結果:
12.統計人數最多的姓氏 和 統計人數最少的姓氏
select z.xin,z.cnt_xin
from(
select substr(t.stu_name,0,1) xin,count(t.stu_id) cnt_xin
from tbl_student t
group by substr(t.stu_name,0,1))z,
(select max(t.cnt_xin) mx,min(t.cnt_xin) mi
from(
select substr(t.stu_name,0,1) xin,count(t.stu_id) cnt_xin
from tbl_student t
group by substr(t.stu_name,0,1))t
) z2
where z.cnt_xin = z2.mx or z.cnt_xin = z2.mi;
查詢結果:
未完待續。。。。。。
oracle學習總結 plsql基本語法
if 布林表示式 then pl sql 和 sql語句 end if loop 要執行的語句 exit when 條件語句 條件滿足,退出迴圈語句 end loop declare int number 5 0 stuname student.sname type student.s type 男...
Oracle學習總結3 基本物件
一 表 1 表建立表 create table test1 tid number,tname varchar2 20 增加新列 alter table test1 add photo blob 修改列 alter table test1 modify tname varchar2 40 刪除列 al...
oracle資料庫逐步學習總結之基本命令(基礎一)
一 oracle的基本命令 1 連線命令 用法 conn 使用者名稱 密碼 網路服務名 as sysdba sysoper 2 disc onnection 斷開與當前資料庫的連線 3 passw ord 修改使用者密碼,修改其他使用者密碼,需要sys system使用者 4 show user 顯...