當前位置:首頁 » 編程語言 » sql0010
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql0010

發布時間: 2022-11-02 13:41:29

sql的查詢語句

都是最基本的sql語句,先把創建表的給你。後面的太多了,有空再寫。
(一)
1.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Dept]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Dept]
GO
CREATE TABLE [dbo].[Dept] (
[Dno] [Char] (4)NOT NULL primary key,
[Ename] [char] (20) NOT NULL ,
[Dnum ] [int] check(Dnum >=0)
UNIQUE (Ename)

) ON [PRIMARY]
GO

2.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Employee]
GO
CREATE TABLE [dbo].[Employee] (
[Eno] [Char] (6)NOT NULL primary key,
[Dname] [char] (16) NOT NULL ,
[Esex ] [char](1) CHECK(Esex='F' OR Esex='M'),
[Eage] [Smallint] check(Dnum >=0),
[Esalary] [Money](1) check(Smallint >=16 and Smallint<=60),
[Ety] [char](15) DEFAULT'助教'),
[Dno] [char](4) FOREIGN KEY (Dno) REFERENCES Dept(Dno)
) ON [PRIMARY]
GO

㈡ sql中查詢序中0010,0020,0030,0040,0050 。如果沒有0030我要怎麼能查的出來!

沒明白你的意思, 你是不是想查詢出工序不是0030的記錄? 詳細描述你想執行的查詢。

㈢ sql update 命令

請問您的意思是不是
更新資料庫所有的表中,[編號]欄位為0010的數據
將其[成本]欄位更新為1000
?
如果是這樣
update
表名
set
成本=1000
where
編號=0010

㈣ sql問題:將截斷字元串或二進制數據。

你的欄位容量太小,插入數據時導致數據溢出..
Create DataBase zhusu
GO

use zhusu
create table 旅館(
編號 varchar(10) primary key,
名稱 varchar(20) not null,
地址 varchar(50) not null,
備注 varchar(40)
)
create table 投宿(
編號 varchar(10) not null,
名稱 varchar(20) not null,
一周價格 varchar(5),
聯系人 varchar(10),
電話 bigint,
foreign key (編號) references 旅館(編號)
)
go
alter table 投宿
add constraint uk_name
unique(名稱)
use zhusu
insert 旅館 values('藝苑度假村','洲鄉藝苑路17號',null)
insert 旅館 values('0002','理想飯店','洲鄉理想街111號',null)
insert 旅館 values('0003','樂工旅社','洲鄉樂工街110號',null)
insert 旅館 values('0004','莫內花園','洲鄉莫內街109號',null)
insert 旅館 values('0005','鯉魚山莊','洲鄉鯉魚池108號',null)
insert 旅館 values('0006','豐田納園','洲鄉豐田體育管',null)
insert 旅館 values('0007','歲月民宿','洲鄉歲月路100幢',null)
insert 旅館 values('0008','大愛電場','洲鄉大愛路',null)
insert 旅館 values('0009','布拉格酒店','洲鄉布拉格廣場',null)
insert 旅館 values('0010','路遇餐廳','洲鄉路遇路1號',null)

insert 投宿 values('0002','理想飯店','1200','訂房部',8777777)
insert 投宿 values('0003','樂工旅社','2300','蔡飽',8666666)
insert 投宿 values('0004','莫內花園','5000','富翁',8588888)
insert 投宿 values('0005','鯉魚山莊','3800','范匹',8333333)
insert 投宿 values('0006','豐田納園','2800','蔡雕',8111111)
insert 投宿 values('0007','歲月民宿','800','師仔',8222222)
insert 投宿 values('0008','大愛電場','1800','蔡飽',8666666)
insert 投宿 values('0009','布拉格酒店','8800','富翁',8588888)
insert 投宿 values('0010','路遇餐廳','1500','邦邦',8555555)

這樣應該就不會有問題了..
不過foreign key (編號) references 旅館(編號) 這句話我沒看懂什麼意思...去了能不...= =!

㈤ 關於SQL資料庫查詢指令

說實話,不是看著這80分,我還真不敢隨便回答你,因為看得出,你對資料庫的了解,,,,真的還,,,,,
1.首先你得知道表名、欄位,比如人物級別,你得知道它的欄位是什麼,一般不會用中文,可能的是 lv,弄清楚人物級別和標識的欄位名字後,我們可以開始查詢了

2.現在假設人物級別欄位為lv,標識為 index,假設表名為 table
1-25級(包括1級,包括25級)人物標識為0001的語句:
select * from table where lv>=1 and lv<=25 and index='0001'
標識為0002的,而且級別是25-60(包括25,包括60)的語句:
select * from table where lv>=25 and lv<=60 and index='0002'

