SQL数据库 请高手解答一下问题 实在不会做。本人初学者
发布网友
发布时间:2022-04-09 01:27
我来回答
共4个回答
热心网友
时间:2022-04-09 02:56
基本都是很基础的语句,最后的区别,网上好多专门介绍这些的文章。
1. select a.userid, a.username, isnull(b.warename, '无物品') as warename
from u_user a left join u_ware b on a.userid = b.userid
2. select b.warename, isnull(a.username, '无人认领') as username
from u_user a right join u_ware b on a.userid = b.userid
3. select isnull(a.sex, '未知'), sum(b.amt) as sum_amt
from u_user a right join u_ware b on a.userid = b.userid
group by isnull(a.sex, '未知')
4. insert into u_user values ('105', '小张', '男')
重复上面三个步骤,直接使用上面三个的语句查询。
5. 1) delete from u_ware where warename = '杯子'
2) update u_ware set warename = '组合床' where warename = '床'
6. select warename, amt * 0.1 as keep_amt
from u_ware
union all
select '合计', sum(amt * 0.1) from u_ware
7. select substring(convert(varchar(10),getdate(),120),1,4) + '年' + substring(convert(varchar(10),getdate(),120),6,2) + '月' + substring(convert(varchar(10),getdate(),120),9,2) + '日'
8. 利用rand()函数,这个函数随机生成0到1的浮点数,那么一周7天,乘以7,就取出1到7之间的浮点数了。如果是一周两天,可以把一周7天分为两部分,前4天一部分,后三天一部分,那么这个随机函数乘以的乘数,就分别有两个,一个是4,一个是3.
select cast(ceiling(rand() * 4) as int) as num1, 4 + cast(ceiling(rand() * 3) as int) as num2
9. 假设某人生日是1989-12-10
select datediff(d, convert(datetime, '1989-12-10', 120), getdate())
10.
CHAR/VARCHAR:这个两个都是字符类型,不同的是,CHAR类型是定长的,而VARCHAR类型是变长的。CHAR(10)和VARCHAR(10),这样的字段存储数据,CHAR(10)的字段,长度是固定的10,而VARCHAR(10),实际长度根据数据来确定,是10只是规定了最长只能是10.
CHAR/NCHAR CHAR类型是按照字节储存,而NCHAR类型是按照字符存储。比如对于中文,CHAR(10),最多只能存储5个汉字,而NCHAR(10),最多可以 存储10个汉字。
LEN/DATALENGTH :这个看看数据库中对二者就解释就知道了。
LEN:返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。
DATALENGTH :返回任何表达式所占用的字节数。
表/视图: 数据库中的数据都是存储在表中的,而视图是基于表的数据创建出来的一个集合,视图的创建来源于表和视图,其实就是把SELECT语句查询固化了。
触发器/存储过程:
触发器是自动的:它们在对表的数据作了任何修改之后立即被激活。
存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它,存储过程并不是自动的,需要用户调用。
存储过程/函数:
函数有*只能返回一个标量,而存储过程可以返回多个。并且函数是可以嵌入在SQL中使用的,可以在SELECT等SQL语句中调用,而存储过程不行。
LEFT JOIN/OUT JOIN
LEFT JOIN/INNER JOIN :left join是左外连接,以连接左边的表为主表,语句查询的结果,主表的结果都会显示,而右边连接的表的数据,连接条件不成立,会补空。参照上面1,2,3的语句。
inner join,是全连接,只能查询连接条件成立的所有数据。
UNION/UNION ALL:UNION ALL只实现两个查询的联合,而UNION在UNION ALL的基础上,会去掉重复数据。UNION的查询效率要低。
SUM/COUNT:而者都是聚合函数,SUM的是求和,而COUNT是求符合条件的总行数
IN/EXISTS :二者好多时候可以实现相同的结果。在语句中,IN前边应该是一个字段,后边要求是一个和前边字段或变量相同类型的数据集合,这个集合可以通过SELECT得到,而EXISTS后边是一个SELECT语句,而这个语句的WHERE条件是传入外部主查询的字段作为连接,如果连接成立,那么就是符合条件。否则不符合条件。
比如 SELECT * FROM STUDENT WHERE ID IN (SELECT ID FROM SCORE)
等同: SELECT * FROM STUDENT WHERE EXISTS (SELECT 1 FROM SCORE WHERE SCORE.ID = STUDENT.ID)
执行时,IN如果后边是查询,需要执行完查询,而EXISTS,则遇到第一个符合查询条件的结果就会自动退出查询,所以效率要高很多。追问感谢大家的帮助 其实我只要类似的问题就可以了
我就是查询条件那些地方每次都写错了 所以很苦恼
热心网友
时间:2022-04-09 04:14
早就毕业了?
不是软件开发专业?
这些题确实很简单,即便是我这种新手也会做,但是就像一楼的兄弟说的那样,在百度知道这个地方,专业性越强的分类,越不可能认真回答伸手党的问题。
而如果你写上自己的一部分代码或想法,有不懂的地方,会有很多热心人的。追问感谢大家的帮助 其实我只要类似的问题就可以了
我就是查询条件那些地方每次都写错了 所以很苦恼
热心网友
时间:2022-04-09 05:49
虽然知道答案但我决定不告诉你,这个是学校的题目吧,认真想想,应该会做出来.
学会自己钻研,或者你给出你的答案大家帮你参考解决错误,这到是可以的.
加油吧.追问不是学校的题目诶
本人早就毕业了
人家专门搞软件的给我出的题目、、、
热心网友
时间:2022-04-09 07:40
很简单的数据库的题,搞软件的给你出题那你也应该是学软件的,学软件数据库是很主要的,买本数据库基础的书好好学习吧。追问感谢大家的帮助 其实我只要类似的问题就可以了
我就是查询条件那些地方每次都写错了 所以很苦恼
大学有这门课程 但是自己没学
大学完全是玩的 现在很后悔 ,所以自学,希望大家谅解 我并不是伸手要答案的
SQL数据库 请高手解答一下问题 实在不会做。本人初学者
存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它,存储过程并不是自动的,需要用户调用。存储过程/函数:函数有限制只能返回一个标量,而存储过程可以返回多个。并且函数是可以嵌入在SQL中使用的,可以在SELECT等SQL语句中调用,而存储过...
...一道关于数据库sql语句的题目,实在不会,请高手帮忙解答一下,谢谢...
1. select * from EMPLOYEE where Salary>(select avg(Salary) from EMPLOYEE group by Dnumber)2. select * from EMPLOYEE where ESSN in (select ESSN from WORKS_ON group by Pnumber,ESSN having Count(1)>=3)3. -- 每个部门的所有职工在每个项目中的工作总时数 Create View DeptPro AS...
本人初学数据库,遇到两道关于SQL的题,请高手指点下,谢谢。
如果 存在有 Scode = '001201' 的数据, 且 Score 表存在一行关联数据。并且 这个外键是 UPDATE CASCADE 的情况下。那么 更新 Students 表, 会同时更新 Score 表。但是由于不知道是什么数据库。因为 Oracle 和 DB2 , 好像是不支持 UPDATE CASCADE 的。SQL Server, MySQL, SQLite , Post...
SQL数据库建库和数据表语句有问题?请高手帮忙解决
针对SQL数据库建库和数据表语句的问题,我们可以按照以下步骤逐一解决:1. 删除已存在的外键约束: ALTER TABLE [dbo].[Elect] DROP CONSTRAINT FK_Elect_Cource; ALTER TABLE [dbo].[Student] DROP CONSTRAINT FK_Student_Depart; ALTER TABLE [dbo].[Teacher] DROP CONSTRAINT FK_Teacher_D...
关于SQL排序问题,请高手帮我改一下,本人SQL初学者
你可以截取前二个字段,3-7是21,1-2是20,然后降序排列。而后分组内再升序。也就是按照21,20的降序排列,21分组内,和20分组内分别升序排列。oracle似乎可以用row_number()over()实现,其他数据库我不清楚开窗函数是什么,可能可以吧。如果1-2的编码不定,那就不好说了要看你的编码规则。
sql数据库 我想了解 有高手给我讲解吗 谢谢了
SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。S...
关于sql数据库 表的疑问
1 是否采用1个表还是分多个表要看你的应用,如果是初学,那还是尽可能的使用3范式来设计数据库。之后可以根据应用系统中的查询请求的需求决定是否将一些表合并或增加冗余字段。因为过多的表会造成大量的连接运算这在数据库中是十分费时的操作。至于安全性方面,当然是多个表好了,这样可以通过对用户授权...
我是菜鸟,请高手帮我解释一下关于JSP数据库连接的代码!感谢啦 !好人...
String sql="select * from test";ResultSet rs=stmt.executeQuery(sql); <!--按sql语句方式查询数据库表中的数据,并将查询到的数据存储到结果集对象rs中(可以想象一个表放到了这个对象中)--> while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> <!--返回第一列的...
我准备学sql语言。sql语言入门的要领和步骤,心得方面的,请高手们说说...
1、基本概念:表、视图等。2、基本命令:select、insert、update、delete。3、联合查询:join(横向,字段联合)、Union(纵向,记录堆叠)。4、存储过程与触发器(有些SQL未必有,但MSSQL肯定有)。5、事务(有些SQL未必有,但MSSQL肯定有)。6、精准掌握和熟练运用上面的方法后,你不再是入门了,向...
sql数据库问题 !!高手请进!
qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!