Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)

一、入门部分

由于近期需要用到oracle(mysql),发现之前也学到一点,但是现在一接触还是会有点陌生,决定做个入门的笔记,供自己日后复习以及需要的伙伴借鉴,有不足之处还望指正。入门部分主要为登录数据库,以及对用户、表、表空间的简单操作

1.数据库登录

(使用SecureCrt登录/SQLPLUS 命令窗口登录)
$ sqlplus
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第1张图片
sqlplus /nolog (无需密码)
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第2张图片
>conn username/pwd (没有使用密码,使用该语句进行登录/或者切换用户)
在这里插入图片描述
>exit 退出登录

2.用户、授权操作

a) 创建用户

create user username identified by password;
 //(username 新用户用户名、password密码)

b) 创建表空间

Create tablespace tasName detafile ‘d:\data.dbf’ size 50m;
//tasName:表空间名字
//‘d:\data.dbf’:表空间的存储位置
//表空间的大小:50m(m单位为兆)

c) 将空间分配给用户

Alter user username default tablespace tasName;
//将名字为tasName的表空间分配给username

d) 给用户授权
因为新建的用户和默认的用户是锁住的,没有权限。所以新建用户后要给用户赋予权限

Grant dba to username(用户名)       //给用户赋予所有权限 

Grant create session to username    //给用户赋予登录的权限 connect 表示赋予连接数据库的权限

Grant create table to username      //给用户赋予表操作的权限

Grant unlimited tablespace to username	//给用户赋予表空间操作的权限

Grant select any table to username	//给用户赋予访问任务吧的权限,delete、update同理

3.表操作

a) 新建表

 create table student(
       stu_no number(2) primary key,        --主键
       stu_name varchar(10) not null,       --设置不为空
       stu_sex char(2) check(stu_sex='男' or stu_sex='女'), --设置性别只能有两个选项
       stu_age number(2) not null,
       stu_tel number(11) unique,           --设置唯一
       stu_add varchar(50) default '上海'   --设置默认值
 );   

b) 查询语句

 select * from student;     --查询student的全部信息
 select stu_name from student; --只查询student表中的stu_name字段
 select * from student where stu_no = 10;  --查询student表中符合条件的学生
  

c) 插入语句

insert into student(stu_no,stu_name,stu_sex,stu_age,stu_tel,stu_add) 
		values(18,'哇嚓叻叻','男',20,183XXXXXXXX,'福建');
   

d) 删除语句

 delete from student where stu_no = 18;   

e) 修改语句

update student set stu_no = '10' where stu_no = '18'

二、进阶部分

1.存储过程

定义

网上解答:将常用的或者很复杂的工作,预先用sql语句写好,并用一个指定的名称存储起来(封装起来),那么以后要叫数据库提供已定义好的存储过程的功能相同的服务时,只需要调用即可自动完成该命令。
个人理解:认为存储过程类似于 ‘函数’,也就是把你所需要操作的sql语句继承为一个函数,需要的时候调用,而不需一条一条语句执行。

储存过程语法
update student set stu_no = '10' where stu_no = '18'

create or replace procedure proname (param1 in type,param2 out type)
       --proname 存储过程的名字 后面为参数 in表示入参 out表示出参
is     -- 设置变量 也可为as
       -- 变量1 ;类型(值范围); 例 flag varchar(10);
begin     -- PL/SQL 体开始
  ...     -- SQL语句
end;      --PL/SQL体结束
自我实现的小demo

学习不够深入,只写了几个简单的,复杂的后续有时间在做补充
1.输出功能的储存过程

--存储过程定义
create or replace procedure firstPro
is
begin
       DBMS_OUTPUT.PUT_LINE('Hello World!');
end;

--以下为调用该存储过程
begin
       firstPro();
end;

运行结果
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第3张图片
2.有定义功能的储存过程

 create or replace procedure threePro
 is
        t_start number;             --定义变量
        t_end number;
        t_time number;
 begin
        t_start:=dbms_utility.get_time;
        DBMS_OUTPUT.PUT_LINE('哇嚓叻叻');
        DBMS_OUTPUT.PUT_LINE('技术小白');
        DBMS_OUTPUT.PUT_LINE('欢迎互相学习');
        t_end:=dbms_utility.get_time; 
        t_time:=t_start - t_end;             --计算输出的运行时间 可忽略
        DBMS_OUTPUT.PUT_LINE('This   statement   cost   '|| t_time ||'   miliseconds');
 end;   
  --以下为调用该存储过程
 begin
        threePro();
 end; 

运行结果
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第4张图片
3.带参数的储存过程

 --带参数的存储过程
 create or replace procedure fourpro(num in number) 
 is
 begin
	  dbms_output.put_line('The input numer is:' || num);
 end;
 --调用方式一
 begin
 	  fourpro(num=>1);
 end
 --调用方式二
 declare
     n number;
 begin
     n:=1;
     fourpro(num=>n);
 end;

运行结果
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第5张图片

2.分页查询(ROWNUM)

Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)_第6张图片

3.字符串拼接符 ‘||’

在这里插入图片描述
Demo::用select查询输出 hello world、‘hello world’ 和 “hello world”
在这里插入图片描述
 首尾单引号里面如果出现的单引号,并且有多个则相连两个单引号转义为一个字符串单引号

4.关系关键字(order by、group by …)

(后续补充)

三、oracle相关知识

参考文献

-[1]: https://www.cnblogs.com/lanqingzhou/p/8145272.html
-[2]: https://www.cnblogs.com/zhao123/p/3911537.html
-[3]: https://blog.csdn.net/woshimyc/article/details/72519018
-[4]: https://blog.csdn.net/fw0124/article/details/42737671

你可能感兴趣的:(oracle,学习笔记)