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

相关文章
相关标签/搜索