欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-23 10:44:52
...

一、入门部分

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

1.数据库登录

(使用SecureCrt登录/SQLPLUS 命令窗口登录)
$ sqlplus
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)
sqlplus /nolog (无需密码)
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)
>conn username/pwd (没有使用密码,使用该语句进行登录/或者切换用户)
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)
>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语句大全(用户、表、表空间、分页及字符串拼接等)
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语句大全(用户、表、表空间、分页及字符串拼接等)
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语句大全(用户、表、表空间、分页及字符串拼接等)

2.分页查询(ROWNUM)

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

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

Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)
Demo::用select查询输出 hello world、‘hello world’ 和 “hello world”
Oracle 入门sql语句大全(用户、表、表空间、分页及字符串拼接等)
 首尾单引号里面如果出现的单引号,并且有多个则相连两个单引号转义为一个字符串单引号

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