oracle 有個內(nèi)置的偽表,不能直接select 1,你可以這樣寫
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及門窗定制等,在成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
select 1 from dual
就可以了
方法/步驟
打開SQL Server,在數(shù)據(jù)庫處,右鍵數(shù)據(jù)庫,點(diǎn)擊新建數(shù)據(jù)庫
請點(diǎn)擊輸入圖片描述
然后,命名為LX,點(diǎn)擊確定,創(chuàng)建數(shù)據(jù)庫,如圖所示
請點(diǎn)擊輸入圖片描述
創(chuàng)建完,沒有看到新建數(shù)據(jù)庫的,在數(shù)據(jù)庫那右鍵,刷新。如圖所示就出來了
請點(diǎn)擊輸入圖片描述
接著,找到LX數(shù)據(jù)庫下的表,右鍵,新建表,如圖所示
請點(diǎn)擊輸入圖片描述
比如建立一個簡單的部門表,簡單部門表包含(部門編號、部門名),SQL Server 是可以用中文做列名的,但是為了能夠被他人看懂,我們一般用英文,如圖所示,DepertNo,DepertName,我喜歡在列名前加一個fld_,個人養(yǎng)成的一種習(xí)慣,看自己的習(xí)慣吧。因?yàn)槲覀冇袝r候轉(zhuǎn)換成英文,可能會與SQL的某些關(guān)鍵字起沖突,因此我加了個fld_。此外講一下varchar為類型,10為長度,2個長度為1個漢字。
請點(diǎn)擊輸入圖片描述
表設(shè)置主鍵,每個表只能有一個主鍵,右鍵表的最左側(cè),點(diǎn)擊設(shè)置主鍵,最右邊為空自動去勾,主鍵是不能為空的。一般部門號不會為空,部門名也是不會為空,所以也去掉勾,不允許為null。
請點(diǎn)擊輸入圖片描述
輸入好列后,右鍵標(biāo)題,然后點(diǎn)擊保存Table_1,如圖所示,表名前我習(xí)慣加TBL_
請點(diǎn)擊輸入圖片描述
我們使用SQL Server的時候經(jīng)常需要創(chuàng)建表,那么如何操作呢?下面我給大家分享一下。
工具/材料
SQL Server Managment
首先我們打開SQL Server Managment管理軟件,選擇一個數(shù)據(jù)庫,如下圖所示
接下來右鍵單擊表,選擇新建下面的表選項(xiàng),如下圖所示
然后設(shè)置一下表中的字段,如下圖所示
最后按Ctrl+S進(jìn)行表的保存,給表起一個名字即可,如下圖所示
1、查看表和試圖
SELECT * FROM sys.objects WHERE object_id = object_id('表名或視圖名')
在sqlserver中一般可通過查詢sys.objects系統(tǒng)表來得知結(jié)果,不過可以有更方便的方法
如下:
if object_id('tb_table') is not null
print 'exist'
else
print'not exist'
如上,可用object_id()來快速達(dá)到相同的目的,tb_table就是我將要創(chuàng)建的資源的名稱,所以要先判斷當(dāng)前數(shù)據(jù)庫中不存在相同的資源
object_id()可接受兩個參數(shù),第一個如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要創(chuàng)建的是什么類型的資源,
這樣sql可以明確地在一種類型的資源中查找是否有重復(fù)的名字,如下:
if object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二個參數(shù) "u" 就表示tb_table是用戶創(chuàng)建的表,即:USER_TABLE地首字母簡寫
查詢sys.objects中可得到各種資源的類型名稱(TYPE列),這里之舉幾個主要的例子
u ----------- 用戶創(chuàng)建的表,區(qū)別于系統(tǒng)表(USER_TABLE)
s ----------- 系統(tǒng)表(SYSTEM_TABLE)
v ----------- 視圖(VIEW)
p ----------- 存儲過程(SQL_STORED_PROCEDURE)
2、查看表的列名
select * from syscolumns where id=object_id('表名') and name='列名'
3、查看數(shù)據(jù)庫
select * from sys.databases where name = 'student'
4、查看備份設(shè)備
"select * from sys.backup_devices where name ='backupdb'
(添加備份設(shè)備:exec sp_addumpdevice 'disk','backupdb','d:\\backup\\backupdb.bak')
5、查看數(shù)據(jù)文件
select name, physical_name dbfile from sys.master_files where database_id=db_id('student')
master數(shù)據(jù)庫中sysdatabases表(是sqlserver中所有的數(shù)據(jù)庫的庫名) :
如果你要查詢的是所有數(shù)據(jù)庫(用戶/系統(tǒng)):
select * from master..sysdatabases
如果你要查詢的是用戶數(shù)據(jù)庫,則使用:
select * from master..sysdatabases where dbid 4
如果你要查詢的是系統(tǒng)數(shù)據(jù)庫,只需要把where字句改為dbid 4即可。
6、查看執(zhí)行的sql語句
SELECT cacheobjtype,objtype,usecounts,sql
from sys.syscacheobjects where sql not like'%cach%' and sql not like '%sys.%'
2.對應(yīng)數(shù)據(jù)庫中sysobjects表(反應(yīng)的是相應(yīng)數(shù)據(jù)庫中所有的對象):
這個表的用處是最大的,因?yàn)樗锩娲娣诺挠校罕恚ㄏ到y(tǒng)/用戶)、存儲過程(系統(tǒng)/用戶)、視圖、主鍵、外鍵等。
這里就不一一說明了。
比如你sqlserver中有個數(shù)據(jù)庫名叫 test,如果要查詢該數(shù)據(jù)庫中的所有表對象:
select * from test..sysobjects where type = ’u’ or type = ’s’
這里的type = ’u’是表示用戶表對象,type = ’s’是系統(tǒng)表對象,怎樣單獨(dú)查詢用戶表對象或者系統(tǒng)表對象就不用說了吧。
如果你要查詢的是存儲過程當(dāng)然也分了系統(tǒng)和用戶了:
這個是查詢數(shù)據(jù)庫中所有存儲過程
select * from test..sysobjects where type = ’p’
如果你要查詢的是用戶存儲過程則加上 and category 2 即可。
查詢系統(tǒng)存儲過程就不用說了吧(category = 2 誰不知道。。。)
查詢視圖與查詢存儲過程一樣,比如:
你查詢的是數(shù)據(jù)庫中所有視圖
select * from test..sysobjects where type = ’v’
如果你要查詢的是用戶視圖則加上 and category 2 即可。
其他的就不說了,就把 它們的type給大家說下:
type = ’ pk’ 表示主鍵。
type = ’ d’ 外鍵引用。
type = ’uq’ 唯一索引。
下面附錄一些常用系統(tǒng)表
名稱 地址 說明
sysaltfiles 主數(shù)據(jù)庫 保存數(shù)據(jù)庫的文件
syscharsets 主數(shù)據(jù)庫 字符集與排序順序
sysconfigures 主數(shù)據(jù)庫 配置選項(xiàng)
syscurconfigs 主數(shù)據(jù)庫 當(dāng)前配置選項(xiàng)
sysdatabases 主數(shù)據(jù)庫 服務(wù)器中的數(shù)據(jù)庫
syslanguages 主數(shù)據(jù)庫 語言
syslogins 主數(shù)據(jù)庫 登陸帳號信息
sysoledbusers 主數(shù)據(jù)庫 鏈接服務(wù)器登陸信息
sysprocesses 主數(shù)據(jù)庫 進(jìn)程
sysremotelogins主數(shù)據(jù)庫 遠(yuǎn)程登錄帳號
syscolumns 每個數(shù)據(jù)庫 列
sysconstrains 每個數(shù)據(jù)庫 限制
sysfilegroups 每個數(shù)據(jù)庫 文件組
sysfiles 每個數(shù)據(jù)庫 文件
sysforeignkeys 每個數(shù)據(jù)庫 外部關(guān)鍵字
sysindexs 每個數(shù)據(jù)庫 索引
sysmenbers 每個數(shù)據(jù)庫 角色成員
sysobjects 每個數(shù)據(jù)庫 所有數(shù)據(jù)庫對象
syspermissions 每個數(shù)據(jù)庫 權(quán)限
systypes 每個數(shù)據(jù)庫 用戶定義數(shù)據(jù)類型
sysusers 每個數(shù)據(jù)庫 用戶
這個問題要具體分析:
第一,事務(wù)隔離級別基本兩種模式,一種是阻塞式(read committed,repeatable read,serializable)
,一種是非阻塞式(read uncommitted,snapshot)。
默認(rèn)是read committed,這種情況一般在更新表的時候,如果不使用hint 提示,基本是先對表添加IX鎖,級別不算高,基本和其他鎖兼容,但是repeatable read,serializable 事務(wù)隔離級別就會先對表添加IX鎖,然后向X鎖轉(zhuǎn)化,而X鎖和大多數(shù)鎖都不兼容,容易發(fā)生表阻塞。
第二種隔離級別不會有以上問題,但是又引入了其它的問題。
以上是一種情況。
另外一種就是 鎖升級,一個鎖是96B內(nèi)存,如果太多,sqlserver就會升級為表鎖,一般是5000以上行級鎖就升級為一個表X鎖。
所以適當(dāng)?shù)奈募纸M和表分區(qū) 是有必要的。
其次就是資源互相引用導(dǎo)致事務(wù)長時間不能釋放,導(dǎo)致真正的死鎖,不過SQL2005以后,這種情況發(fā)生的概率很低。
留個問題你自己去想。
兩個SQL,兩個連接,同時執(zhí)行。
update A set A.NAME=xxx where A.id=55
update A set A.NAME=xxx where A.id=56, 如果 56 不存在你說會發(fā)生什么情況呢?
網(wǎng)頁題目:sqlserver偽表,sqlserver偽表用法
瀏覽路徑:http://jinyejixie.com/article20/dssesjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、定制開發(fā)、App開發(fā)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)