我是靠谱客的博主 痴情小蚂蚁,最近开发中收集的这篇文章主要介绍数据库操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

现有数据表Customer,其结构如表-1所示:

表-1 customer表结构

1)构造SQL语句,列出Customer数据表中每个客户的信息。如果客户生日未提供,则该列值显示“not available”;如果没有余额信息,则显示“no account”。

2) 构造SQL语句,列出生日在1987年的客户的全部信息。

一、创建customer表的SQL语句如下所示:

CREATE TABLE customer(

cust_id NUMBER(4),

cname VARCHAR2(25),

birthday DATE,

account NUMBER

);

注意:此处NUMBER未指定长度,默认为38位

二、向customer插入如下测试数据,SQL语句如下所示:

     insert into customer(cust_id,cname,birthday,account) 
           VALUES (1001,'郭靖','12-12月-13',200);

           insert into customer(cust_id,cname) 
           VALUES (1002,'黄蓉');

           insert into customer(cust_id,cname,birthday,account) 
           VALUES (1003,'梅超风','12-12月-87',200);

测试插入的数据:


三、列出Customer数据表中每个客户的信息。如果客户生日未提供,则该列值显示“not available”;如果没有余额信息,则显示“no account”

思路:使用TO_CHAR函数将日期类型的birthday列的数据转换为字符类型,然后,使用NVL函数,当birthday为NULL值时,将birthday列的数据显示为“not available”。同理,使用TO_CHAR函数将数值类型的account列数据转换为字符类型,然后,使用NVL函数,当account为NULL值时,将account列的数据显示为“noaccount”,SQL语句如下所示:

  select 

cust_id,

cname,

nvl(to_char(birthday,'YYYY-MM-DD'),'not available'),

nvl(to_char(account),'no account')

FROM customer;

测试结果如下:


四、列出生日在1987年的客户的全部信息

使用TO_CHAR函数将获取birthday列的年份数据,与“1987”使用“=”等号进行比较,SQL语句如下所示:

SELECT * FROM customerWHERETO_CHAR(birthday,'yyyy')='1987'

还可以使用TEXTRACT函数获取时间分量

SELECT * FROM customer WHERE EXTRACT(YEAR FROM BIRTHDAY)=1987;

测试结果如下:



最后

以上就是痴情小蚂蚁为你收集整理的数据库操作的全部内容,希望文章能够帮你解决数据库操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部