當前位置:首頁 » 編程語言 » sqlchartoint

sqlchartoint

發布時間: 2023-05-21 19:18:37

『壹』 sql高手進

1.創建庫
CREATE DATABASE [SiteFactory] ON PRIMARY
( NAME = N'SiteFactory', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SiteFactory.mdf' , SIZE = 7168KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'SiteFactory_log', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL.1\老鄭MSSQL\DATA\SiteFactory_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO
EXEC dbo.sp_dbcmptlevel @dbname=N'SiteFactory', @new_cmptlevel=90
GO

2. 查詢:Select * from 表名
更新:update 表名 set 欄位名=值 where 條件
刪除:跡賀 Delete from 表名 where 條件
插入:Insert into 表名(欄位1,字姿含派段2)values(值1,值2)
3.創建存儲過程
CREATE PROCEDURE <Procere_Name, sysname, ProcereName>
-- Add the parameters for the stored procere here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procere here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
調用存儲過程 exec 存儲過程名稱 參數1,參數2
5.游標使用
Declare tb Cursor LOCAL
FOR
select DeptID from Department where ParentID=@DeptID order by DeptID
set @level =@level+1
Open TB
Fetch tb into @DeptID
While @@FETCH_STATUS=0
BEGIN
set @sort = @sort+1
INSERT @t_Level VALUES(@DeptID,@level,@sort)
IF @@NESTLEVEL<32
BEGIN
INSERT @t_Level SELECT * FROM func_AdminDeptList(@DeptID,@level,@sort)
SET @sort=@sort+@@ROWCOUNT
END
FETCH tb INTO @DeptID
END
RETURN
6. 創建函數
CREATE FUNCTION <Table_Function_Name, sysname, FunctionName>
(
-- Add the parameters for the function here
<@param1, sysname, @p1> <data_type_for_param1, , int>,
<@param2, sysname, @p2> <data_type_for_param2, , char>
)
RETURNS
<@Table_Variable_Name, sysname, @Table_Var> TABLE
(
-- Add the column definitions for the TABLE variable here
<Column_1, sysname, c1> <Data_Type_For_Column1, , int>,
<Column_2, sysname, c2> <Data_Type_For_Column2, , int>
)
AS
BEGIN
-- Fill the table variable with the rows for your result set

RETURN
END
GO

『貳』 簡單sql存儲過程實例、儲過程實戰

實例1:只返回單一記錄集的存儲過程。
銀行存款表(bankMoney)的內容如下
Id
userID
Sex
Money
001
Zhangsan

30
002
Wangwu

50
003
Zhangsan

40
要求1:查詢表bankMoney的內容的存儲過程
create
procere
sp_query_bankMoney
as
select
*
from
bankMoney
go
exec
sp_query_bankMoney
注*
在使用過程中只需要把中的SQL語句替換為存儲過程名,就可以了很方便吧!
實例2(向存儲過程中傳遞參數):
加入一筆記錄到表bankMoney,並查詢此表中userID=
Zhangsan的所有存款的總金額。
Create
proc
insert_bank
@param1
char(10),@param2
varchar(20),@param3
varchar(20),@param4
int,@param5
int
output
with
encryption
---------加密
as
insert
bankMoney
(id,userID,sex,Money)
Values(@param1,@param2,@param3,
@param4)
select
@param5=sum(Money)
from
bankMoney
where
userID='Zhangsan'
go
在SQL
Server查詢分析器中執行該存儲過程的方法是:
declare
@total_price
int
exec
insert_bank
'004','Zhangsan','男',100,@total_price
output
print
'總余額為'+convert(varchar,@total_price)
go
在這里再啰嗦一下存儲過程的3種傳回值(方便正在看這個例子的朋友不用再去查看語法內容):
1.以Return傳回整數
2.以output格式傳回參數
3.Recordset
傳回值的區別:
output和return都可在批次程式中用變數接收,而recordset則傳回到執行批次的客戶端中。
實例3:使用帶有復雜
SELECT
語句的簡單過程
下面的存儲過程從四個表的聯接中返回所有作者(提供了姓名)、出版的書籍以及出版社。該存儲過程不使用任何參數。
USE
pubs
IF
EXISTS
(SELECT
name
FROM
sysobjects
WHERE
name
=
'au_info_all'
AND
type
=
'P')
DROP
PROCEDURE
au_info_all
GO
CREATE
PROCEDURE
au_info_all
AS
SELECT
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
GO
au_info_all
存儲過程可以通過以下方法執行:
EXECUTE
au_info_all
實例4:使用帶有參數的簡單過程
CREATE
PROCEDURE
au_info
@lastname
varchar(40),
@firstname
varchar(20)
AS
SELECT
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
WHERE
au_fname
=
@firstname
AND
au_lname
=
@lastname
GO
au_info
存儲過程可以通過以下方法執行:
EXECUTE
au_info
'Dull',
'Ann'
--
Or
EXECUTE
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
Or
EXECUTE
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'
實例5:使用帶有通配符參數的簡單過程
CREATE
PROCEDURE
au_info2
@lastname
varchar(30)
=
'D%',
@firstname
varchar(18)
=
'%'
AS
SELECT
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
WHERE
au_fname
LIKE
@firstname
AND
au_lname
LIKE
@lastname
GO
au_info2
存儲過程可以用多種組合執行。下面只列出了部分組合:
EXECUTE
au_info2
--
Or
EXECUTE
au_info2
'Wh%'
--
Or
EXECUTE
au_info2
@firstname
=
'A%'
--
Or
EXECUTE
au_info2
'[CK]ars[OE]n'
--
Or
EXECUTE
au_info2
'Hunter',
'Sheryl'
--
Or
EXECUTE
au_info2
'H%',
'S%'

『叄』 sql中int轉char的問題

declare @i int
declare @m varchar(2) --change to varchar(2)
set @i = 0
while @i < 96
begin
--set @m=convert(varchar,@i)
set @m=cast(@i as varchar)
print '消橋Face/'+@m+'.gif'叢橋數
set @i = @i + 1
end

--result
Face/滲首0.gif
Face/1.gif
Face/2.gif
Face/3.gif
Face/4.gif
Face/5.gif
Face/6.gif
Face/7.gif
Face/8.gif
Face/9.gif
Face/10.gif
Face/11.gif
Face/12.gif
Face/13.gif
Face/14.gif
...........

『肆』 一個sql語句問題

解釋:to_char用來把日期型,整液春輪數型等類型強制轉換成字元型,
比如TIMES 欄位為 2009-07-02格式是日期格式的。森並
用to_Char轉換結果為鬧信:
select to_char(times,'yyyymm') from al;
結果:
200907

『伍』 oracle中如何將varchar型轉換成int型

這樣:select to_number('123') from al

oracle沒有顯示的INT型,你直接定義成number就好,強制類型知缺察轉換函數都差不多,轉扮型換為日期型就是TO_DATE(),

轉換為數字就是TO_NUM(),轉換為字搭茄符就是TO_CHAR(),括弧中跟需要轉換的內容,日期型注意格式掩碼。

(5)sqlchartoint擴展閱讀:

注意事項

CAST()和CONVERT()函數可用來獲取一個類型的值,並產生另一個類型的值。
這個類型可以是以下值其中的一個:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED[INTEGER]

TIME

UNSIGNED[INTEGER]

所以也可以用CAST解決問題:

selectserver_idfromcardserverwheregame_id=1orderbyCAST(server_idasSIGNED)desclimit10

也可以使用CONVERT來搞定此問題:

selectserver_idfromcardserverwheregame_id=1orderbyCONVERT(server_id,SIGNED)desclimit10

『陸』 sql 取字元串的值 並加一

不同的有不同方法的額,支持正則就很快,不支持就使用自定義函數實現。
正則方法(Oracle)

SELECT SUBSTR('WIN000018'
,1
,LENGTH('WIN000018') -
LENGTH(REGEXP_REPLACE('WIN000018', '[^0-9]+0+', ''))) ||
TO_CHAR(TO_NUMBER(REGEXP_REPLACE('WIN000018', '[^0-9]', '')) + 1)
FROM DUALCREATE
FUNCTION [dbo].[GET_NUMBER_ADD1](@P VARCHAR(100)) RETURNS VARCHAR(100)
AS
BEGIN

DECLARE @S NVARCHAR(100)
DECLARE @R NVARCHAR(100)
DECLARE @I INT
DECLARE @J INT

SET @I=LEN(@P)

SET @S = @P

WHILE PATINDEX('%[^0-9]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
END

SET @J= convert(int,@s)+1
set @R=right('00000000'+convert(nvarchar,@j),len(@i))
set @R= left(@p,@i-len(@i))+@R

RETURN @R

END
--select GET_NUMBER_ADD1('WIN000018') from temp

『柒』 在sql語句中怎樣把char類型轉換成int類型

首先char類型的必須是數字,將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;

例如:將pony表中的d 進行排序,可d的定義為varchar,可以這樣解決;

select * from pony order by (d+0);

在進行ifnull處理時,比如 ifnull(a/b,'0') 這樣就會導致 a/b成了字元串,因此需要把'0'改成0,即可解決此困擾;

比較數字和varchar時,比如a=11,b="11ddddd"。

(7)sqlchartoint擴展閱讀

char類型佔1位元組,就是8位,所能存儲的正整數是 0111 1111,即127。現在將 int 型的整數i= 128 賦予ch,會產生溢出。

因128是 int 型,占 4 位元組,二進制代碼為 0000 0000 0000 0000 0000 0000 1000 0000.。若將它賦給一個只有8位的char 類型變數,只能將低8位的1000 0000 放進去,其他的都會被刪掉。

整數在計算機中都是以補碼的形式存儲的,此時1000 0000 在計算機的眼裡,是一個補碼,最左邊是 1 表示負數,補碼1000 0000 所對應的十進制是 -128,所以最後輸出的就是 -128。因此溢出會使得最大正整數變成最小負整數。

『捌』 [Err] 42000 - [SQL Server]從數據類型 char 轉換為 int 時出錯。

char*轉換

Qt下面,字元串都用QString,確實給開發者提供了方便,想想VC裡面定義的各種變數類型,而且函數參數類型五花八門,經常需要今年新那個類型轉換
Qt再使用第三方開源庫時,由於庫的類型基本上都是標準的類型,字衫敬符串遇的多的就是Char*類型
在Qt下怎樣將QString轉char*呢,需要用到QByteArray類,QByteArray類的或凳慎說明詳見Qt幫助文檔。
因為char*最後都有一個『/0』作為結束符,而採用QString::toLatin1()時會在字元串後面加上『/0』
方法如下:
Qstring str;
char* ch;
QByteArray ba = str.toLatin1();
ch=ba.data();
這樣就完成了QString向char*的轉化。經測試程序運行時不會出現bug
注意第三行,一定要加上,不可以str.toLatin1().data()這樣一部完成,可能會出錯。

補充:以上方法當QString里不含中文時,沒有問題,但是QString內含有中文時,轉換為char*就是亂碼,採用如下方法解決:
方法1:
添加GBK編粗銀碼支持:
#include <QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
然後改變上面的第三行為:QByteArray ba = str.toLoacl8Bit(); toLoacl8Bit支持中文
方法2:
先將QString轉為標准庫中的string類型,然後將string轉為char*,如下:
std::string str = filename.toStdString();
const char* ch = str.c_str();

熱點內容
登陸認證失敗請檢查伺服器地址 發布:2025-05-20 07:06:55 瀏覽:831
無限分類實現php 發布:2025-05-20 06:57:40 瀏覽:681
數據結構c語言版嚴蔚敏李冬梅 發布:2025-05-20 06:55:05 瀏覽:449
iphone快捷訪問 發布:2025-05-20 06:55:05 瀏覽:928
如何加密硬碟分區 發布:2025-05-20 06:52:29 瀏覽:362
反編譯gd 發布:2025-05-20 06:52:23 瀏覽:838
java源碼知乎 發布:2025-05-20 06:47:59 瀏覽:483
dos解壓縮命令 發布:2025-05-20 06:47:57 瀏覽:639
安卓傳數據給蘋果的軟體叫什麼 發布:2025-05-20 06:42:48 瀏覽:804
怎麼樣盤解壓力 發布:2025-05-20 06:37:08 瀏覽:85