建表
Create table +名稱(
列名 類型 約束
);
注:類型一般分為
char型 固定長度字符
varchar2型 可變長度字符
number型 number(5,2)
date型
約束
主鍵約束 (primary key):規定的列值不允許為空,不允許重復,唯一性
Eg:身份證ID
根據主鍵的條件進行查詢,一個主鍵值只會對應一條數據
唯一約束(unique): 規定的列值不允許重復
非空約束(not null):規定列值不允許為空
檢查約束(check+(條件)):規定的列值必須滿足制定條件
刪除表格
Drop+table +表名
插入數據
Insert into 表名[(列1,列2,列3…..列n)]value (值1,值2…..,值n)
eg: insert into student (sid,sname,sex,birthday,height) values (001,'法士特','男',null,1.51);
備份
Create table emp_back as select * from emp;
--提交
commit;
插入數據時后面加 一個 commit 就自動一次性上傳數據
級聯更新
如果更新列的所有信息就不需要加where 如果要改指定的信息,需要加where
級聯刪除
eg:從emp表中刪除所有部門編號為 sales這個部門所屬的部門編號
delete from emp where deptno = (select deptno from dept where dname='sales')
簡單去重 distinct 某列中重復的值不顯示 .復雜一點去重使用group by
select deptno from emp
強制轉換
將字符串轉換為數字 to_number(char)
將字符串轉換為日期 to_date
select to_date("2006-05-03","YYYY-WW-DD") from emp
--一鍵清空所有表格
truncate table 表名 ;
eg:truncate table emp;
alter使用
alter table student rename to student1; --修改表名
alter table student rename column birthday to shengri;--修改列名
alter table student add(nashen varchar2(43));--新增列
--刪除列
alter table student modify(sname varchar2(30));--修改列的類型
--添加約束
--刪除約束
rownum
--排序,根據輸出的數據進行排序
--只能從1開始
eg: 查詢工資前3 名
select rownum, t.*
from (select * from emp order by sal desc) t
where rownum <= 3;
--nv1 將空值改為0
select comm,nvl(comm,0) from emp
--數字函數
select round(1235.122) from dual; -- 不接參數默認取整
select round(1235.678,2) from dual; -- 接參數n 精確到n 位 且四舍五入
select round(1235.122,-2) from dual; --接參數-n,-n位歸0
select trunc(1235.122 ,2) from dual; --不四舍五入
--字符函數
select initcap ('bindongming') from dual; --將首字母改為大寫,其他全部小寫
select upper ('bindongming') from dual; --全部改為大寫
select lower ('bindongming') from dual; --全部改為小寫
--字符函數
select initcap ('bindongming') from dual; --將首字母改為大寫,其他全部小寫
select upper ('bindongming') from dual; --全部改為大寫
select lower ('bindongming') from dual; --全部改為小寫
--rowid 新增 修改 刪除數據
select rowid, t.* from emp t where deptno=10
--排序
--按個人薪資升序排列 order by .. esc 以xxx升序排列
select * from emp order by sal asc;
--按個人薪資降序排列
select * from emp order by sal dasc;
--group by 去重
select job from emp where comm is not null and comm!=0 group by job;
注意:去重的時候 查詢對象必須是去重的對象,不能查詢全部,再用去重