儲存過程中的迴圈的用法
begin try
begin
transaction --開始事務
declare cur_01 cursor
for --定義游標
select oc_id, obj_code, key_value, pro_code, old_value, old_name, new_value, new_name
from qlc_tobjchange
where sp_state = '117002'
and problem_id = @in_problem_id
open cur_01 --開啟游標
fetch
next
from cur_01 into @v_oc_id, @v_obj_code, @v_key_value, @v_pro_code, @v_old_value, @v_old_name, @v_new_value, @v_new_name --擠壓游標
while @@fetch_status = 0 --開始狀態
begin
.................................
fetch
next
from cur_01 into @v_oc_id, @v_obj_code, @v_key_value, @v_pro_@v_old_value, @v_old_name, @v_new_value, @v_new_name
endclose cur_01 --關閉游標
deallocate cur_01 --銷毀游標
commit
transaction --提交事務
end try
–有些情況下要去掉begin try和end try,否則會報錯
sqlserver 建表語法:
if exists (select
1from sysobjects
where id = object_id('qlc_tbenlimit ')
and type = 'u')
drop
table qlc_tbenlimit
gocreate
table qlc_tbenlimit (
limit_uuid nvarchar(64) not
null
default newid() /*限制uuid*/,
limit_id integer
identity /*限制id*/,
start_date integer
null /*開始日期*/,
input_man_name nvarchar(20) not
null /*操作員名稱*/,
input_time datetime not
null
default getdate() /*操作時間*/,
constraint pk_qlc_tbenlimit primary
key (limit_id))go
mysql 建表語法:
#員工表
create
table tb_emp(
id int
primary
key auto_increment,#auto_increment只是mysql特有的
name varchar(18),
*** varchar(2),
age int,
datetime datetime null
default
current_timestamp comment '建立時間' ;
);
sqlsever 語法 』 』 』 』 想當於python中的 「『 」 用於給變數加上引號
乙個外來鍵下有多條資料
查詢某外來鍵下的 b 同時有b=1,b=2兩種條件的情況
select a.外來鍵 from (select * from 表
where 欄位b=1) as a,
(select * from 表
where 欄位b=2) as b where a.外來鍵=b.外來鍵
sql的檢視技巧
--用union來連線兩張不相關的表,可製造主鍵
drop
gocreate
select
'2_' + convert(nvarchar(20),a.fy_id) as zf_id,a.fy_id,2
as mark, a.regitem_id,
where a.sp_state = '117003'
union
select
'3_' + convert(nvarchar(20),a.product_id) as zf_id,0
as fy_id,3
as mark, a.regitem_id
from qlc_titemreginfo
where a.regitem_id = 200
go
sqlserver和mysql的一些語法差別
1. 字串相加
sqlserver 直接用 +
mysql concat()
2.isnull()
sqlserver isnull()
mysql ifnull()
注意:mysql也有isnull()函式,但意義不一樣
3.getdate()
sqlserver getdate()
mysql now()
4.newid()
sqlserver newid()
mysql uuid()
5.檢視表結構
sqlserver sp_help 表名
mysql desc 表名
6.. if … else …
sqlserver:
if boolean_expression begin
end
else begin
endmysql
if search_condition then statement_list then
end if
對於mysql來說,then, end if是必須的
mysql相關知識 MySQL相關知識
字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...
sql注入原理 mysql相關知識點
sql就是經常說的資料庫,而sql注入就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。sql注入是比較常見的網路攻擊方式之一,它不是利用作業系統的bug來實現攻擊,而是針對程式設計師編寫時的疏忽,通過sql語句,實現無賬號登入,甚至...
SQL學習(一)相關基礎知識
rdbms基礎知識 1 資料庫是按照資料結構來組織 儲存和管理資料的倉庫 資料庫是一些關聯表的集合。2 資料表是資料的矩陣,在乙個資料庫中的表看起來像乙個簡單的電子 3 列 一列包含了相同的資料。5 冗餘 儲存兩倍資料,冗餘降低了效能,但是提高了資料的安全性。6 主鍵 主鍵是唯一的。乙個資料表中只能...