问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于SQL数据库问题

发布网友 发布时间:2022-04-07 19:24

我来回答

6个回答

热心网友 时间:2022-04-07 20:53

我的周末就耗在这道题上了。。
来来去去,然后中间又夹杂一些杂事,做到现在终于做完。。

1.【create table语句】
create table bank(
cardid number primary key,
perid number unique,
name varchar2(20),
sex char(2),
brithday varchar2(40),
constraint sex check(sex in ('男','女')) ,
constraint perid check(length(perid) in (15,18))
);

create table money(
cid number,
score number,
foreign key(cid) references bank(cardid));

2.【insert bank表测试数据】
insert into bank (cardid,perid) values (1,430903198511302113);
insert into bank (cardid,perid) values (2,430903851130230);
insert into bank (cardid,perid) values (3,430903001130234);
insert into bank (cardid,perid) values (4,430903981120231);
insert into bank (cardid,perid) values (5,430903011111228);
insert into bank (cardid,perid) values (6,430903200112212103);
insert into bank (cardid,perid) values (7,430903311111221);
insert into bank (cardid,perid) values (8,430903198112212103);
insert into bank (cardid,perid) values (9,430913981120239);
insert into bank (cardid,perid) values (10,431903001130234);
insert into bank (cardid,perid) values (11,420903198112212133);

3.【更新性别,出生日期】
update bank set
sex = decode(length(perid),15,
decode(mod(substr(perid,14,1),2),0,'女',1,'男'),18,
decode(mod(substr(perid,17,1),2),0,'女',1,'男')),brithday =
decode(length(perid),15,19||substr(perid,7,6),18,substr(perid,7,8));

4.【update name测试数据】
注意:修改姓,但是名里面的牛不要改。策略:把牛姓的名字替换为'刘'||第二个字符开始到结束的串。
create sequence seq1;
update bank set name = '牛XX牛刘'||seq1.nextval;
update bank set name = '刘'||substr(name,2,length(name)-1) where name like '牛%';

5.【insert money表测试数据】
insert into money values (1,1.1);
insert into money values (2,12);
insert into money values (3,0.9);
insert into money values (4,122);
insert into money values (5,12);
insert into money values (6,12);
insert into money values (7,131);
insert into money values (8,12);
insert into money values (9,123);
insert into money values (10,12);
insert into money values (11,0.11);

6.delete from money where score < 2;

7.insert into money select cardid,2 from bank
where cardid not in (select cid from money);

8.select name from bank,money
where cardid = cid and rownum < 4 order by money.score desc;

9.select name from bank
where substr(brithday,5,2) = to_char(sysdate,'mm');
--本月生日的客户姓名
select name from bank where
to_char(to_date(brithday,'yyyymmdd'),'ww') = to_char(sysdate,'ww');
--本周生日的客户姓名

10.题意不清,个人理解为显示所有客户余额为平均余额的客户姓名,其中平均存款计算时不算一个最高和一个最低余额。
select name from bank where cardid in
(select cid from money where score in
(select (sum(score)-max(score)-min(score))/(count(score)-2)
from money));

花絮:
1.查找了下身份证的生成规则,同时研究了下生成算法。。
资料:http://www.xa*.com/Article/200808/1016.shtml

2.在由身份证号码更新生日时,遇到一个问题,就算是上面的链接处引用的算法也无法解决,那就是15位身份证的日期段为00XXXX时,无法判断生日为1900XXXX或是2000XXXX。
2.1 在连接字符串时,因为想到用substr函数取perid字段得到的是字符类型,本来可以隐式转换为数字类型,但是强制转换为数字类型后,连接时会出问题,比如select 01||00 from al;得到的是01而不是0100。所以当时在更新生日时用到一个很复杂的decode语句。。
update bank set
sex = decode(length(perid),15,decode(mod(substr(perid,14,1),2),0,'女',1,'男'),18,
decode(mod(substr(perid,17,1),2),0,'女',1,'男')),
brithday = decode(length(perid),15,
decode(length(19||to_number(substr(perid,7,6))),8,19||to_number(substr(perid,7,6)),7,190||to_number(substr(perid,7,6)),6,
1900||to_number(substr(perid,7,6))),18,substr(perid,7,8));

2.2在整个编译过程中由于文档和SQL环境的多次变换,导致符号半全角混杂,带来极大不便。。经常莫名其妙的错误。应对策略,在使用ORACLE的过程养成用E文编译,测试学习的习惯,ORACLE认证考试OCA,OCP也是全E文化的。