這樣根據各個運行結果的條數,就可以看出對應人物有多少個
也可以這樣寫:
select count(*) from table where lv>=1 and lv<=25 and index='0001'
select count(*) from table where lv>=25 and lv<=60 and index='0002'
這樣可以各只出現一條,看對應數字就可以了。

或者你需要2個在一條中看出來?按以下寫;
select sum(case when lv>=1 and lv<=25 and index='0001' then 1 else 0 end) 標識0001的25級以下的,sum(case when lv>=25 and lv<=60 and index='0002' then 1 else 0 end) 標識0002的25以上的 from table

以上語句,如果你 需要不包括,只需要把級別對應前面的等號去掉就OK了

OK,搞定,給分啦,好辛苦。嘿嘿

補充一下,你的資料庫名,表名,欄位名,這是任何人都猜不到的,因為是寫程序的人自定義的,誰知道那天殺的怎麼想。你可以去對應伺服器的企業管理器里找,,,就可以找到了,當然最直接的是問程序開發者,或者看代碼(估計你也看不出來,,,汗一個)

㈥ 用SQL查詢每個學生的所選課程的最高成績 要求列出學號,姓名,課程編號,分數 已經得到如下結果 多謝咯

用了聚合函數就需要對其(group by )分組

select STUDENT.學號,姓名,課程名稱,max(分數)
FROM GRADE JOIN STUDENT ON GRADE.學號=STUDENT.學號 JOIN CURRICULUM ON GRADE.課程編號=CURRICULUM.課程編號 group by STUDENT.學號,姓名,課程名稱

㈦ 求sql語句數據里有0001,0010,0101如何只去掉1前邊的0

可以先轉換成int型,再換回varchar就可以
select convert(varchar(4),convert(int,'0001'))

㈧ SQL 存儲過程建立和使用方法

Sql Server的存儲過程是一個被命名的存儲在伺服器上的Transacation-Sql語句集合,是封裝重復性工作的一種方法,它支持用戶聲明的變數、條件執行和其他強大的編程功能。 存儲過程相對於其他的資料庫訪問方法有以下的優點: (1)重復使用。存儲過程可以重復使用,從而可以減少資料庫開發人員的工作量。 (2)提高性能。存儲過程在創建的時候就進行了編譯,將來使用的時候不用再重新編譯。一般的SQL語句每執行一次就需要編譯一次,所以使用存儲過程提高了效率。 (3)減少網路流量。存儲過程位於伺服器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網路傳輸的數據量。 (4)安全性。參數化的存儲過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke許可權應用於存儲過程。 存儲過程一共分為了三類:用戶定義的存儲過程、擴展存儲過程以及系統存儲過程。 其中,用戶定義的存儲過程又分為Transaction-SQL和CLR兩種類型。 Transaction-SQL 存儲過程是指保存的Transaction-SQL語句集合,可以接受和返回用戶提供的參數。 CLR存儲過程是指對.Net Framework公共語言運行時(CLR)方法的引用,可以接受和返回用戶提供的參數。他們在.Net Framework程序集中是作為類的公共靜態方法實現的。(本文就不作介紹了) 創建存儲過程的語句如下:Code
CREATE { PROC | PROCEDURE } [schema_name.] procere_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ [ OUT [ PUT ]
] [ ,n ]
[ WITH <procere_option> [ ,n ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ n ] | <method_specifier> }
[;]
<procere_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE_AS_Clause ]

<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }

