SQL相關知識

2021-08-08 16:57:11 字數 3286 閱讀 4766

儲存過程中的迴圈的用法

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 主鍵 主鍵是唯一的。乙個資料表中只能...