SQL数据库 基本的 *** 作语句(增、删、改、查)

SQL数据库 基本的 *** 作语句(增、删、改、查),第1张

例子

create table useInfo --创建用户表

(

useId int identity(1,1) priamry key not null, --用户Id,设为主键,标识列,不为空。

useName varchar(10) not null ,--用户名称,不为空

useSex char(2) not null --用户性别,不为空

)

go --批处理

insert into useInfo(useName,useSex) values('小明','男') --想表useInfo里添加信息,Id是标识列,所以不用自己手动添加,它会自动添加,所以只需添加姓名和性别。

update useInfo set useName = '大明' where useName = '小明' --把表里名字叫小明的人名字改为大明

delete from useInfo where useName = '大明' --根据姓名删除表里的信息。

truncate table useInfo --把表里的所有信息都删了,而且把标志列的数清零。如果用delete删除表里的信息 则不会把标识列清零。

select from useInfo --查询useInfo表里的所有信息 表示所有

select 1 from useInfo where useName = '大明' --按条件查询,查询表里名字叫大明的人的信息

SQL数据库语句大全:

1、选择:selectfromtable1where范围

2、插入:insertintotable1(field1,field2)values(value1,value2)

3、删除:deletefromtable1where范围

4、更新:updatetable1setfield1=value1where范围

5、排序:selectfromtable1orderbyfield1,field2[desc]

6、总数:selectcountastotalcountfromtable1

7、求和:selectsum(field1)assumvaluefromtable1

几个高级查询运算词:

A、UNION运算符

