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