用sql獲取資料庫中所有的表名的方法:
1、oracle下:select table_name from all_tables;
2、MySQL下:select table_name from information_schema.tables where table_schema='csdb' and table_type='base table';
3、sql server下:select name from sys.tables go
㈡ SQL實戰新手入門:獲取數據-SELECT語句(1)
獲取數據 SELECT語句( )
現在MYLIBRARY表中已經有了數據 可以對該表執行查詢 以精確地查找所具有的圖書 SELECT語句用於從表中獲取數據 要使用SELECT語句獲取數據 只需要告訴它表名和列名
SELECT all_my_books FROM myLibrary;
盡管該查詢可以產生一個圖書信息的列表 但它還不是特別有用 該圖書信息是一大堆的數據 將其存儲在一個關系型資料庫中的唯一好處就是可以輕而易舉地重新獲取或列印這些信息 如果要搜索數據呢?要查找是否有某一本特定的圖書 必須獲取所有的記錄 然後人工地逐一遍歷每一條記錄!這並不是我們期望從一個復雜的RDBMS軟體獲得的結果
需要採用某種辦法來標識存儲在表中的記錄的特殊關鍵詞 例如圖書名稱或ISBN號 對於該問題 一個標準的程序設計方式的答案就是對記錄進行解析 將記錄切分為多個片段 並在一個循環中遍歷查找特定的目標詞彙 對於表中的每一條記錄重復執行這一過程 如果沒有特定於廠商的過程化擴展 SQL無法執行任何類似的操作 這種方式違背了SQL語言是一種聲明性語言的本質 並要求深刻地理解數據結構 下面讓我們再看一看輸入到MYLIBRARY表中的第一條記錄
SQL Bible by Alex Kriegel Boris M Trukhnov Paperback: pages
Publisher: Wiley; edition (April ) Language: English
ISBN :
如何才能將記錄切分為不同的信息片段呢?每一個片段之間的標記是什麼呢?如何區分圖書的名稱和作者呢?如果使用空格符作為分隔符 那麼SQL和Bible將被切分為不同的片段 但在邏輯上SQL和Bible屬於同一個信息片段 如何才能知道by是一個介詞 而不是作者姓名中的一部分?解決的辦法來自SQL結構化的本性 畢竟SQL是一種結構化的查詢語言 要解決這一問題 需要更多的列來存儲不同片段的信息 將一個笨重的字元串拆分為多個語義上有著密切聯系的數據片段就可以獨立地標識每一個數據片段 因為每一個片段都成為一個單獨的列 回到CREATE TABLE語句(首先刪除現有的表)
DROP TABLE myLibrary;
根據上面的討論創建一個新表
CREATE TABLE myLibrary
(
title VARCHAR( )
author VARCHAR( )
author VARCHAR( )
publisher VARCHAR( )
pages INTEGER
publish_date VARCHAR( )
i *** n VARCHAR( )
book_language VARCHAR( )
)
在新表的結構中 將原來的單個列拆分為 個列 另外還可以添加第 個列 將作者的名和姓拆分到兩個單獨的列中(這就是將在第 章中討論的數據建模過程) 就目前而言 除了將PAGES列的數據類型設置為INTEGER類型以表示圖書包含多少頁之外 對於其他所有的列都使用了相同的數據類型 並縮短了每一個列中所能包含的字元數量 本章後面將進一步解釋將PAGES列設置為INTEGER類型的原因 讀者或許還會考慮到修改PUBLISH_DATE列的數據類型 通常情況下 日期數據的行為與字元數據不同 DBMS提供了專門用於日期和時間的數據類型
現在 無須將所有的數據都保存在同一個桶中 對於各個列的數據類型可以有更多的選擇 可以將不同的列定義為不同的數據類型 當插入或更新各個列中的數據(本章後面將對此進行介紹)時 建議不要將數據類型搞混
本章後面還將重新審視數據類型 第 章也將詳細地介紹數據類型
讀者可能已經注意到 在新的MYLIBRARY表中有兩個作者列 這是為了適應一本圖書有兩個作者的情形 這也提出了另外一個問題 當一本圖書只有一個作者或者一本圖書有 個作者時 該如何處理呢?該問題將在第 章和第 章的數據建模小節中進行深入的探討 這里 讀者只需要注意對於未使用的列將自動使用默認值進行填充 如果讀者發現經常需要在表中添加新的列 那麼最好花時間閱讀一下關於資料庫規范化方面的內容(請參見第 章)
接下來將向新表中插入數據 這一步驟與之前介紹的插入操作完全相同 唯一的差別在於VALUES列表變得更長 因為原來只包含一個列 而現在包含了 個列 在VALUES列表中 除了PAGES列的值之外 所提供的所有其他數據都必須用單引號括起來 引號表明了這些數據是字元數據 沒有引號則表示數值數據
INSERT INTO myLibrary VALUES (
SQL Bible
Alex Kriegel
Boris M Trukhnov
Wiley
April
English )
返回目錄 SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
lishixin/Article/program/SQL/201311/16484
㈢ 如何用SQL語言從wincc資料庫獲取數據,實時獲取與獲取保存的數據有什麼區別
步驟1:在SQLSERVER中設一個遠程登陸的賬號sa, 密碼也設置xxx(自己定)
(SQL配置管理器中,把通信協議TCP/IP相關的服務都啟用
在SQL中,安全性---登陸賬號---SA的屬性---狀態—啟用授權登陸和允許訪問SQLSERVER引擎 )
以上設備和配置保證模仿遠程用戶來我這個計算機SQLSEVER伺服器訪問資料庫.
二 載入系統的類包/名字空間
using System.Data;
using System.Data.SqlClient;
三 建立連接對象sqlconnection 專門負責與資料庫伺服器連接
四 定義一個sqldatareader對象,專門從資料庫指定表中讀出數據
五 定義一個SQL查詢命令對象 sqlcommand ,讓它負責從資料庫去操作讀,並把讀到結果數據交給sqldatareader對象
protected void Button1_Click(object sender, EventArgs e)
{
String mys = "xxxx;database= xxxx; User ID=xxx;pwd=xxxx;Trusted_Connection=no"; //連接串
SqlConnection myc = new SqlConnection(mys); //定義一個連接對象myc,負責去連接mys串定義的伺服器和資料庫
myc.Open();
Response.Write("連接成功");
//准備讀出數據
SqlDataReader myread;
string sql="查詢語句";
SqlCommand mycom = new SqlCommand(sql , myc);
//定義mycom,在myc這個數據連接中去執行指定的select查詢命令
myread = mycom.ExecuteReader(); //把mycom的執行查詢的結果數據交給myread
while (myread.Read()) //遍歷表中的所有行,read( )一次,可讀一行,往下跳
{
//從查詢結果中取一行出來
for (int i = 0; i <myread.FieldCount ; i++)
Response.Write(myread[i].ToString());
Response.Write("<br>");
}
myc.Close();
}
㈣ 怎麼用Sql語句獲取一個資料庫中的所有表的名字
在程序中通過sql語句查詢來獲得某個資料庫的所有表名,代碼如下:
SELECT
table_name
FROM
information_schema.tables
WHERE table_schema = 'mydatabasename'
AND table_type = 'base table'
(4)sql自動獲取資料庫擴展閱讀
1,利用sys.tables目錄視圖查詢所有表的名字,sys.tables目錄視圖為每個表對象返回一行. 示例語句如下:
select * from sys.tables
注意:sys.tables目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。
2,利用存儲過程sp_tables sp_tables存儲過程,可返回可在當前環境中查詢的對象列表。這代表可在FROM子句中出現的任何對象。 我們可以執行如下語句:
exec sp_tables
在結果集中篩選出所有TABLE_TYPE等於TABLE的記錄就是表信息了。
㈤ 用sql語句怎麼從資料庫中提取結果
1、我們首先在創建一個WEB頁面,用EF導入資料庫中的一個實體模型,然後創建一個按鈕,點擊按鈕以後用EF向資料庫中執行insert操作。