oracle怎么写代码(oracle怎么写sql语句)

oracle怎么写代码(oracle怎么写sql语句)内容概括 Oracle 创建自己命名的数据库的方法 decode 目前一般使用可以不同用户登录 一起管理的系统自带的 ORCL 数据库 例子 讲义 作业 1 创建一个学生信息表 stuinfo 包含学号 姓名 生日 日期 请通过一个 sql 语句显示 姓名 的学号是 学号 生日是 转换成字符串的生日字段 2 创建一个商品表 包含编号 商品名称 商品价格 商品类型 食品 书籍和电器

大家好,我是讯享网,很高兴认识大家。



内容概括:


Oracle创建自己命名的数据库的方法 

decode

目前一般使用可以不同用户登录,一起管理的系统自带的ORCL数据库

例子

讲义

作业

1、创建一个学生信息表stuinfo,包含学号,姓名,生日(日期)。请通过一个sql语句显示【姓名】的学号是【学号】,生日是【转换成字符串的生日字段】。

2、创建一个商品表,包含编号,商品名称,商品价格,商品类型(食品,书籍和电器)。通过一个sql语句给商品类型是书籍的商品打1折,给商品类型是食品的商品打2.5折,给商品类型是电器的商品便宜500元。

3、创建一个成绩表scoreinfo,包含编号,科目,成绩(成绩可以为空)。显示这个表中的所有成绩,当成绩为空时,显示-1。

关于空值处理函数nvl的介绍

关于外键的添加和自己的理解

Oracle中打开自己写好并且保存好的SQL代码的文件的方法(gif图演示)

各种函数的运用举例(运用举例是我认为很好的学习理解记忆等的方法)

目前一般使用可以不同用户登录,一起管理的系统自带的ORCL数据库

1、创建一个学生信息表stuinfo,包含学号,姓名,生日(日期)。

请通过一个sql语句显示【姓名】的学号是【学号】,

生日是【转换成字符串的生日字段】。

                       

create table stuinfo(

    id number primary key,

    name varchar2(30) not null,

    brithday date

);

insert into  stuinfo values(1,‘诗书画唱’,to_date(‘2020-06-06’,‘yyyy-mm-dd’));

insert into  stuinfo values(2,‘三连’,to_date(‘2020-07-07’,‘yyyy-mm-dd’));

insert into  stuinfo values(3,‘关注’,to_date(‘2020-09-09’,‘yyyy-mm-dd’));

select * from stuinfo

答:

select concat(concat(concat(name,‘的学号是’),concat(id,‘,生日是’)) 

,to_char(brithday,‘yyyy-mm-dd’))txt from stuinfo;

2、创建一个商品表,包含编号,商品名称,商品价格,

商品类型(食品,书籍和电器)。

通过一个sql语句给商品类型是书籍的商品打1折,

给商品类型是食品的商品打2.5折,给商品类型是电器的商品便宜500元。

                       

create table sp(

    id number primary key,

    name varchar2(30) not null,

    price number(10,2),

    type varchar2(30) check(type=‘食品’ or type=‘书籍’ or type=‘电器’)

);

select * from sp

insert into  sp values(1,‘辣条’,0.50,‘食品’);

insert into  sp values(2,‘《杀死一只知更鸟》’,18.5,‘书籍’);

insert into  sp values(3,‘冰箱’,1000.00,‘电器’);

答:

select name,type,price,decode(type,‘书籍’,price*0.1,‘食品’,price*0.25,

                                    ‘电器’,price -500,

                                    price) from sp;

3、创建一个成绩表scoreinfo,包含编号,科目,

成绩(成绩可以为空)。显示这个表中的所有成绩,当成绩为空时,显示-1。

                     

create table scoreinfo(

    id number primary key,

    km varchar2(30) not null,

    cj number(4,1)

   

);

insert into scoreinfo values(1,‘Java’,null);

insert into scoreinfo values(2,‘python’,100.0);

drop table scoreinfo

答:

select id,km,cj,nvl(cj,-1)  as result from scoreinfo;

