SQL語句的學習

1、如何判斷數據庫是否啓動了mysql

 

經過查看進程的方式最多能肯定實例啓動了正則表達式

>>>select open_mode from v$database;   //只有這條命令才能肯定是否真正打開了數據庫sql


SQL> show user
USER is "SCOTT"數據庫

 

>>>start nomount  //只啓動實例express

>>>alter database mount //掛載數據庫 可經過控制文件中的信息查詢到v$datafile中的文件oracle

>>>alter database open //打開數據庫ide

$export ORACLE_SID=實例 //實例與實例之間的切換,或者經過修改環境變量函數

注:正常狀況下,一個實例只能訪問一個數據庫 對象

        RAC 多個實例關聯一個數據庫排序

>>>show parameter db_name;     //能夠看到鏈接到的數據庫名

>>>select name from v$database ; //能夠看到鏈接到的數據庫名

>>>desc  v$parameter; //能夠看到鏈接到的數據庫名

>>>select name,value from v$parameter where name=''//能夠看到鏈接到的數據庫名

>>>show parameter instance_name;  //查看實例名

>>select name,value from v$parameter where name='instace_name'; //查看實例名

>>>show user     //顯示如今登陸的用戶

>>>conn 用戶名/密碼   //在數據庫中切換用戶

 

簡單sql ----

一、DQL:數據查詢語言,主要用來查詢數據eg :select

     a.簡單sql SQL> select ENAME,SAL,COMM from EMP order by nvl(COMM,-1) desc

       SELECT *|column| alias|express|  FROM <tab|view> ; //*表示匹配全部的列

       select * from emp;   //在oracle內部執行會生成三條計劃,雖然結果是同樣的

      select *from EMP;

      SELECT * FROM EMP;

    

     b.限制排序

     SELECT * FROM <>;

     SELECT * FROM <> WHERE <>;

      SELECT * FROM <> WHERE <> ORDER BY <>  //通常不使用排序,會十分消耗pga,cpu也會形成I/O很忙

    函數的使用:時間函數,正則表達式,字符函數,數字函數,單行函數,多行函數,報表函數

     子查詢

      多表查詢

二、DML:數據操縱語言,主要用來改變數據中數據eg :insert,update,delete

三、DDL  : 數據定義語言,主要用來定義構成數據庫的一些結構eg:create,alter,drop,truncate(截斷表中的全部數據)

四、DCL :數據控制語言,控制用戶訪問數據庫或訪問對象的某種權限eg:grant,revoke

五、TCL:事務處理語言,控制事務的完成和事務的回退,【DML的完成和取消】eg:commit,rollback,savepoint

>>> desc dba_users; //能夠看到全部的用戶
 

>>> select username,account_status from dba_users;

USERNAME               ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW               OPEN
SYS                   OPEN
SYSTEM                   OPEN
DBSNMP                   OPEN
SYSMAN                   OPEN
MAX                   OPEN
OUTLN                   EXPIRED & LOCKED
FLOWS_FILES               EXPIRED & LOCKED
MDSYS                   EXPIRED & LOCKED
ORDSYS                   EXPIRED & LOCKED
EXFSYS                   EXPIRED & LOCKED

USERNAME               ACCOUNT_STATUS
------------------------------ --------------------------------
WMSYS                   EXPIRED & LOCKED
APPQOSSYS               EXPIRED & LOCKED
APEX_030200               EXPIRED & LOCKED
OWBSYS_AUDIT               EXPIRED & LOCKED
ORDDATA                EXPIRED & LOCKED
CTXSYS                   EXPIRED & LOCKED
ANONYMOUS               EXPIRED & LOCKED
XDB                   EXPIRED & LOCKED
ORDPLUGINS               EXPIRED & LOCKED
OWBSYS                   EXPIRED & LOCKED
SI_INFORMTN_SCHEMA           EXPIRED & LOCKED

USERNAME               ACCOUNT_STATUS
------------------------------ --------------------------------
OLAPSYS                EXPIRED & LOCKED
SCOTT                   EXPIRED & LOCKED
ORACLE_OCM               EXPIRED & LOCKED
XS$NULL                EXPIRED & LOCKED
BI                   EXPIRED & LOCKED
PM                   EXPIRED & LOCKED
MDDATA                   EXPIRED & LOCKED
IX                   EXPIRED & LOCKED
SH                   EXPIRED & LOCKED
DIP                   EXPIRED & LOCKED
OE                   EXPIRED & LOCKED

