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 //查看全部的命令