UNION运算符通过组合其他两个结果表(例如TABLE1和TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL随UNION一起使用时(即UNIONALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1就是来自TABLE2。

B、EXCEPT运算符

EXCEPT运算符通过包括所有在TABLE1中但不在TABLE2中的行并消除所有重复行而派生出一个结果表。当ALL随EXCEPT一起使用时(EXCEPTALL),不消除重复行。

C、INTERSECT运算符

INTERSECT运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。当ALL随INTERSECT一起使用时(INTERSECTALL),不消除重复行。

USE teachingSystem

GO

--(2)

IF NOT EXISTS(SELECT FROM Student WHERE Sname='张思文')

PRINT '没有张思文这个人,所以你无法修改啦!'

ELSE BEGIN

SELECT Sno,Ssex FROM Student WHERE Sname='张思文'

UPDATE Student SET Sname='张思武' WHERE Sname='张思文'

SELECT Sno,Ssex FROM Student WHERE Sname='张思武'

END

GO

--(3)

DECLARE @I INT,@S INT

SET @I=1

SET @S=0

WHILE @I<=100

BEGIN

SET @S=@S+@I

SET @I=@I+1

END

PRINT @S

GO

--(4)

DECLARE @I INT,@S INT

SET @I=2

SET @S=1

WHILE @I<=10

BEGIN

SET @S=@S@I

SET @I=@I+1

END

PRINT @S

需要两个 扩展组件、(先将易的支持库全选:工具-支持库配置-全选)

数据库连接、记录集

比如有一个数据库temp

那么易中要连接:

需要这样、

数据库连接1连接SQLServer (“”,"temp" ,"sa" ,"123" )

参数分别是 服务器、数据库名、用户名、密码,如果你SQL未设置,后面两参数去掉

该函数返回一个逻辑值,根据反馈回来的值判断是否成功

如果成功

就可以:

数据库连接1执行SQL ()

对一张数据表详细 *** 作

可以:

记录集1置连接 (“temp”)

记录集1读文本 ("某一字段")

看了你的题,首先几个表需要说明一下Out_Goods和In_Goods在定义表时少了Sh_address列,列的属性参考Provider表中的Address

问题解答:

问题1、自定义一个函数,计算供货商编号为PD001所提供产品的平均价格,如果平均价格〉70,则输出“价格适中”;如果平均价格<=70,则输出价格较低。

CREATE FUNCTION [dbo][fn_calc_avg_price]

(

@PID char(10) = 'PD001'-----------货商编号,此处默认值为PD001

)

RETURNS varchar(50) AS

BEGIN

DECLARE @vchPriceDesc varchar(50)

DECLARE @mnyPriceAvg money

SELECT @mnyPriceAvg = AVG(PPrice)

FROM Product WHERE PID = @PID

IF (@mnyPriceAvg > 70) SET @vchPriceDesc = '价格适中'

IF (@mnyPriceAvg <= 70) SET @vchPriceDesc = '价格较低'

RETURN @vchPriceDesc

END

问题2、创建一个内联表值函数,返回一个时间段内的出货信息,要求包括出货商品名称、供货商名称、出货价格、出货数量、出货日期。

CREATE FUNCTION [dbo][fn_get_out_goods_info]

(

@dtBeginTime datetime, --------------------------时间段的起始时间

@dtEndTime datetime --------------------------时间段的终止时间

)

RETURNS @TempTable table

(

out_product_name varchar(20),

out_provider_name varchar(20),

out_product_price money,

out_product_num int,

out_date datetime

)

AS

BEGIN

INSERT INTO @TempTable

SELECT

ProductPName,

ProviderProviderName,

Out_GoodsOutPrice,

Out_GoodsOutNum,

Out_GoodsOutDate

FROM

Product, Provider, Out_Goods

WHERE

ProviderProviderId = Out_GoodsProviderId

AND ProductPId = Out_GoodsPId

AND Out_GoodsOutDate <= @dtEndTime

AND Out_GoodsOutDate >= @dtBeginTime

RETURN

END

问题3、创建一个after触发器,当Provider 供货商信息表中的ProviderId发生更改时,同时更改In_Goods进货信息表和Out_Goods出货信息表ProviderId字段的值。

CREATE TRIGGER [trig_update_proID]

ON [dbo][Provider]

AFTER UPDATE

AS

IF UPDATE(ProviderID)

BEGIN

UPDATE In_Goods SET ProviderID = (SELECT ProviderID FROM INSERTED) WHERE ProviderID = (SELECT ProviderID FROM DELETED)

UPDATE Out_Goods SET ProviderID = (SELECT ProviderID FROM INSERTED) WHERE ProviderID = (SELECT ProviderID FROM DELETED)

END

问题4、定义一个存储过程,要求使用游标,计算某段时间内售出产品的平均价格。

坦白的说,其实没必要使用游标,既然用了,那就顺便用下WHILE循环好了

CREATE PROCEDURE [dbo][sp_calc_part_sales_price]

(

@dtBeginTime datetime,

@dtEndTime datetime

)

AS

DECLARE @mnyTotalPrice money

DECLARE @mnyCurPrice money

DECLARE @nCount int SELECT @nCount = 0

DECLARE cursPrice CURSOR LOCAL

FOR SELECT OutPrice FROM Out_Goods WHERE Out_GoodsOutDate <= @dtEndTime AND Out_GoodsOutDate >= @dtBeginTime

OPEN cursPrice

FETCH NEXT FROM cursPrice INTO @mnyCurPrice

WHILE @@FETCH_STATUS=0

BEGIN

SET @nCount = @nCount + 1

SET @mnyTotalPrice = @mnyTotalPrice + @mnyCurPrice

FETCH NEXT FROM cursPrice INTO @mnyCurPrice

END

IF @nCount = 0 SELECT 0 AS '平均价格'

IF @nCount > 0 SELECT @mnyTotalPrice/@nCount AS '平均价格'

OK,就这样吧,如果有不明白或者我写错的地方,再联系,Good Luck!

以上就是关于SQL数据库 基本的 *** 作语句(增、删、改、查)全部的内容,包括:SQL数据库 基本的 *** 作语句(增、删、改、查)、SQL数据库语句大全(sqlserver数据库简单SQL语句)、关于数据库SQL语句编写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9349805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存