十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
--查詢數(shù)據(jù)庫(kù)里所有表名和字段名的語(yǔ)句
網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站制作公司創(chuàng)新互聯(lián)建站:定制網(wǎng)站、模板網(wǎng)站、仿站、小程序定制開(kāi)發(fā)、軟件開(kāi)發(fā)、成都app軟件開(kāi)發(fā)公司等。做網(wǎng)站價(jià)格咨詢創(chuàng)新互聯(lián)建站:服務(wù)完善、10余年建站、值得信賴!網(wǎng)站制作電話:18980820575
--SQL
查詢所有表名:
SELECT
NAME
FROM
SYSOBJECTS
WHERE
TYPE='U'
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
--查詢表的所有字段名:
SELECT
NAME
FROM
SYSCOLUMNS
WHERE
ID=OBJECT_ID('
表名'
)
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
---------以下為其他數(shù)據(jù)庫(kù)查詢表----------
--ORACLE
查看所有表名:
SELECT
TABLE_NAME
FROM
USER_TABLES
--ACCESS
查看所有表名:
SELECT
NAME
FROM
MSYSOBJECTS
WHERE
TYPE=1
AND
FLAGS=0
--MSYSOBJECTS
是系統(tǒng)對(duì)象,默認(rèn)情況是隱藏的。通過(guò)工具、選項(xiàng)、視圖、顯示、系統(tǒng)對(duì)象可以使之顯示出來(lái)。
sql中表關(guān)聯(lián)的建立方法:
1、最常用的一種:
減少重復(fù)數(shù)據(jù).表A中擁有外鍵,表B的數(shù)據(jù)基本是不允許刪除的.這時(shí)選擇對(duì)
INSERT
和
UPDATE
強(qiáng)制關(guān)系即可.
2、其次,是增加一個(gè)從屬表.
如果表A刪除一條記錄時(shí),表B中也隨著刪除一條相關(guān)聯(lián)的記錄,那么外鍵關(guān)系中,表A的主鍵是表B的外鍵。這種關(guān)系,實(shí)際上表B是表A的從屬表(即表A是父表),選擇對(duì)
INSERT
和
UPDATE
強(qiáng)制關(guān)系時(shí),如果向表B中插入數(shù)據(jù),表A中必須已經(jīng)存在對(duì)應(yīng)的記錄。選擇級(jí)聯(lián)刪除相關(guān)的字段時(shí),刪除表A中的一條記錄,就會(huì)刪除對(duì)應(yīng)的表B中的一條記錄。
1、查看表和試圖
SELECT * FROM sys.objects WHERE object_id = object_id('表名或視圖名')
在sqlserver中一般可通過(guò)查詢sys.objects系統(tǒng)表來(lái)得知結(jié)果,不過(guò)可以有更方便的方法
如下:
if object_id('tb_table') is not null
print 'exist'
else
print'not exist'
如上,可用object_id()來(lái)快速達(dá)到相同的目的,tb_table就是我將要?jiǎng)?chuàng)建的資源的名稱,所以要先判斷當(dāng)前數(shù)據(jù)庫(kù)中不存在相同的資源
object_id()可接受兩個(gè)參數(shù),第一個(gè)如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說(shuō)明我們所要?jiǎng)?chuàng)建的是什么類型的資源,
這樣sql可以明確地在一種類型的資源中查找是否有重復(fù)的名字,如下:
if object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二個(gè)參數(shù) "u" 就表示tb_table是用戶創(chuàng)建的表,即:USER_TABLE地首字母簡(jiǎn)寫(xiě)
查詢sys.objects中可得到各種資源的類型名稱(TYPE列),這里之舉幾個(gè)主要的例子
u ----------- 用戶創(chuàng)建的表,區(qū)別于系統(tǒng)表(USER_TABLE)
s ----------- 系統(tǒng)表(SYSTEM_TABLE)
v ----------- 視圖(VIEW)
p ----------- 存儲(chǔ)過(guò)程(SQL_STORED_PROCEDURE)
2、查看表的列名
select * from syscolumns where id=object_id('表名') and name='列名'
3、查看數(shù)據(jù)庫(kù)
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ù)庫(kù)中sysdatabases表(是sqlserver中所有的數(shù)據(jù)庫(kù)的庫(kù)名) :
如果你要查詢的是所有數(shù)據(jù)庫(kù)(用戶/系統(tǒng)):
select * from master..sysdatabases
如果你要查詢的是用戶數(shù)據(jù)庫(kù),則使用:
select * from master..sysdatabases where dbid 4
如果你要查詢的是系統(tǒng)數(shù)據(jù)庫(kù),只需要把where字句改為dbid 4即可。
6、查看執(zhí)行的sql語(yǔ)句
SELECT cacheobjtype,objtype,usecounts,sql
from sys.syscacheobjects where sql not like'%cach%' and sql not like '%sys.%'
2.對(duì)應(yīng)數(shù)據(jù)庫(kù)中sysobjects表(反應(yīng)的是相應(yīng)數(shù)據(jù)庫(kù)中所有的對(duì)象):
這個(gè)表的用處是最大的,因?yàn)樗锩娲娣诺挠校罕恚ㄏ到y(tǒng)/用戶)、存儲(chǔ)過(guò)程(系統(tǒng)/用戶)、視圖、主鍵、外鍵等。
這里就不一一說(shuō)明了。
比如你sqlserver中有個(gè)數(shù)據(jù)庫(kù)名叫 test,如果要查詢?cè)摂?shù)據(jù)庫(kù)中的所有表對(duì)象:
select * from test..sysobjects where type = ’u’ or type = ’s’
這里的type = ’u’是表示用戶表對(duì)象,type = ’s’是系統(tǒng)表對(duì)象,怎樣單獨(dú)查詢用戶表對(duì)象或者系統(tǒng)表對(duì)象就不用說(shuō)了吧。
如果你要查詢的是存儲(chǔ)過(guò)程當(dāng)然也分了系統(tǒng)和用戶了:
這個(gè)是查詢數(shù)據(jù)庫(kù)中所有存儲(chǔ)過(guò)程
select * from test..sysobjects where type = ’p’
如果你要查詢的是用戶存儲(chǔ)過(guò)程則加上 and category 2 即可。
查詢系統(tǒng)存儲(chǔ)過(guò)程就不用說(shuō)了吧(category = 2 誰(shuí)不知道。。。)
查詢視圖與查詢存儲(chǔ)過(guò)程一樣,比如:
你查詢的是數(shù)據(jù)庫(kù)中所有視圖
select * from test..sysobjects where type = ’v’
如果你要查詢的是用戶視圖則加上 and category 2 即可。
其他的就不說(shuō)了,就把 它們的type給大家說(shuō)下:
type = ’ pk’ 表示主鍵。
type = ’ d’ 外鍵引用。
type = ’uq’ 唯一索引。
下面附錄一些常用系統(tǒng)表
名稱 地址 說(shuō)明
sysaltfiles 主數(shù)據(jù)庫(kù) 保存數(shù)據(jù)庫(kù)的文件
syscharsets 主數(shù)據(jù)庫(kù) 字符集與排序順序
sysconfigures 主數(shù)據(jù)庫(kù) 配置選項(xiàng)
syscurconfigs 主數(shù)據(jù)庫(kù) 當(dāng)前配置選項(xiàng)
sysdatabases 主數(shù)據(jù)庫(kù) 服務(wù)器中的數(shù)據(jù)庫(kù)
syslanguages 主數(shù)據(jù)庫(kù) 語(yǔ)言
syslogins 主數(shù)據(jù)庫(kù) 登陸帳號(hào)信息
sysoledbusers 主數(shù)據(jù)庫(kù) 鏈接服務(wù)器登陸信息
sysprocesses 主數(shù)據(jù)庫(kù) 進(jìn)程
sysremotelogins主數(shù)據(jù)庫(kù) 遠(yuǎn)程登錄帳號(hào)
syscolumns 每個(gè)數(shù)據(jù)庫(kù) 列
sysconstrains 每個(gè)數(shù)據(jù)庫(kù) 限制
sysfilegroups 每個(gè)數(shù)據(jù)庫(kù) 文件組
sysfiles 每個(gè)數(shù)據(jù)庫(kù) 文件
sysforeignkeys 每個(gè)數(shù)據(jù)庫(kù) 外部關(guān)鍵字
sysindexs 每個(gè)數(shù)據(jù)庫(kù) 索引
sysmenbers 每個(gè)數(shù)據(jù)庫(kù) 角色成員
sysobjects 每個(gè)數(shù)據(jù)庫(kù) 所有數(shù)據(jù)庫(kù)對(duì)象
syspermissions 每個(gè)數(shù)據(jù)庫(kù) 權(quán)限
systypes 每個(gè)數(shù)據(jù)庫(kù) 用戶定義數(shù)據(jù)類型
sysusers 每個(gè)數(shù)據(jù)庫(kù) 用戶
1、打開(kāi)你的SQLserver對(duì)應(yīng)的表,隨便檢索上1-10條記錄,然后把它另存為excel格式列表,此表就是你的一個(gè)模板;
2、打開(kāi)此模板表,再打開(kāi)你已經(jīng)轉(zhuǎn)換好的datatable表,讓后表按照模板表的格式調(diào)整字段次序及對(duì)應(yīng)的值;
3、當(dāng)把datatable表重新調(diào)整好后,再另存為一份;
4、打開(kāi)SQLserver編輯面板,導(dǎo)入即可。如果出現(xiàn)報(bào)錯(cuò),記錄對(duì)應(yīng)的行號(hào),修改或刪除excel表中的對(duì)應(yīng)行,再導(dǎo)入。
你好,很高興能夠給你解答問(wèn)題,給一個(gè)mysql寫(xiě)法,
UPDATE?test_taba?a?set?a.g="關(guān)鍵字"?where?EXISTS?(SELECT?*?from?test_tabb?b?WHERE?a.addr?LIKE?CONCAT('%',b.addr,'%'))
test_taba表(id,addr,g列)類似你的A表
test_tabb表(addr)類似B表
希望可以幫助到你