USERNAME               ACCOUNT_STATUS
------------------------------ --------------------------------
APEX_PUBLIC_USER           EXPIRED & LOCKED
HR                   EXPIRED & LOCKED
SPATIAL_CSW_ADMIN_USR           EXPIRED & LOCKED
SPATIAL_WFS_ADMIN_USR           EXPIRED & LOCKED

37 rows selected.

 

 

>>>alter user 用戶名 account unlock|lock ;//對用戶解鎖/上鎖

>>>alter user 用戶名 identified by 密碼  account unlock;//爲用戶修改密碼和解鎖郎

>>>select * from table;  //

>>>select table_name from user_tables;

>>>desc dba_tables;  //在sys用戶下

>>>select table_name from dba_tables where owner='SCOTT';//在sys用戶下查看SCOOT用戶下面有幾張表

>>>desc 表名 ;//查看錶結構

 


SQL> select * from dept   //查看錶詳細
  2  /

    DEPTNO DNAME      LOC
---------- -------------- -------------
    10 ACCOUNTING      NEW YORK
    20 RESEARCH      DALLAS
    30 SALES      CHICAGO
    40 OPERATIONS      BOSTON

SQL>

 >>>select ename,deptno,sal+100 from emp;//運算只能對num型的數據

>>>select ename||job from emp;//鏈接字符串,只能在oracle中使用

>>>select ename||'is work'||job from emp; //

>>>select concat(ename,job) from emp; //mysql中連接兩個字符串的方法

>>>select concat(concat(ename.'is work'),job) from emp;//mysql中鏈接三個字符串的方法

>>>select ename || q'('is work) '||job from emp;//用q實現對字符的轉義 括號裏爲你要顯示的內容,括號能夠是任意字符,但必須成對出現

>>>select ename as "name" from emp;//給ename 用name這個別名顯示,as能夠不用 ,name加上雙引號能夠顯示爲小寫

>>>select dname 「d%name」 from dept1;//有特殊字符的時候必定要加上雙引號

別名使用雙引號,字符使用單引號

$export NLS_LANG='simplified chinese_china_ai32utf8'  //設置中文

>>>select  * from 表名 where 條件 ;//條件尋找

>>>  select * from emp where sal ^=3000|sal<>3000; //找到薪水不等於3000 的

>>>select * from emp where sal  [not] between 3000 and 5000;//薪水在3000到5000之間的

>>>select  * from emp where ename in ('SCOTT','KING'); //窮舉 in

>>>select  * from emp where sal  [not]  in (2000,3000,5000);

>>>select ename ,sal from emp where sal >any |all (2000,3000);//大與括號裏面的任意一個數 |全部的數

>>>select ename from emp where ename like 's%'|'%s'|'__s%';   //%匹配0個或多個字符,_匹配一個字符

 

>>>select * from dept1 where dname like '%/%%'  escape '/'  ;// 尋找有%字符的。轉義字符使用的是/  也可爲其餘的轉義字符

>>>select * from dept1 where dname like '%/_%'  escape  '/' ; //尋找有_字符的值。escape告訴咱們使用的是哪一個轉義字符

>>>select ename,sal,deptno from emp where deptno=10 and |or  sal>2000; //可使用的鏈接符  and |or |not 三個字符

>>>select ename,comm from emp where comm is not null|where comm<>0;

>>>select ename,sal  from emp order by sal desc ; //desc 加上爲逆序,不加爲升序,默認爲從低禱告

>>>select distinct (列名) from emp; //去除重複項,distinct oracle特有

>>>select distinct 列名 from emp;

>>>select unique 列名 from emp; //unique 數據庫通用的去重語句

 

在sqlplus中使用

>>>l   //列出緩衝區中的語句

>>>c/要替換的內容/替換後的內容

>>>i   要插入的內容  //

>>>a   要追加的內容 //加上咱們要追加的內容,但只能追加到最後

>>>save /opt/1.sql   //將緩衝區中的語句存到指定的路徑中

>>>ho cat /opt/1.sql // 顯示咱們保存的語句

>>>start|@ |r |run  /opt/1.sql //執行咱們保存的語句

>>>get /opt/1.sql  //將語句調到緩衝區

>>> /                   //直接/執行

>>>spool  /opt/s.sql    //打開屏幕抓取功能

>>>spool off    //關閉spool

 

>>>set linesize 300 //設置咱們的屏幕寬度

>>>show pagesize

>>>set pagesize 100  //100行以後才分頁

>>>set heading on|off //顯示|關閉 列標題

>>>col 列名 for a10 //調整列的寬度

>>>show all //查看全部的命令

相關文章
相關標籤/搜索