工具/材料:Management Studio。
1、首先雙擊「Management Studio」圖標,打開SQL Server。
❷ 如何查看SQL資料庫內容
1、首先,打開SQL Server的電腦軟體,進入軟體載入界面等待載入。
❸ 關於SQL資料庫查詢
select
case when name='a' then '1' when name='b' then '2' when name='c' then '3' end as name
from works
❹ 怎樣從簡單資料庫用sql語句查詢數據
查詢是SQL語言的核心,SQL語言只提供唯一一個用於資料庫查詢的語句,即SELECT語句。用於表達SQL查詢的SELECT語句是功能最強也是最復雜的SQL語句,它提供了很多選項和使用方法。SELECT語句的命令格式如下:
SELECT查詢語句是由七個子句構成,其中SELECT和FROM子句是一個完整SELECT查詢語句必須要有的,其它的子句可以根據具體需要任選。上述的每個子句功能說明如下:
(1)SELECT子句
列出所有要求SELECT語句進行檢索的數據項,這些項可能取自資料庫中關系表的列,也可以是SQL在執行查詢時進行計算的表達式。這里的ALL和DISTINCT選項,表示查詢出的結果中是否容許有內容重復的行出現,預設時是ALL項,表示容許有重復的行出現,而*則表示查詢出所指定關系表中所有的列。
(2)FROM子句
FROM子句列出包含所要查詢的數據關系表。
(3)WHERE子句
WHERE子句告訴SQL只查詢某些關系表中滿足一定要求的行的數據,查詢要求由WHERE子句中的查詢條件確定。
(4)GROUP BY子句
GROUP BY子句指定當前查詢是匯總查詢,即不是對根據每行產生一個查詢結果,而是對相似的行進行分組,然後再對每組產生一個匯總查詢的結果。
(5)HAVING子句
HAVING子句告訴SQL只對由GROUP BY所得到的某些行組的結果進行過濾,選擇出滿足分組條件的分組。
(6)ORDER BY子句
ORDER BY子句確定是否將查詢出的結果按一列或多列中的數據進行排序,預設時是不排序的。
(7)INTO子句
INTO子句確定是否將查詢出的結果存入一張新的關系表中,預設時只將查詢出現的結果顯示在屏幕上。這是非標准SELECT語句中的子句,但目前絕大多數實際應用的SQL資料庫系統的SQL語言提供了這一選項。
下面是一些使用SELECT查詢語句進行數據查詢的示例。
例1:列出銷售額超過6000元的銷售人員的姓名、銷售目標和超過銷售目標的銷售額。
SELECT NAME,QUOTA,(SALES_QUOTA)
FROM SALESREPS
WHERE SALES>6000
例2:查出1999年最後一個季度的訂單情況。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE ORDER_DATE BETWEEN "01-OCT-99" AND "31-DEC-99"
例3:查出名稱是以ABC開頭的產品訂單情況。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE PRODUCT LIKE "ABC%"
例4:列出所有的銷售處,按區域名字母順序排列。
SELECT CITY,REGION
FROM OFFICE
ORDER BY REGION ASC
在這里ASC表示升序,如果表示降序可用DESC。
例5:列出每個銷售人員以及他們工作的城市和區域的情況。
SELECT NAME,CITY,REGION
FROM SALESREPS,OFFICE
WHERE REP_OFFICE=OFFICE
例6:查出有多少銷售員的銷售額超過了其目標額,以及他們的銷售額總和。
SELECT COUNT(NAME),SUM(SALES)
FROM SALESREPS
WHERE SALES>QUOTA
❺ 新手 SQL查詢語句出錯,MYSQL伺服器版本: 5.0.45-community-nt-log.這是個論壇發帖的資料庫,求大蝦指點..
解決方案如下:
1. 進入管理mysql的phpmyadmin
2. 在左則選中自己的資料庫
3. 在右則勾選中錯誤信息中的那個』wxpetdata』表
4. 滾動屏幕到下面,有個下拉菜單(With selected:),選擇」Repair table」
---------------------------------------------------------------------
或者可以這樣
wxpetdata被標記有問題,需要修復。於是趕快恢復歷史數據,上網查找原因。最終將問題解決。解決方法如下:
找到mysql的安裝目錄的bin/myisamchk工具,在命令行中輸入:
myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI
然後myisamchk 工具會幫助你恢復數據表的索引。重新啟動mysql,問題解決。
問題分析:
1、錯誤產生原因,有網友說是頻繁查詢和更新dede_archives表造成的索引錯誤,因為我的頁面沒有靜態生成,而是動態頁面,因此比較同意這種說法。還有說法為是MYSQL資料庫因為某種原因而受到了損壞,如:資料庫伺服器突發性的斷電、在提在資料庫表提供服務時對表的原文件進行某種操作都有可能導致MYSQL資料庫表被損壞而無法讀取數據。總之就是因為某些不可測的問題造成表的損壞。
問題的編號為145
2、問題解決辦法。
當你試圖修復一個被破壞的表的問題時,有三種修復類型。如果你得到一個錯誤信息指出一個臨時文件不能建立,刪除信息所指出的文件並再試一次--這通常是上一次修復操作遺留下來的。
這三種修復方法如下所示:
% myisamchk --recover --quick /path/to/tblName
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName
第一種是最快的,用來修復最普通的問題;而最後一種是最慢的,用來修復一些其它方法所不能修復的問題。
檢查和修復MySQL數據文件
如果上面的方法無法修復一個被損壞的表,在你放棄之前,你還可以試試下面這兩個技巧:
如果你懷疑表的索引文件(*.MYI)發生了不可修復的錯誤,甚至是丟失了這個文件,你可以使用數據文件(*.MYD)和數據格式文件(*.frm)重新生成它。首先製作一個數據文件(tblName.MYD)的拷貝。重啟你的MySQL服務並連接到這個服務上,使用下面的命令刪除表的內容:
mysql> DELETE FROM tblName;
在刪除表的內容的同時,會建立一個新的索引文件。退出登錄並重新關閉服務,然後用你剛才保存的數據文件(tblName.MYD)覆蓋新的(空)數據文件。最後,使用myisamchk執行標準的修復(上面的第二種方法),根據表的數據的內容和表的格式文件重新生成索引數據。
如果你的表的格式文件(tblName.frm)丟失了或者是發生了不可修復的錯誤,但是你清楚如何使用相應的CREATE TABLE語句來重新生成這張表,你可以重新生成一個新的.frm文件並和你的數據文件和索引文件(如果索引文件有問題,使用上面的方法重建一個新的)一起使用。首先製作一個數據和索引文件的拷貝,然後刪除原來的文件(刪除數據目錄下有關這個表的所有記錄)。
啟動MySQL服務並使用當初的CREATE TABLE文件建立一個新的表。新的.frm文件應該可以正常工作了,但是最好你還是執行一下標準的修復(上面的第二種方法)。
3、myisamchk工具介紹(見mysql的官方手冊)
可以使用myisamchk實用程序來獲得有關資料庫表的信息或檢查、修復、優化他們。myisamchk適用MyISAM表(對應.MYI和.MYD文件的表)。
調用myisamchk的方法:
shell> myisamchk [options] tbl_name ...
options指定你想讓myisamchk做什麼。在後面描述它們。還可以通過調用myisamchk --help得到選項列表。
tbl_name是你想要檢查或修復的資料庫表。如果你不在資料庫目錄的某處運行myisamchk,你必須指定資料庫目錄的路徑,因為myisamchk不知道你的資料庫位於哪兒。實際上,myisamchk不在乎你正在操作的文件是否位於一個資料庫目錄;你可以將對應於資料庫表的文件拷貝到別處並且在那裡執行恢復操作。
如果你願意,可以用myisamchk命令行命名幾個表。還可以通過命名索引文件(用「 .MYI」後綴)來指定一個表。它允許你通過使用模式「*.MYI」指定在一個目錄所有的表。例如,如果你在資料庫目錄,可以這樣在目錄下檢查所有的MyISAM表:
shell> myisamchk *.MYI
如果你不在資料庫目錄下,可通過指定到目錄的路徑檢查所有在那裡的表:
shell> myisamchk /path/to/database_dir/*.MYI
你甚至可以通過為MySQL數據目錄的路徑指定一個通配符來檢查所有的資料庫中的所有表:
shell> myisamchk /path/to/datadir/*/*.MYI
推薦的快速檢查所有MyISAM表的方式是:
shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI
如果你想要檢查所有MyISAM表並修復任何破壞的表,可以使用下面的命令:
shell> myisamchk --silent --force --fast --update-state \
-O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M \
/path/to/datadir/*/*.MYI
該命令假定你有大於64MB的自由內存。關於用myisamchk分配內存的詳細信息,參見5.9.5.5節,「myisamchk內存使用」。
當你運行myisamchk時,必須確保其它程序不使用表。否則,當你運行myisamchk時,會顯示下面的錯誤消息:
warning: clients are using or haven't closed the table properly
這說明你正嘗試檢查正被另一個還沒有關閉文件或已經終止而沒有正確地關閉文件的程序(例如mysqld伺服器)更新的表。
如果mysqld正在運行,你必須通過FLUSH TABLES強制清空仍然在內存中的任何錶修改。當你運行myisamchk時,必須確保其它程序不使用表。避免該問題的最容易的方法是使用CHECK TABLE而不用myisamchk來檢查表。
❻ SQL資料庫的一個問題,幫我看看怎麼查詢呀
先判斷2是否有數據,有的話就在條件裡面加上2的條件,如果沒有就只是1的條件,要靠拼sql字元串來實現
❼ 關於SQL資料庫查詢指令
說實話,不是看著這80分,我還真不敢隨便回答你,因為看得出,你對資料庫的了解,,,,真的還,,,,,
1.首先你得知道表名、欄位,比如人物級別,你得知道它的欄位是什麼,一般不會用中文,可能的是 lv,弄清楚人物級別和標識的欄位名字後,我們可以開始查詢了
2.現在假設人物級別欄位為lv,標識為 index,假設表名為 table
1-25級(包括1級,包括25級)人物標識為0001的語句:
select * from table where lv>=1 and lv<=25 and index='0001'
標識為0002的,而且級別是25-60(包括25,包括60)的語句:
select * from table where lv>=25 and lv<=60 and index='0002'
這樣根據各個運行結果的條數,就可以看出對應人物有多少個
也可以這樣寫:
select count(*) from table where lv>=1 and lv<=25 and index='0001'
select count(*) from table where lv>=25 and lv<=60 and index='0002'
這樣可以各只出現一條,看對應數字就可以了。
或者你需要2個在一條中看出來?按以下寫;
select sum(case when lv>=1 and lv<=25 and index='0001' then 1 else 0 end) 標識0001的25級以下的,sum(case when lv>=25 and lv<=60 and index='0002' then 1 else 0 end) 標識0002的25以上的 from table
以上語句,如果你 需要不包括,只需要把級別對應前面的等號去掉就OK了
OK,搞定,給分啦,好辛苦。嘿嘿
補充一下,你的資料庫名,表名,欄位名,這是任何人都猜不到的,因為是寫程序的人自定義的,誰知道那天殺的怎麼想。你可以去對應伺服器的企業管理器里找,,,就可以找到了,當然最直接的是問程序開發者,或者看代碼(估計你也看不出來,,,汗一個)
❽ 如何在sql資料庫中查詢數據
貌似不能查把 因為有可能你要查的值在幾個表中都有