<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name [schema_name]: 代表的是存儲過程所屬的架構的名稱 例如: Create Schema yangyang8848
Go
Create Proc yangyang8848.AllGoods
As Select * From Master_Goods
Go 執行:Exec AllGoods 發生錯誤。 執行:Exec yangyang8848.AllGoods 正確執行。 [;Number]: 用於對同名過程進行分組的可選整數。使用一個 DROP PROCEDURE 語句可將這些分組過程一起刪除。 例如: Create Proc S1 ;1
AS
Select * From Master_Goods
Go
Create Proc S1 ;2
As
Select * From Master_Location
Go 創建完畢了兩個存儲過程。它們在同一個組S1里,如果執行Exec S1 則存儲過程默認執行 Exec S1 ;1 。如果我們想得到所有據點信息則需要執行Exec S1 ;2。當我們要刪除存儲過程的時候,只能執行Drop Exec S1 則該組內所有的存儲過程被刪除。 [@ parameter]: 存儲過程中的參數,除非將參數定義的時候有默認值或者將參數設置為等於另一個參數,否則用戶必須在調用存儲過程的時候為參數賦值。 存儲過程最多有2100個參數。 例如: Create Proc yangyang8848.OneGoods
@GoodsCode varchar(10)
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Go 調用的代碼: Declare @Code varchar(10)
Set @Code = '0004'
Exec yangyang8848.OneGoods @Code 在參數的後邊加入Output 表明該參數為輸出參數。 Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) output,@GoodsCode varchar(10) = '0011'
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go 調用方法:
Declare @VV2 varchar(10)
Exec yangyang8848.OneGoods @Code out 注意:如果存儲過程的兩個參數一個有默認值一個沒有,那麼我們要把有默認值得放在後邊,不然會出問題哦~~ 細心的朋友,可能看到上邊的語句有一些不同,比如,存儲過程用的是output,而調用語句用的是out。我要告訴您,兩者是一樣的。 [RECOMPILE]:指示資料庫引擎 不緩存該過程的計劃,該過程在運行時編譯。如果指定了 FOR REPLICATION,則不能使用此選項。對於 CLR 存儲過程,不能指定 RECOMPILE。 這個說一個非常好用的函數 OBJECT_ID :返回架構范圍內對象的資料庫對象標識號。 例如:我們創建存儲過程時,可以如下寫代碼 If Object_ID('yangyang8848.OneGoods') Is Not Null
Drop Proc yangyang8848.OneGoods
Go Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) out,@GoodsCode varchar(10) = '0011'
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go 針對於上邊的這個存儲過程,我們調用以下SQL查詢 Select definition From sys.sql_moles
Where object_id = Object_ID('yangyang8848.OneGoods'); 我們是可以查到結果的。 可是如果我們對該存儲過程加入[ ENCRYPTION ] 那麼你將無法看到任何結果 If Object_ID('yangyang8848.OneGoods') Is Not Null
Drop Proc yangyang8848.OneGoods
Go Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) out,@GoodsCode varchar(10) = '0011' With Encryption
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go</SPAN> 然後我們查詢 sys.sql_moles 目錄視圖,將返回給你Null。</p> 然後我們執行以下SQL: Exec sp_helptext 'yangyang8848.OneGoods' 你將得到以下結果:The text for object 'yangyang8848.OneGoods' is encrypted. 說到這里你應該明白了,參數[ ENCRYPTION ]:是一種加密的功能, 將 CREATE PROCEDURE 語句的原始文本轉換為模糊格式。模糊代碼的輸出在 SQL Server 2005 的任何目錄視圖中都不能直接顯示。對系統表或資料庫文件沒有訪問許可權的用戶不能檢索模糊文本。但是,可通過 DAC 埠訪問系統表的特權用戶或直接訪問資料庫文件的特權用戶可使用此文本。此外,能夠向伺服器進程附加調試器的用戶可在運行時從內存中檢索已解密的過程。 前兩天寫了一篇關於游標的介紹文章 ,下邊寫一個例子,將游標與存儲過程一起使用上: If Object_ID('dbo.GetMasterGoods') Is Not Null
Drop Proc dbo.GetMasterGoods
Go Create Proc GetMasterGoods
@MyCursor Cursor Varying Output
With Encryption
As
Set @MyCursor = Cursor
For
Select GoodsCode,GoodsName From Master_Goods
Open @MyCursor
Go --下邊建立另外一個存儲過程,用於遍歷游標輸出結果 Create Proc GetAllGoodsIDAndName
As Declare @GoodsCode varchar(18)
Declare @GoodsName nvarchar(20)
Declare @MasterGoodsCursor Cursor
Exec GetMasterGoods @MasterGoodsCursor out
Fetch Next From @MasterGoodsCursor
InTo @GoodsCode,@GoodsName
While(@@Fetch_Status = 0)
Begin
Begin
Print @GoodsCode + ':' + @GoodsName
End
Fetch Next From @MasterGoodsCursor
InTo @GoodsCode,@GoodsName
End
Close @MasterGoodsCursor
Deallocate @MasterGoodsCursor
Go 最後執行Exec GetAllGoodsIDAndName結果為以下內容 0003:品0003
0004:品0004
0005:123123
0006:品0006
0007:品0007
0008:品0008
0009:品0009
0010:品0010
0011:品0011
0012:品0012
0013:品0013
0014:品0014

㈨ 怎麼在SQL資料庫中填充「0」或者「1」這樣的數據

--循環插入:把十進制轉換成二進制,然後把二進制換成字元型,SUBSTRING取位插入CREATE FUNCTION dbo.inttobit (@number int)
returns varchar(100)
as
BEGIN
DECLARE @i int
DECLARE @j float
DECLARE @m int
DECLARE @OUT1 varCHAR(1)
DECLARE @OUT2 varchar(20)
SET @i=@number
set @out2=' '
WHILE @i>=1
BEGIN
SET @j=@i/2
SET @m=@i%2
SET @i=floor(@j)
SET @OUT1=cast(@m as char(1))
SET @OUT2=@OUT1+@OUT2
END
RETURN @OUT2
END

㈩ C# 怎麼把整數數值前面的0去掉,比如0010變成10,有沒有什麼自帶的公式可以解決。這個值是在做sql查詢得到

這就是個字元串,怎麼會是整數類型呢
強制轉換成int型就沒有了,Convert.ToInt32("0010")