日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML

發布時間:2024/7/23 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

create:創建表創建用戶創建視圖

創建表

create table student(id int,score int) ;

student后面與括號之間可以有空格可以沒有

創建用戶

create user liuyifei identified by 4852396;

drop:刪除整個表、刪除指定的用戶、刪除指定的存儲空間

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;--如果其他表空間中的表有外鍵等約束關聯到了本表空間中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

truncate

刪除表中的所有數據,但是表還是存在的。和drop的先后參見如下:

SQL> create table st1(id int);表已創建。SQL> truncate table st1;表被截斷。SQL> drop table st1;表已刪除。SQL> create table st1(id int);表已創建。SQL> drop table st1;表已刪除。SQL> truncate table st1;truncate table st1 *第 1 行出現錯誤:ORA-00942: 表或視圖不存在

alter:增加刪除修改字段

SQL> create table s1(id int,a int,score int);表已創建。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 行出現錯誤:ORA-00905: 缺失關鍵字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: 對象 s1 不存在SQL> alter table s2 rename column name to sname;表已更改。SQL> desc s2; 名稱 是否為空? 類型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) SNAME VARCHAR2(10)

DML:只對表的數據改變,沒有改變表的屬性

DML操作之后要進行commit操作才會更改數據庫。

select:查詢

SQL> select score,sname from s2 where id='2'; SCORE SNAME---------- ---------- 99 ayun

insert:插入記錄

SQL> insert into s2 values(1,100,'aming');已創建 1 行。SQL> insert into s2 values(2,99,'ayun');已創建 1 行。SQL> insert into s2 values(3,79,'ahe');已創建 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 ahe

DCL:只改變屬性

grant:授權

revoke:收回權限

grant語法:GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}權限privilege: select:查詢 insert:插入 update:更新 delete:刪除 rule: all:所有grant select,insert,update on tablename to public;給所有用戶授予查詢、插入、更新tablename表的權限revoke select,insert,update on tablename from public;//收回所有用戶查詢、插入、更新tablename表的權限object: table:表 view:視圖 sequence:序列 index:索引grant select,insert,update on tablename,viewname,sequencename,indexname to public;public:對所有用戶開放權限GROUP groupname:對該組所有用戶開放權限username:對指定用戶開放權限

給用戶授權,connect權限和resource權限。

不給新建用戶授予connect權限,新建用戶無法通過SID或SERVICE_NAME連接數據庫實例。

不給新建用戶授予resource權限,新建用戶無法創建表。

SQL>SQL> create user liuyifei identified by a4852396;用戶已創建。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;授權成功。SQL> conn liuyifei/a4852396;已連接。SQL> show user;USER 為 "LIUYIFEI"SQL> create table stu(id int);create table stu(id int)*第 1 行出現錯誤:ORA-01031: 權限不足SQL> conn / as sysdba;已連接。SQL> show user;USER 為 "SYS"SQL> grant resource to liuyifei;授權成功。SQL> conn liuyifei/a4852396;已連接。SQL> create table stu(id int);表已創建。

查看指定用戶有哪些系統權限

這項操作只可以是dba查看,普通用戶是不能查看的,即使是查看自己的。下面的代碼已經驗證了這個問題。

SQL> select * from dba_tab_privs where grantee=uper('liuyifei');select * from dba_tab_privs where grantee=uper('liuyifei') *第 1 行出現錯誤:ORA-00942: 表或視圖不存在SQL> select * from dba_roles_privs where grantee=uper('liuyifei');select * from dba_roles_privs where grantee=uper('liuyifei') *第 1 行出現錯誤: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的區別

truncate會收回表空間,delete不會收回表空間

附錄2:

sys用戶和system用戶的區別:

SYS用戶,缺省始終創建,且未被鎖定,擁有數據字典及其關聯的所有對象

SYSTEM用戶,缺省始終創建,且未被鎖定,可以訪問數據庫內的所有對象

最后,咱給小編:

1. 點贊+關注

2. 點頭像關注后多多評論,轉發給有需要的朋友。

謝謝!!

總結

以上是生活随笔為你收集整理的db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。