3.在第8问中,本来想到可以用以下语句解决的
【select name from bank where cardid in (select cid from money where rownum < 4 order by score desc)】
多次出错后,查笔记想起order by 子句不能用到嵌套语句中,只能放在最外层语句的最后,不知可对,各位看官提下意见。

4.关于第10题,如果去掉所有最高和最低余额,不是都只去掉一个计算平均余额时的查询:
select name from bank where cardid in
(select cid from money where score in
( select sum(score)/count(score) from money where score not in
((select max(score) from money),(select min(score) from money))));

大功告成!以上全是ORACLE支持的,MYSQL的话,需要更换MYSQL自适应的函数,还有其中的7问中的insert语句,insert into money select cardid,2 from bank where cardid not in (select cid from money);MYSQL不支持。
吃饭。。

热心网友 时间:2022-04-07 22:11

是不是你当前登陆SQL的用户没有create
databese的权限,请检查一下.
SQL查询权限的办法已经在百度中有记录了.
http://zhidao.baidu.com/question/40009152.html
希望以上回答能顺利解决你的问题/

热心网友 时间:2022-04-07 23:46

可以同时开两个服务的
你先装了2000,再装2005的时候提示你需要输入实例名称,比如2005的实例名称就是sql2005
那样在服务管理器中的服务器中就多出一个实例就是【电脑名称\sql2005】,需要把它开启起来
在连接的时候,如果在2005的管理工具【SQL
Server
Management
Studio】打开登录的时候
服务器名称填的是192.168.0.1\sql2005的就是2005
使用192.168.0.1作为服务器名称的就是连接sql2000的
SQL200和2005是一体的,后面连接的时候主要是看它的实例,那个先装就是用默认实例,后面不需要设置
有实例的在服务器名称中就一定要跟上具体实例
连接成功后,
如果后面显示的9.0的就是sql
2005数据库的
如果后面显示的8.0的就是sql
2000数据库的

热心网友 时间:2022-04-08 01:37

倒,这是最基本的,你学sql学到这个份上,服了你

热心网友 时间:2022-04-08 03:45

你太黑了,一次少弄点啊,太多了,懒得做,看那位大侠不怕幸苦了.

热心网友 时间:2022-04-08 06:10

一般软件出了新版本后
就必须要更新了
建议你最好去下载新版本
毕竟新版本功能更齐全
而你所说的那种情况
我还没见过
怎样解决sql数据库无法连接的问题?

1,如果出现这样的情况,首先我们要排查对方的机器ip或者服务器的ip是否拼得通,如果拼不通,那肯定连接不上了,那就要看看是防火墙有没有阻止ip的拼接,如果ping得通,那就与这个无关了。2,上面能拼得通,就说明能够连接得上对方的电脑了,接下来就在数据库上找原因了,出现这种情况,一般是对方的...

SQL数据库连接不上怎么解决

SQL数据库连接不上的解决方法主要取决于问题的具体原因。常见的解决方法包括检查网络连接、确认数据库服务状态、核对登录凭证以及查看防火墙设置。首先,网络连接问题是导致无法连接到SQL数据库的常见原因之一。用户需要确保他们的设备与数据库服务器之间的网络连接是畅通的。这可以通过ping命令或者其他网络诊断工具...

SQL数据库连接失败的原因是什么啊?

原因一:登录账号、密码、服务器名称、数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决。解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题。数据库如果是安装在本机,服务器名可以用“.”或...

【数据库】还原SQL Server 数据库常见的问题

在尝试还原SQL Server数据库时,一个常见的问题就是遇到"The database is in use"的错误。这是由于仍有用户或应用程序正在连接并使用该数据库,因此SQL Server不允许进行还原操作。解决这个问题的步骤很简单:首先,利用sp_who2查询出当前连接的SPID(Server Process ID),然后使用kill命令针对性地关闭...

关于SQL数据库以及JAVA的一些问题,在线急等

1. 付键,即Foreign Key(外键),用于保证数据引用完整性,确保外键的值必须存在于另一张表的主键中。2. SQL(Structured Query Language),是一种用于管理关系型数据库的标准编程语言。3. Oracle,由Oracle公司提供的一种数据库管理系统,也提供应用服务器(AS)。4. SQLplus,是Oracle数据库的交互...

怎么解决SQL数据库服务器拒绝访问呢

解决SQL数据库服务器拒绝访问的问题,首先需要确认几个关键点并逐一排查:1. **网络连接**:确保客户端与数据库服务器之间的网络连接是通畅的。可以使用ping命令或telnet工具测试端口(如SQL Server默认端口1433)是否开放且可访问。2. **防火墙和安全组设置**:检查服务器和客户端的防火墙设置,确保没有...

怎么解决SQL数据库服务器拒绝访问呢

