`

学完oracle的总结

阅读更多

 

创建session--grant create session to lisi;

 

创建table --grant create table  to lisi;

 

撤销table-revoke create table from lisi;

 

创建tablespace--grant create tablespace to lisi;

=============================================================================================

启动数据库:startup;

关闭数据库--shutdowm;

cmd--sqlplus/nolog

cmd---sqlplus--sqlplus "wen/wen  as sysdba"--进入sqlplus中

http://xp-201012061224:5560/isqlplus/login.uix

 

 

修改id用 update ban_ji set id=8 where id=1;(import)

 

创建用户:

create user 用户名 identified by 密码

删除前的保存一份

savepoint aa;

rollback to aa;

回滚完成

 

=============================================================================================

DOS下启动ORACLE的监听--lsnrctl start

启动ORACLE的实例--oradim -starup -sid orcl

=============================================================================================

创建一个用户:create user lisi identified by lisi;

=============================================================================================

文档查询

1--

  cmd   sqlplus/nolog

SQL> conn /as sysdba

 已连接

3个默认的用户(sys/change_on_install as sysdba)(system/manager)(scott/tiger

2--更改账户:alter user scott account unlock;

查询用户是什么用户:

select table_name from user_tables;

scott用户的解锁

SQL>alter user scott account unlock;

设置密码为tiger

SQL>alter user scott identified by tiger;

 

SQL>conn scott/tiger

 

   show user;

   USER is "SCOTT"

 

   conn /as sysdba

   select username,account_status from dba_users;

   它会显示SCOTT----OPEN

   conn scott/tiger

 

=============================================================================================

 

 新建一个xue_sheng表

 create table xue_sheng(id integer, xing_ming varchar(30));

 

 

 查看表的字段和数据类型   DESC+表名

 alter table xue_sheng add nian_ling number;

   alter table xue_sheng   drop column nian_ling;

    drop  table xue_sheng;

  desc xue_sheng;

  这里就会增加nian_ling 这个字段。

查看当前用户表的命令

Select  table_name from user_tables;   

 

practice:

 SQL> desc xue_sheng13;

 名称                                      是否为空? 类型------字段

 ----------------------------------------- -------- ---------------------------

 

 ID                                                 NUMBER(38)

 XING_MING                                          VARCHAR2(12)

 ADDRESS                                            NUMBER

 PHONE_NUMBER                                       NUMBER

 ZUOAIID                                            NUMBER

 

SQL> insert into xue_sheng13 values(1,'daling');

insert into xue_sheng13 values(1,'daling')

            *

第 1 行出现错误:

ORA-00947: 没有足够的值

 

 

SQL> select * from xue_sheng13;

 

未选定行

 

SQL> insert into xue_sheng13 values(1,'liuwenewen',11,13893178965,1);

 

已创建 1 行。

 

SQL> select * from xue_sheng13;

 

        ID XING_MING       ADDRESS PHONE_NUMBER    ZUOAIID

---------- ------------ ---------- ------------ ----------

  •          1 liuwenewen           11   1.3893E+10          1

 

SQL> insert into xue_sheng13 values(2,'zhangxinling',12,110,2);

 

已创建 1 行。

 

SQL> insert into xue_sheng13 values(3,'yanghuibing',13,120,11);

 

已创建 1 行。

 

SQL> insert into xue_sheng13 values(3,'language',13,120,11);

 

已创建 1 行。

 

SQL> select * from xue_sheng13;

 

        ID XING_MING       ADDRESS PHONE_NUMBER    ZUOAIID

---------- ------------ ---------- ------------ ----------

         1 liuwenewen           11   1.3893E+10          1

         2 zhangxinling         12          110          2

         3 yanghuibing          13          120         11

         3 language             13          120         11

 

SQL>

对数据记录的操作(select, insert, update, delete)

常用函数(count-计算,max-最大值,min-最小值, avg-平均值,sum-总和,decode-解释,dist-,inct)

=============================================================================================

学习一些SQL语句

 

 create table xue_sheng(id integer,xing_ming varchar(20),nian_ling number);

 

 insert into xue_sheng values(1,'zhangsan',24);

 

 insert into xue-sheng values(2,'liuwenwen',22);

 

  查询

SQL>select * from xue_sheng;

SQL>select xing_ming from xue_sheng;//从学生表中查询姓名的字段

 

插入数据

SQL>insert into xue_sheng values(3,'w shi shui ',11);

SQL>insert into xue_sheng(id ,nian_ling,xuehao) values(2,'w shi shui',5555);

 

查找order by desc(降序)或者 asc(升序)排序

SQL>select * from xue_sheng order by nian_ling desc;       默认ASC

查找字段为空或者非空

SQL>select * from xue_sheng where xing_ming is null;        IS NOT NULL

过滤重复字段

SQL>select distinct nian_ling from xue_sheng;

更新表字段

SQL>update xue_sheng set xing_ming='zhanwu';(慎用)

SQL>update xue_sheng set xing_ming='lisi' where id=2;

 

=============================================================================================

删除,   需要注意 delete from 表名. 表示把表的数据全部清空

 

所以我们使用时一般带上条件 where 例如:

SQL> delete from xue_sheng where id=2;

 

Select substr('Hello',1,3) from dual;

Sub

 

Hel

 

Select substr(ename,2) from emp;

表示每一个名字都从第二个字符开始,截至整个字符串结束

 

Select chr(65) from dual;

c

 

A

 

Ascii

求一个字符的ASCII码数值

ASCII('A')

 

---------------

65

 

Round

Select round(112.23) from dual;

Round(112.23)

 

 

 

=============================================================================================

 

一些常用函数

 

SQL>select count(*) from xue_sheng;               count--计数

SQL>select sum( nian_ling ) from xue_sheng;       sum---总数

SQL>select MAX( nian_ling ) from xue_sheng;       MAX---最大值

SQL>select MIN( nian_ling ) from xue_sheng;       MIN---最小值

SQL>select AVG( nian_ling ) from xue_sheng;       AVG---平均值

 

=============================================================================================

decode函数使用,可以理解成是一个判断分类函数

SQL>select sum(decode(nian_ling,24,1,0,)),sum(decode(nian_ling,22,1,0)) from xue_sheng;

 

  insert into xue_sheng(id,nian_ling) values(2,34);

SQL>select sum(decode(nian_ling,23,3,0)) n_23,sum(decode(nian_ling,22,3,0)) n-22 from xue_sheng;

 

 

===============================================================================================

 

分组查询 group by 模糊查询LIKE 表连接JOIN ON 子查询IN(又叫嵌套查询)

 

1--新建学生表:xue_sheng

 

create table xue_sheng(id integer,xing_ming varchar(25),xing_bie number,result number);

 

insert into xue_sheng values(1,'liuwenwen',1,100);

 

insert into xue_sheng values(2,'wangxiaoer',0,200);

 

insert into xue_sheng values(3,'w shi shui ',1,150);

 

insert into xue-sheng values(4,'ai ni ',1,300);

 

查询要求:分组显示男女同学的总分

SELECT XING_bie,sum(result) from xue_sheng group by xing_bie;

 

2,  模糊查询 或者 模糊查找

 

使用LIKE关键字,通用字符 '%'

 

select * from xue_sheng where xing_ming LIKE 'zhan%';

 

select * from xue_sheng where xing_ming LIKE '%g';

 

select * from xue_sheng where xing_ming LIKE '%a%';

 

===========================================================================

 

 

3, 表连接

 

新建一个班级表:ban_ji

 

create table ban_ji(id integer,ban_ji varchar(20));

 

insert into ban_ji values(1,'1-(1)');

 

insert into ban-ji values(2,'1-(2)');

 

insert into ban_ji values(3,'1-(3)');

==============================================================================

 

select id, xing_ming from xue_sheng;

 

select id,xing-ming,ban_ji from xue_sheng ,ban_Ji;

 

select id,xing_ming,ban_ji from xue_sheng, ban_Ji;

 

学生表,班级表一起查询;

 

select x.id, xing_ming,ban_ji from xue_sheng x,ban_ji b;

 

select x.id, xing-ming,ban_ji from xue_sheng x,ban_ji b where x.b_id=b.id;

 

select x.id, xing_ming,ban_ji from xue_sheng x  join ban-ji b on x.b_id=b.id;

 

 

=======================================================================================

 

设置行的宽度--setLinesize 400

 

 

 

========================================================================================

 

子查询 in()或者 not in() ,又叫嵌套查询

 

select * from xue_sheng where b_id in(1,3);//取出id=1 id=3的两条语句

 

select * from xue_sheng where b_id=1 or b_id=3;

 

以上两条语句相同

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics