db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML
create:創(chuàng)建表創(chuàng)建用戶創(chuàng)建視圖
創(chuàng)建表
create table student(id int,score int) ;
student后面與括號(hào)之間可以有空格可以沒有
創(chuàng)建用戶
create user liuyifei identified by 4852396;
drop:刪除整個(gè)表、刪除指定的用戶、刪除指定的存儲(chǔ)空間
drop table table_name;drop user user_name;--刪除空的表空間,但是不包含物理文件drop tablespace tablespace_name;--刪除非空表空間,但是不包含物理文件drop tablespace tablespace_name including contents;--刪除空表空間,包含物理文件drop tablespace tablespace_name including datafiles;--刪除非空表空間,包含物理文件drop tablespace tablespace_name including contents and datafiles;--如果其他表空間中的表有外鍵等約束關(guān)聯(lián)到了本表空間中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;truncate
刪除表中的所有數(shù)據(jù),但是表還是存在的。和drop的先后參見如下:
SQL> create table st1(id int);表已創(chuàng)建。SQL> truncate table st1;表被截?cái)唷QL> drop table st1;表已刪除。SQL> create table st1(id int);表已創(chuàng)建。SQL> drop table st1;表已刪除。SQL> truncate table st1;truncate table st1 *第 1 行出現(xiàn)錯(cuò)誤:ORA-00942: 表或視圖不存在alter:增加刪除修改字段
SQL> create table s1(id int,a int,score int);表已創(chuàng)建。SQL> alter table s1 add name varchar2(10);表已更改。SQL>SQL> desc s1; 名稱 是否為空? 類型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) A NUMBER(38) SCORE NUMBER(38) NAME VARCHAR2(10)SQL> alter table s1 drop a;alter table s1 drop a *第 1 行出現(xiàn)錯(cuò)誤:ORA-00905: 缺失關(guān)鍵字SQL> alter table s1 drop column a;表已更改。SQL> alter table s1 rename to s2;表已更改。SQL> desc s2; 名稱 是否為空? 類型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) NAME VARCHAR2(10)SQL> desc s1;ERROR:ORA-04043: 對(duì)象 s1 不存在SQL> alter table s2 rename column name to sname;表已更改。SQL> desc s2; 名稱 是否為空? 類型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) SNAME VARCHAR2(10)DML:只對(duì)表的數(shù)據(jù)改變,沒有改變表的屬性
DML操作之后要進(jìn)行commit操作才會(huì)更改數(shù)據(jù)庫(kù)。
select:查詢
SQL> select score,sname from s2 where id='2'; SCORE SNAME---------- ---------- 99 ayuninsert:插入記錄
SQL> insert into s2 values(1,100,'aming');已創(chuàng)建 1 行。SQL> insert into s2 values(2,99,'ayun');已創(chuàng)建 1 行。SQL> insert into s2 values(3,79,'ahe');已創(chuàng)建 1 行。delete:刪除記錄,不改變表的屬性。
SQL> delete from s2 where score='100';已刪除 1 行。SQL> select * from s2; ID SCORE SNAME---------- ---------- ---------- 2 99 ayun 3 79 aheSQL> delete from s2;已刪除2行。SQL> select * from s2;未選定行SQL> desc s2; 名稱 是否為空? 類型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) SNAME VARCHAR2(10)update:更新記錄
SQL> update s2 set score=100 where sname='ahe';已更新 1 行。SQL> select * from s2; ID SCORE SNAME---------- ---------- ---------- 1 100 aming 2 99 ayun 3 100 aheDCL:只改變屬性
grant:授權(quán)
revoke:收回權(quán)限
grant語(yǔ)法:GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}權(quán)限privilege: select:查詢 insert:插入 update:更新 delete:刪除 rule: all:所有g(shù)rant select,insert,update on tablename to public;給所有用戶授予查詢、插入、更新tablename表的權(quán)限r(nóng)evoke select,insert,update on tablename from public;//收回所有用戶查詢、插入、更新tablename表的權(quán)限object: table:表 view:視圖 sequence:序列 index:索引grant select,insert,update on tablename,viewname,sequencename,indexname to public;public:對(duì)所有用戶開放權(quán)限GROUP groupname:對(duì)該組所有用戶開放權(quán)限username:對(duì)指定用戶開放權(quán)限給用戶授權(quán),connect權(quán)限和resource權(quán)限。
不給新建用戶授予connect權(quán)限,新建用戶無法通過SID或SERVICE_NAME連接數(shù)據(jù)庫(kù)實(shí)例。
不給新建用戶授予resource權(quán)限,新建用戶無法創(chuàng)建表。
SQL>SQL> create user liuyifei identified by a4852396;用戶已創(chuàng)建。SQL> conn liuyifei/a4852396;ERROR:ORA-01045: user LIUYIFEI lacks CREATE SESSION privilege; logon denied警告: 您不再連接到 ORACLE。SQL> show user;USER 為 ""SQL> conn / as sysdba;已連接。SQL> show user;USER 為 "SYS"SQL> grant connect to liuyifei;授權(quán)成功。SQL> conn liuyifei/a4852396;已連接。SQL> show user;USER 為 "LIUYIFEI"SQL> create table stu(id int);create table stu(id int)*第 1 行出現(xiàn)錯(cuò)誤:ORA-01031: 權(quán)限不足SQL> conn / as sysdba;已連接。SQL> show user;USER 為 "SYS"SQL> grant resource to liuyifei;授權(quán)成功。SQL> conn liuyifei/a4852396;已連接。SQL> create table stu(id int);表已創(chuàng)建。查看指定用戶有哪些系統(tǒng)權(quán)限
這項(xiàng)操作只可以是dba查看,普通用戶是不能查看的,即使是查看自己的。下面的代碼已經(jīng)驗(yàn)證了這個(gè)問題。
SQL> select * from dba_tab_privs where grantee=uper('liuyifei');select * from dba_tab_privs where grantee=uper('liuyifei') *第 1 行出現(xiàn)錯(cuò)誤:ORA-00942: 表或視圖不存在SQL> select * from dba_roles_privs where grantee=uper('liuyifei');select * from dba_roles_privs where grantee=uper('liuyifei') *第 1 行出現(xiàn)錯(cuò)誤:ORA-00942: 表或視圖不存在SQL> show user;USER 為 "LIUYIFEI"SQL> conn / as sysdba;已連接。SQL> select * from dba_tab_privs where grantee=upper('liuyifei');未選定行SQL> select * from dba_role_privs where grantee=upper('liuyifei');GRANTEE GRANTED_ROLE ADM DEF------------------------------ ------------------------------ --- ---LIUYIFEI CONNECT NO YESLIUYIFEI RESOURCE NO YES附錄1:
truncate和delete的區(qū)別
truncate會(huì)收回表空間,delete不會(huì)收回表空間
附錄2:
sys用戶和system用戶的區(qū)別:
SYS用戶,缺省始終創(chuàng)建,且未被鎖定,擁有數(shù)據(jù)字典及其關(guān)聯(lián)的所有對(duì)象
SYSTEM用戶,缺省始終創(chuàng)建,且未被鎖定,可以訪問數(shù)據(jù)庫(kù)內(nèi)的所有對(duì)象
最后,咱給小編:
1. 點(diǎn)贊+關(guān)注
2. 點(diǎn)頭像關(guān)注后多多評(píng)論,轉(zhuǎn)發(fā)給有需要的朋友。
謝謝!!
總結(jié)
以上是生活随笔為你收集整理的db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 哪些事最困扰你?
- 下一篇: mysql lock_MySQL-锁总结