当遇到SQL数据库服务器拒绝访问的问题时,可以采取以下步骤进行排查和解决:1. **检查连接信息**:首先确认你的数据库连接信息(如服务器地址、端口号、数据库名、用户名和密码)是否正确无误。错误的连接信息是最常见的拒绝访问原因。2. **服务器防火墙设置**:检查数据库服务器上的防火墙设置,确保没...

sqlserver无法连接到数据库,怎么解决?

要解决sqlserver无法连接到数据库的问题,需要根据具体的错误信息,逐步排查可能的原因,并采取相应的解决措施。当出现无法连接到SQL Server数据库的情况时,首先要检查的是网络连接。确认数据库服务器是否正常运行,并且客户端与服务器之间的网络连接是畅通的。这可以通过ping命令或其他网络诊断工具来测试。如果...

sql数据库问题,求大神搭救,重重有赏

答:不可以;因为主数据文件存在于主文件组,日志文件不属于任何文件组。3、删除了数据库,其数据文件和日志文件是否已经删除?答:是的,全部已删除;4、TRUNCATE TABLE:删除内容、释放空间但不删除定义。通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。(自增长列重新开始...

连接数据库失败,SQLSTATE=08001怎么解决?

当遭遇SQLSTATE=08001的连接数据库失败问题时,我们需要采取一系列步骤来排查和解决。以下是详细的解决方案:首先,确认端口配置是否正确。检查配置参数svcename与services文件中的DB2端口号是否匹配,Windows通常使用50000,Unix/Linux则为60000。其次,确保服务器的IP地址和端口无误。执行db2listdbdirectory和db2...

数据库问题 数据库关系模式 数据库有哪些 数据库 数据库的基本特点 数据库特点 数据库概念 创建数据库 数据库schema
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
织田n.on汉化合集百度云 织田信奈的野望百度云简体字幕高清速发速采纳 穿越火线手机版怎么申请土豪的号 各位 谁能给我刷级别啊 我玩穿越火线的 要求刷到最高级别的 穿越火线枪战王者牛逼号密码账号 穿越火线土豪号2015年求不玩cf的土豪送给我一个号 ...干姜,甘草,元胡,佛手,鸡内金,红参,白芍,桂枝,大枣,生 过生日早上从楼梯摔下来有什么征兆 为什么无线路由器绿灯一直闪? 今天早上下楼梯的时候,脚一下踩空,摔下去了,当时很痛... 丙炔可以发生消除反应吗 丙炔和丙醛反应生成什么,机理呢? 哪位大哥对化学的有机化学精通的,给我整理一哈人教版的有机化学知识点!详细一点! 丙炔与氢氰酸亲核加成,氰基应该加到炔的哪个碳原子 有机化学, 阿司匹林能迅速解热、镇痛.长效缓释阿司匹林可在体内逐步水解而疗效更佳.用丙酮为主要原料合成长效缓释 丙炔与丙烯加成的化学方程式 丙炔能与乙炔发生二聚么 丙炔如何合成2-己烯 应该有什么样的人生观ppt 急求关于人生意义的PPT 丙炔加成反应 甲鱼活杀放了一天一夜(冰箱里),还能吃么 丙炔(CH3C=CH)发生加聚反应的产物的结构简式? 甲鱼汤放冰箱放了二天能吃吗 丙炔加聚反应方程式 甲鱼煮鸡隔夜后还能吃吗 甲鱼汤第二天还可以喝么 为什么肚子总是觉得饿 甲鱼汤可以过夜了吃吗 手机欢乐麻将怎么切换账号? 青春期孩子情绪失控精神异常 小孩患上精神疾病都有哪些表现? 青少年精神分裂的症状主要有哪些表现呢? 儿童精神问题的阵状有哪些 青春期的精神分裂症在前期都有哪些表现?应该如何预防呢? 青少年精神病的早期症状有哪些 如何判断宝宝有精神方面的问题 青少年精神障碍 12~15岁孩子的自闭症和抑郁症是什么样的? 儿童不正常行为的表现类型,都有哪些? 我的女儿十五岁,从九月份开始,行为有点异常,重复做一件事,请问是否是精神病? 孩子心智发育的异常现象,有哪些特征? 一个15岁女孩得了抑郁症,怎么看出来? 默纳克3000故障报E063怎么解决? 上易效能时间管理课程需要下载那些软件? 把好友删了,请求添加,对话可以聊天,限制聊多少条吗 光阴似箭日月如梭时间总是在不经意间从我们身边悄悄溜走我们能做些什么事使时间更容易更有效地利用呢? 默纳克3000故障代码怎么消除 奇妙清单,timetree,todoist哪一个更好用一些