–Decode函数使用示例:

create table emp(

    id number primary key,

    ename varchar2(30) not null,

    job varchar2(30),

    salary number(10,2)

);

insert into emp values(1,‘John’,‘项目经理’,15000);

insert into emp values(2,‘Tom’,‘开发人员’,18000);

insert into emp values(3,‘Kite’,‘开发人员’,18000);

insert into emp values(4,‘巴菲特’,‘CEO’,40000);

insert into emp values(5,‘Mop’,‘后勤’,6000);

–如果是CEO,保持原来的工资,如果是开发人员,加薪10%

–如果是项目经理,加薪5%,如果是后勤,加薪500

select ename,job,salary, decode(job,‘CEO’,salary,

                                    ‘开发人员’,salary*1.1,

                                    ‘项目经理’,salary*1.05,

                                    ‘后勤’,salary+500,

                                    salary)

                                    from emp

OraclePL/SQL中的一个函数。

格式为:

NVL(string1,replace_with)

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL,则返回NULL。

注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。

例:NVL(TO_CHAR(numeric_column),‘somestring’)其中numeric_column代指某个数字类型的值。

例:nvl(yanlei777,0)>0

NVL(yanlei777,0)的意思是如果yanlei777是NULL,则取0值

通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值


讯享网

【直接创建完整约束的表(写项目的时候,一般就是用这种方法建表。

同时建表的时候,

create table spInformation 

(

id number primary key,

name varchar2(30),

price number(9,2),

typeid int

);

create table spType

(id number primary key,

name varchar2(30));

–删除表

drop table spInformation;

drop table spType;

–加外键

【表创建成功后再添加外键约束

添加外检约束 :alter table 从表表名 add constraint 

外键约束名称 foreign key(列名) references 主表名称(主键列名)】

alter table spInformation add constraint

 FK_spInformation foreign key(typeid) references spType(id);

——————————————————————————————————————————————————————

—建基本的表(一般是不会去用这种方法建表的):

create table spInformation 

(

id number,

name varchar2(30),

price number(9,2),

type varchar2(30)

);

create table spType

(id number primary key,

name varchar2(30));

–查询表

select * from spInformation; 

select * from spType; 

–通过sql语句给商品信息表的id添加主键约束

alter table spInformation 

add constraint PK_id primary key(id);

–name添加唯一约束

ALTER TABLE spInformation

ADD CONSTRAINT unique_spInformation

UNIQUE (name) 

–id添加外键约束

【表创建成功后再添加外键约束

添加外检约束 :alter table 从表表名 add constraint 

外键约束名称 foreign key(列名) references 主表名称(主键列名)】

alter table spType add constraint

 FK_spInformation foreign key(id) references spInformation(id);

–价格添加检查约束(1-元)

Alter table spInformation

Add constraint CK_spInformation check(>price and price>=1)

–在商品信息表和商品类型表中输入数据进行测试。

insert into spInformation values(1,‘诗书画唱牌商品’,999.99,‘名牌类’);

insert into spType values(1,‘名牌类’);

–select * from user_tablespaces ;

–select * from user_tablespaces ;

【直接创建完整约束的表(写项目的时候,一般就是用这种方法建表。

同时建表的时候,

create table spInformation 

(id number primary key,

name varchar2(30),

      

price number(9,2),

typeid int);

create table spType

(id number primary key,

name varchar2(30));

dual:废表,不存在的表

自连接:一个表查两次

各种函数的运用举例(运用举例是我认为很好的学习理解记忆等的方法):

–四舍五入

select round(3.29,1) from dual;

–截尾

select trunc(3.29,1) from dual;

–取余数

select mod(8,2) from dual;

select mod(3,7) from dual;

–转换大小写

select lower(‘Hello,WORLD’) from dual;

select upper(‘Hello,WORLD’) from dual;

–连接两个字符串

select concat(‘app’,‘le’) from dual;

–将product表中的商品名称和价格拼接成一个字符串

select concat(pname,price) txt from product;

–显示Product表中的商品名称和商品价格,商品价格保留一位小数

select pname,round(price,1) from product;

–截取字符串

–第一个数字表示需要截取的字母的下标(从1开始的)

–第二个数字表示截取几个字母

select substr(‘apple’,3,2) from dual;

–截取userinfo表中的act的前两个字母

select substr(act,1,2) from userinfo;

–获取字符串的长度

select length(‘abc’) from dual;

–显示userinfo表中所有act的长度

select length(act) from userinfo;

–填充

–第二个参数表示填充完以后的字符串的长度

–如果长度不够,就在左边填充指定的字符

select rpad(‘hello’,7,‘@’) from dual;

–在product表的price前面加上¥

select concat(‘¥’,price) from product;

select lpad(price,(length(price) + 2),‘¥’) from product;

–去掉两端的空格

select trim(‘  h   p   ’) from dual;

–显示当前日期

select sysdate from dual;

–日期和字符串的转换

–将当前日期显示为yyyy-mm-dd

select to_char(sysdate,‘yyyy-mm-dd hh:mi:ss’) from dual;

–将userinfo表中的生日显示为yyyy-mm-dd的形式

select to_char(birth,‘yyyy-mm-dd’) from userinfo

–将字符串转换成日期

–往userinfo表中插入一条数据

insert into userinfo 

values(8,‘test’,888,to_date(‘1990-12-4’,‘yyyy-mm-dd’));

–空值处理函数

select nvl(price,0) from product;

create table score(

    id number primary key,

    sname varchar2(30) not null,

    subname varchar2(30),

    score number

);

–分支处理函数,相当if elseif else

–显示score表中的所有成绩,如果是HTML,就减少5分,

–如果是C语言就加5分,如果spring就加10分

select subname,score,decode(subname,‘HTML’,score - 5,

                                    ‘C’,score + 5,

                                    ‘spring’,score + 10,

                                    score) from score;

create table emp(

    id number primary key,

    ename varchar2(30) not null,

    job varchar2(30),

    salary number(10,2)

);

insert into emp values(1,‘John’,‘项目经理’,15000);

insert into emp values(2,‘Tom’,‘开发人员’,18000);

insert into emp values(3,‘Kite’,‘开发人员’,18000);

insert into emp values(4,‘巴菲特’,‘CEO’,40000);

insert into emp values(5,‘Mop’,‘后勤’,6000);

–如果是CEO,保持原来的工资,如果是开发人员,加薪10%

–如果是项目经理,加薪5%,如果是后勤,加薪500

select ename,job,salary, decode(job,‘CEO’,salary,

                                    ‘开发人员’,salary*1.1,

                                    ‘项目经理’,salary*1.05,

                                    ‘后勤’,salary+500,

                                    salary)

                                    from emp

create table stuinfo(

    id number primary key,

    stuname varchar2(30) not null,

    deptname varchar2(30)

);

insert into stuinfo values(1,‘小华’,‘计算机系’);

insert into stuinfo values(2,‘小红’,‘舞蹈系’);

insert into stuinfo values(3,‘小丽’,‘舞蹈系’);

insert into stuinfo values(4,‘小明’,‘舞蹈系’);

insert into stuinfo values(5,‘小黑’,‘计算机系’);

insert into stuinfo values(6,‘KKK’,‘音乐系’);

–查询跟小红在同一个系的所有的同学

–方法一:嵌套查询

select id,stuname from stuinfo

where deptname=(select deptname from stuinfo

where stuname = ‘小红’)

–方法二:自查询

select a.stuname from stuinfo a,stuinfo b

where a.deptname = b.deptname

and b.stuname = ‘小红’

–查询emp表中跟Tom是同一个JOB的员工的姓名

select b.ename from emp a, emp b where a.job=a.job and 

a.ename=‘Tom’

推荐:https://blog.csdn.net/yong/article/details/(这篇文章中的方法我没用,推荐的原因就是让读者知道有这么一回事)

oracle database configuration assistant

小讯
上一篇 2025-06-12 07:51
下一篇 2025-06-08 16:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/167491.html