數據庫的查詢與統計

——JY數據庫查詢與統計的使用——-

1、SELECT用法

<!--查詢數據表制定列-->
1.USE JY
  GO
  SELECT reader_name, reader_department
  FROM reader
  GO

<!--取別名顯示-->
2.USE JY
  GO
  SELECT reader_name AS '姓名', reader_department'院系'
  FROM reader
  GO

<!--返回查詢結果的前n(%)行-->
3.USE JY
  GO
  SELECT TOP 5 *
  FROM book
  GO

<!--消除查詢結果的重複行-->
4.USE JY
  GO
  SELECT DISTINCT book_publisher
  FROM book
  GO

<!--在查詢結果中增加要顯示的字符串-->
5.USE JY
  GO
  SELECT '總借閱次數:',SUM(interview_times)
  FROM book
  GO

<!--使用聚合函數-->
6.USE JY
  GO
  SELECT COUNT(*)
  FROM reader
  GO

2、WHERE子句的使用

<!--使用LIKE進行模糊查詢-->
1.USE JY
  GO
  SELECT *
  FROM reader
  WHERE reader_name LIKE '李%' --模糊查詢
  GO

<!--查詢列值爲空的數據行-->
2.USE JY
  GO
  SELECT *
  FROM record
  WHERE notes IS NULL
  GO

3、使用ORDER BY子句重新排序查詢的結果

<!--查詢並且由低到高排序-->
1.USE JY
  GO
  SELECT *
  FROM book
  ORDER BY interview_times DESC
  GO

4、使用GROUP BY子句分組或統計查詢結果

<!--統計出版社的出版圖書的總數-->
1.USE JY
  GO
  SELECT book_publisher, COUNT(book_publisher) AS '圖書總數'
  FROM book
  GROUP BY book_publisher
  GO

<!--查詢圖書借閱次數在20次以上,而且出版圖書總數大於1的出版社-->
2.USE JY
  GO
  SELECT book_publisher
  FROM book
  WHERE interview_times > 20
  GROUP BY book_publisher HAVING COUNT(book_publisher) > 1
  GO

<!--查詢讀者表中專業的男、女人數-->
3.USE JY
  GO
  SELECT reader_department, reader_sex, COUNT(*) AS '人數'
  FROM reader
  GROUP BY reader_department, reader_sex
  GO

5、使用子查詢

<!--使用比較運算符的子查詢-->
1.USE JY
  GO
  SELECT reader_name
  FROM reader
  WHERE reader_id
  <>(SELECT reader_id
    FROM record
    WHERE book_id = 'b0005')
  GO

<!--使用IN關鍵字的子查詢-->
2.USE JY
  GO
  SELECT reader_name
  FROM reader
  WHERE reader_id
  IN(SELECT reader_id
    FROM record
    GROUP BY reader_id HAVING COUNT(reader_id) >=2)
  GO

<!--使用ANYSOMEALL關鍵字的子查詢-->
3.USE JY
  GO
  SELECT book_id
  FROM book
  WHERE interview_times
  *any(SELECT MAX(interview_times) FROM book
        UNION
        SELECT MIN(interview_times) FROM book)
  GO
<!--ANYSOME類似,接在一個比較運算符後面,只要滿足其中一個條件就返回TRUEALL表示都滿足才返回TRUE-->

<!--使用EXISTS關鍵字查詢-->
4.USE JY
  GO
  SELECT reader_id, reader_name
  FROM reader
  WHERE EXISTS
    (SELECT *
    FROM record
    WHERE reader_id = reader.reader_id AND book_id = 'b0001')
  GO

6、子查詢

<!--IN嵌套查詢-->
1.USE JY
  GO
  SELECT book_name, book_author, book_publisher
  FROM book
  WHERE book.book_id IN
    (SELECT record.book_id
    FROM record
    WHERE record.reader_id = 'r0006')
  GO

<!--比較查詢-->
2.USE JY
  GO
  SELECT book_name, book_author, book_publisher
  FROM book
  WHERE book_price >
    (SELECT AVG(book_price)
    FROM book
    WHERE book_publisher = '電子工業出版社')
  GO

<!--查詢借閱次數大於40和圖書編號爲'b0006'的圖書書名-->
3.USE JY
  GO
  SELECT book_name
  FROM book
  WHERE interview_times > 40
  UNION
  SELECT book_name
  FROM book
  WHERE book_id = 'b0006'
  GO

7、連接查詢

<!--將所有的情況按record_id(默認右邊的)進行排序列出(不包括NULL值)-->
1.USE JY
  GO
  SELECT book.book_id, record.reader_id, record.borrow_date
  FROM book JOIN record ON book.book_id = record.book_id
  GO

<!--將所有的情況按book_id(聲明最左邊的)進行排序列出(包括NULL值)-->
2.USE JY
  GO
  SELECT book.book_id, record.reader_id, record.borrow_date
  FROM book LEFT JOIN record ON book.book_id = record.book_id
  GO
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章