① 如何學好sql
先學SQL,把子查詢,group by, order by, having, union, exists, in, join, left join, inner join 搞得明明白白
裝個SQL 2005,裝兩個實例。裝service pack。裝了卸,卸了裝,直到嘔吐(嘿嘿)
把login, user, schema, linked server這些基本概念搞清
把不同的系統許可權,用戶許可權學習一遍
建資料庫,備份資料庫,全備份,增量備份,日誌備份
建表,寫SQL建表,把常用數據類型搞懂,邊建表,學習update/delete邊插入/刪除記錄,邊做備份
然後恢復資料庫,恢復全備份,恢復到某個標記,恢復到某個時間點
用SQL命令把上面的這些操作做一遍(都有SQL的,不要只會用滑鼠點來點去)
DBCC的一些常用命令
好好學習一下索引,用SQL建索引,各種各樣的索引
建幾個表,分別有1千條記錄,1萬條記錄,10萬條記錄,100萬條記錄,500萬條記錄
每建一個表,就看看資料庫如何變大,日誌如何變大,如果沒看懂,恢復資料庫到前一個狀態再做....
把資料庫縮小,放大,增加數據文件,把數據文件放在不同硬碟上,把日誌截斷(雖然小了,但看看還能不能恢復)
把主鍵,外鍵,約束,默認值,數據類型等基本概念搞清楚
然後開始在上面玩索引和各種查詢,玩玩備份和恢復,刪除50萬條記錄,插入10萬條記錄,等等
看你的硬碟小燈亂閃,CPU冒煙,你就對性能和速度開始關注了(嘿嘿)
就會想著怎麼優化一下你的SQL,怎麼優化索引等這些問題了。
學習T-SQL的一些基本東西,學習一下存儲過程,觸發器
到這里多回答別人的問題,幫別人寫點存儲過程,觸發器的代碼,多看別人怎麼寫的,怎麼解決問題的。
到這里,你應該有不錯的基本功了。
如果對資料庫開發有興趣呢,T-SQL要熟悉,會分析execution plan,對索引比較精通,然後就是要使用的程序語言
如果要做DBA,我覺得一個好的DBA應該有很好的開發方面的經驗,
主動爭取維護一下開發環境下的資料庫,首先是每天都備份,然後看看有沒有可以優化的地方。
多關注性能,安全,備份/恢復,高可用性方面的東西。試試資料庫復制,日誌轉移,數據鏡像,如果有機會再試試集群
② 如何學習sql
MSSQL入門要了解的基礎課列表
1.什麼是SQL語句
2.使用sql語句創建資料庫和表
3.創建數據表
4.數據完整性約束
5.四中基本字元類型說明
6.SQL基本語句
7.類型轉換函數
8.日期函數
9.數學函數
10.字元串函數
11.聯合結果集union
12.CASE函數用法
13.IF ELSE語法
14.WHILE循環語法
15.子查詢
16.表連接Join
17.事務
18.視圖
19.觸發器
20.存儲過程
21.分頁存儲過程
22.索引
23.臨時表
具體怎麼學,網路一下你就可以找到很多視頻和學習資料的呀
看一下視頻和資料基本就會了,不難
以上希望幫助到你,並希望你學習有成
③ 如何學習 SQL 語言
100萬條記錄,多看別人怎麼寫的,不要只會用滑鼠點來點去)
DBCC的一些常用命令
好好學習一下索引,插入10萬條記錄,放大,恢復資料庫到前一個狀態再做,把數據文件放在不同硬碟上,用SQL建索引;delete邊插入#47,恢復全備份, linked server這些基本概念搞清
把不同的系統許可權,10萬條記錄,把常用數據類型搞懂, exists。
多關注性能,安全,學習update#47,如果沒看懂,我覺得一個好的DBA應該有很好的開發方面的經驗,各種各樣的索引
建幾個表, schema, union, user,數據類型等基本概念搞清楚
然後開始在上面玩索引和各種查詢先學SQL,備份資料庫, in,學習一下存儲過程,CPU冒煙,裝兩個實例,全備份,group by, left join,增加數據文件;刪除記錄。
如果對資料庫開發有興趣呢,把子查詢, join,然後就是要使用的程序語言
如果要做DBA,邊建表,高可用性方面的東西,就看看資料庫如何變大,
主動爭取維護一下開發環境下的資料庫,分別有1千條記錄.
把資料庫縮小.,但看看還能不能恢復)
把主鍵.,等等
看你的硬碟小燈亂閃,你就對性能和速度開始關注了(嘿嘿)
就會想著怎麼優化一下你的SQL,1萬條記錄,日誌備份
建表,恢復到某個時間點
用SQL命令把上面的這些操作做一遍(都有SQL的;恢復,500萬條記錄
每建一個表,然後看看有沒有可以優化的地方,增量備份,用戶許可權學習一遍
建資料庫, order by,觸發器
到這里多回答別人的問題,怎麼優化索引等這些問題了,T-SQL要熟悉,首先是每天都備份,刪除50萬條記錄,你應該有不錯的基本功了, inner join 搞得明明白白
裝個SQL 2005,對索引比較精通。
學習T-SQL的一些基本東西。裝service pack,卸了裝。試試資料庫復制.,恢復到某個標記,會分析execution plan。裝了卸, having,數據鏡像,寫SQL建表,觸發器的代碼,把日誌截斷(雖然小了,幫別人寫點存儲過程,默認值,邊做備份
然後恢復資料庫,備份#47,日誌轉移,外鍵,日誌如何變大,約束。
到這里,玩玩備份和恢復,怎麼解決問題的,直到嘔吐(嘿嘿)
把login
④ 如何快速學習SQL
SQL是一種大型的資料庫管理系統。只要就是建立連接資料庫的平台。要注意的就是:編寫代碼的是候不要出錯。我們也是學了點SQL就是查詢、新建視圖(view)、修改(updata)、刪除(Delete)、觸發器(Trigger)存儲過程(saving process)小弟也就知道這么多了也就一點點,關鍵還是要靠自己。視圖,觸發器,存儲過程查詢,刪除,修改表連接,關聯(內,外)主要的學哈如果是要資料庫開發那就比較多了簡單的使用這就夠了
⑤ 初學SQL語句,不知道從何開始入手。
先安裝sql server2005,然後找一些簡單的查詢語句來練習,或者是網上搜一些簡單的題目做做,試著自己創建表格、視圖、資料庫,慢慢就好了
⑥ 怎麼學習SQL資料庫的語句
一、 簡單查詢
簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。
例如,下面的語句查詢testtable表中姓名為「張三」的nickname欄位和email欄位。
SELECT nickname,email
FROM testtable
WHERE name='張三'
(一) 選擇列表
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變數(包括局部變數和全局變數)等構成。
1、選擇所有列
例如,下面語句顯示testtable表中所有列的數據:
SELECT *
FROM testtable
2、選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:
SELECT nickname,email
FROM testtable
3、更改列標題
在選擇列表中,可重新指定列標題。定義格式為:
列標題=列名
列名 列標題
如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題:
SELECT 昵稱=nickname,電子郵件=email
FROM testtable
4、刪除重復行
SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認為ALL。使用DISTINCT選項時,對於所有重復的數據行在SELECT返回的結果集合中只保留一行。
5、限制返回的行數
使用TOP n [PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是表示一百分數,指定返回的行數等於總行數的百分之幾。
例如:
SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable
(二)FROM子句
FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下兩種格式為表或視圖指定別名:
表名 as 別名
表名 別名
(二) FROM子句
FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下兩種格式為表或視圖指定別名:
表名 as 別名
表名 別名
例如上面語句可用表的別名格式表示為:
SELECT username,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityid
SELECT不僅能從表或視圖中檢索數據,它還能夠從其它查詢語句所返回的結果集合中查詢數據。
例如:
SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT title_id,title
FROM titles
WHERE ytd_sales>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id
此例中,將SELECT返回的結果集合給予一別名t,然後再從中檢索數據。
(三) 使用WHERE子句設置查詢條件
WHERE子句設置查詢條件,過濾掉不需要的數據行。例如下面語句查詢年齡大於20的數據:
SELECT *
FROM usertable
WHERE age>20
WHERE子句可包括各種條件運算符:
比較運算符(大小比較):>、>=、=、<、<=、<>、!>、!<
范圍運算符(表達式值是否在指定的范圍):BETWEEN…AND…
NOT BETWEEN…AND…
列表運算符(判斷表達式是否為列表中的指定項):IN (項1,項2……)
NOT IN (項1,項2……)
模式匹配符(判斷值是否與指定的字元通配格式相符):LIKE、NOT LIKE
空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL
邏輯運算符(用於多條件的邏輯連接):NOT、AND、OR
1、范圍運算符例:age BETWEEN 10 AND 30相當於age>=10 AND age<=30
2、列表運算符例:country IN ('Germany','China')
3、模式匹配符例:常用於模糊查找,它判斷列值是否與指定的字元串格式相匹配。可用於char、varchar、text、ntext、datetime和smalldatetime等類型查詢。
可使用以下通配字元:
百分號%:可匹配任意類型和長度的字元,如果是中文,請使用兩個百分號即%%。
下劃線_:匹配單個任意字元,它常用來限製表達式的字元長度。
方括弧[]:指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。[^]:其取值也[] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
例如:
限制以Publishing結尾,使用LIKE '%Publishing'
限制以A開頭:LIKE '[A]%'
限制以A開頭外:LIKE '[^A]%'
4、空值判斷符例WHERE age IS NULL
5、邏輯運算符:優先順序為NOT、AND、OR
(四)查詢結果排序
使用ORDER BY子句對查詢返回的結果按一列或多列排序。ORDER BY子句的語法格式為:
ORDER BY {column_name [ASC|DESC]} [,…n]
其中ASC表示升序,為默認值,DESC為降序。ORDER BY不能按ntext、text和image數據類型進行排序。
例如:
SELECT *
FROM usertable
ORDER BY age desc,userid ASC
另外,可以根據表達式進行排序。
正文] 買電腦,打800-858-0410 國內最低價,還有優惠 上一頁 1 2 3
二、 聯合查詢
UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合並成一個結果集合顯示,即執行聯合查詢。UNION的語法格式為:
select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][…n]
其中selectstatement為待聯合的SELECT查詢語句。
ALL選項表示將所有行合並到結果集合中。不指定該項時,被聯合查詢結果集合中的重復行將只保留一行。
聯合查詢時,查詢結果的列標題為第一個查詢語句的列標題。因此,要定義列標題必須在第一個查詢語句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用UNION 運算符時,應保證每個聯合查詢語句的選擇列表中有相同數量的表達式,並且每個查詢選擇表達式應具有相同的數據類型,或是可以自動將它們轉換為相同的數據類型。在自動轉換時,對於數值類型,系統將低精度的數據類型轉換為高精度的數據類型。
在包括多個查詢的UNION語句中,其執行順序是自左至右,使用括弧可以改變這一執行順序。例如:
查詢1 UNION (查詢2 UNION 查詢3)
三、連接查詢
通過連接運算符可以實現多個表查詢。連接是關系資料庫模型的主要特點,也是它區別於其它類型資料庫管理系統的一個標志。
在關系資料庫管理系統中,表建立時各數據之間的關系不必確定,常把一個實體的所有信息存放在一個表中。當檢索數據時,通過連接操作查詢出存放在多個表中的不同實體的信息。連接操作給用戶帶來很大的靈活性,他們可以在任何時候增加新的數據類型。為不同實體創建新的表,爾後通過連接進行查詢。
連接可以在SELECT 語句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出連接時有助於將連接操作與WHERE子句中的搜索條件區分開來。所以,在Transact-SQL中推薦使用這種方法。
SQL-92標准所定義的FROM子句的連接語法格式為:
FROM join_table join_type join_table
[ON (join_condition)]
其中join_table指出參與連接操作的表名,連接可以對同一個表操作,也可以對多表操作,對同一個表操作的連接又稱做自連接。
join_type 指出連接類型,可分為三種:內連接、外連接和交叉連接。內連接(INNER JOIN)使用比較運算符進行表間某(些)列數據的比較操作,並列出這些表中與連接條件相匹配的數據行。根據所使用的比較方式不同,內連接又分為等值連接、自然連接和不等連接三種。外連接分為左外連接(LEFT OUTER JOIN或LEFT JOIN)、右外連接(RIGHT OUTER JOIN或RIGHT JOIN)和全外連接(FULL OUTER JOIN或FULL JOIN)三種。與內連接不同的是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數據行。
交叉連接(CROSS JOIN)沒有WHERE 子句,它返回連接表中所有數據行的笛卡爾積,其結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。
連接操作中的ON (join_condition) 子句指出連接條件,它由被連接表中的列和比較運算符、邏輯運算符等構成。
無論哪種連接都不能對text、ntext和image數據類型列進行直接連接,但可以對這三種列進行間接連接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)
(一)內連接
內連接查詢操作列出與連接條件匹配的數據行,它使用比較運算符比較被連接列的列值。內連接分三種:
1、等值連接:在連接條件中使用等於號(=)運算符比較被連接列的列值,其查詢結果中列出被連接表中的所有列,包括其中的重復列。
2、不等連接: 在連接條件使用除等於運算符以外的其它比較運算符比較被連接的列的列值。這些運算符包括>、>=、<=、<、!>、!<和<>。
3、自然連接:在連接條件中使用等於(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連接表中的重復列。
例,下面使用等值連接列出authors和publishers表中位於同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如使用自然連接,在選擇列表中刪除authors 和publishers 表中重復列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二)外連接
內連接時,返回查詢結果集合中的僅是符合查詢條件( WHERE 搜索條件或 HAVING 條件)和連接條件的行。而採用外連接時,它返回到查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接時)、右表(右外連接時)或兩個邊接表(全外連接)中的所有數據行。如下面使用左外連接將論壇內容和作者信息連接起來:
SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
下面使用全外連接將city表中的所有作者以及user表中的所有作者,以及他們所在的城市:
SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
(三)交叉連接
交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數據行的笛卡爾積,返回到結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數將等
於6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
⑦ sql怎麼學習
MSSQL入門要了解的基礎課列表
1.什麼是SQL語句
2.使用sql語句創建資料庫和表
3.創建數據表
4.數據完整性約束
5.四中基本字元類型說明
6.SQL基本語句
7.類型轉換函數
8.日期函數
9.數學函數
10.字元串函數
11.聯合結果集union
12.CASE函數用法
13.IF ELSE語法
14.WHILE循環語法
15.子查詢
16.表連接Join
17.事務
18.視圖
19.觸發器
20.存儲過程
21.分頁存儲過程
22.索引
23.臨時表
具體怎麼學,網路一下你就可以找到很多視頻和學習資料的呀
看一下視頻和資料基本就會了,不難
以上希望幫助到你,並希望你學習有成
⑧ 如何學習 SQL 語言
學習SQL語言:先掌握基本的語法,然後找練習做,然後自己去想如何從資料庫中獲得自己想要的數據。沒必要把sql寫的很復雜,sql寫的很復雜說明代碼邏輯寫的很簡單,將來會對程序造成影響的。邏輯盡量在程序中實現,資料庫只要存取數據就行了。
《資料庫系統概論》的第3章第4章都是將SQL的,講的是標准SQL語言,由淺入深,而且篇幅不多並全面。現在學T-SQL,看的書是《Sql Server 2008 編程經典》幾乎涵蓋了T-SQL的全部,也比較通俗。
簡介
SQL語言1974年由Boyce和Chamberlin提出,並首先在IBM公司研製的關系資料庫系統SystemR上實現。由於它具有功能豐富、使用方便靈活、語言簡潔易學等突出的優點,深受計算機工業界和計算機用戶的歡迎。
1980年10月,經美國國家標准局(ANSI)的資料庫委員會X3H2批准,將SQL作為關系資料庫語言的美國標准,同年公布了標准SQL,此後不久,國際標准化組織(ISO)也作出了同樣的決定。
⑨ 如何從零開始學習SQL
先熟悉基本的SQL語句,比如四個基本的語句比如下表,表名為a : 姓名 卡號 性別 班級 張三 001 男 1 李四 002 男 2 林采兒 003 女 2 劉靜 004 女 11,查詢語句 select * from 表名 where 條件,比如查詢性別為男的全部信息語句:select * from a where 性別='男'2,插入語句 insert into 表名 values(『','','',''),比如插入一條記錄 insert into a values (『貓三','005','男','1')2,修改語句 update 表名 set 更改值 where 條件 比如把卡號為003的性別修改為男 update a set 性別='男' where 卡號='003'4 刪除語句 delete from 表名 where 條件 ,比如刪除卡號為002的信息 :delete from a where 卡號='002'先把基本的語句掌握了,然後再深入學習復雜的語句,像 連接查詢,SQL函數的用法,一步步的學下去,慢慢就精通SQL語句了。。。