幫助中心 | 我的帳號 | 關於我們

精講MySQL複雜查詢/電腦技術開發與應用叢書

  • 作者:編者:張方興|責編:趙佳霓
  • 出版社:清華大學
  • ISBN:9787302653509
  • 出版日期:2024/02/01
  • 裝幀:平裝
  • 頁數:296
人民幣:RMB 79 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書根據各大公司的SQL複雜查詢面試題編寫,可以更好地輔助讀者進行針對性學習,尤其是每道SQL複雜查詢面試題都通過分步驟的形式進行解讀,而非直接擺出一個答案。對比答案而言,解題思路更為重要。希望學習本書之後,讀者可以擁有自己的針對複雜查詢的解題思路。
    本書共13章,分別對應SQL語句的查詢基礎、多表聯查、元數據的查詢與管理、字元申的查詢與處理、數字的查詢與處理、日期的查詢與處理、JSON和XML的查詢與處理、結果集的查詢與處理、視圖與臨時表、存儲過程與預編譯語句、觸發器與自定義雨數、事務與鎖、資料庫備份、複雜查詢面試題等相關內容。
    作者精心設計了多個案例與複雜查詢題目,非隨意擺出的「難題」,而是基於工作時積攢的業務場景。
    本書適合初學者入門,也適合準備開始而試的學生進行面試準備,還適合從事多年開發工作卻仍然對複雜查詢心有餘悸的程序員閱讀,並可作為高等院校和培訓機構相關專業的教學參考書。

作者介紹
編者:張方興|責編:趙佳霓
    張方興,多年一線開發程序員,著有《微服務分散式架構基礎與實戰:基於SpringBoot+SpringCloud》《高性能Java架構:核心原理與案例實戰》《鴻蒙入門:HarmonyOS應用開發》。

目錄
第1章  SQL語句基礎與精講select關鍵字
  1.1  SQL查詢語句基礎
    1.1.1  SQL簡介
    1.1.2  SQL的語句類型
    1.1.3  關係資料庫的組成
    1.1.4  查詢語句的基本規則
    1.1.5  dual虛擬表
    1.1.6  數字計算符號的特殊情況
  1.2  精講select關鍵字
    1.2.1  select常規語法
    1.2.2  distinct關鍵字
    1.2.3  straight_join關鍵字
    1.2.4  sql_result關鍵字
    1.2.5  sql_cache關鍵字
    1.2.6  group by與having關鍵字
    1.2.7  order by關鍵字
    1.2.8  with rollup關鍵字
    1.2.9  window關鍵字
    1.2.10  limit與offset關鍵字
    1.2.11  limit分頁相關公式
    1.2.12  for關鍵字
  1.3  MySQL 8.0的內置函數與幫助
    1.3.1  了解MySQL自帶的實例庫
    1.3.2  通過MySQL 8.0內置文檔了解MySQL 8.0函數
  1.4  條件查詢
    1.4.1  MySQL中的比較運算符
    1.4.2  like關鍵字
    1.4.3  strcmp()函數
    1.4.4  MySQL中的正則表達式語法
第2章  子查詢與連接查詢
  2.1  子查詢
    2.1.1  子查詢的作用
    2.1.2  子查詢作為列值
    2.1.3  外層嵌套子查詢
    2.1.4  使用子查詢進行比較
    2.1.5  子查詢的相關關鍵字
    2.1.6  行內子查詢與構造表達式
    2.1.7  子查詢作為派生表
  2.2  連接查詢
    2.2.1  連接查詢語句
    2.2.2  笛卡兒積
    2.2.3  交叉連接
    2.2.4  左連接
    2.2.5  右連接
    2.2.6  拼接
    2.2.7  全連接
    2.2.8  內連接
    2.2.9  並集去交集
    2.2.10  自連接
第3章  MySQL元數據相關查詢

  3.1  show關鍵字
    3.1.1  show關鍵字查看某實例庫中含有的表
    3.1.2  show關鍵字查看表結構
    3.1.3  show關鍵字查看binlog日誌
    3.1.4  show關鍵字查看相關創建語句信息
    3.1.5  show關鍵字查看MySQL支持哪些引擎
  3.2  資料庫的系統變數元數據與set關鍵字
    3.2.1  set關鍵字用於用戶自定義變數
    3.2.2  set關鍵字用於環境變數
    3.2.3  sql_mode變數
    3.2.4  根據用戶自定義變數增加列的行號
  3.3  表的元數據
    3.3.1  表的元數據查詢
    3.3.2  表信息中的row_format欄位
    3.3.3  表信息中的data_free欄位
    3.3.4  MySQL各表佔用磁碟空間計算方式
    3.3.5  利用optimize關鍵字優化空間碎片
    3.3.6  查看表中的約束
  3.4  列的元數據
  3.5  用戶許可權的元數據
    3.5.1  查詢當前MySQL中含有哪些用戶
    3.5.2  用戶的操作許可權
    3.5.3  表的操作許可權
    3.5.4  列的操作許可權
第4章  SQL字元串的查詢與處理
  4.1  MySQL 8.0中的字元串
    4.1.1  字元、字符集與字元串
    4.1.2  字符集與排序
    4.1.3  字元串各數據類型的存儲空間
    4.1.4  char類型與varchar類型
    4.1.5  varchar類型的長度誤區
    4.1.6  binary類型與varbinary類型
    4.1.7  blob類型與text類型
    4.1.8  enmu類型
    4.1.9  set類型
  4.2  字元串相關常用函數
    4.2.1  concat()函數(多列拼接)
    4.2.2  group_concat()函數(多行拼接)
    4.2.3  replace()函數
    4.2.4  regexp_substr()函數
    4.2.5  substr()函數與substring()函數
    4.2.6  substring_index()函數
    4.2.7  instr()函數與locate()函數
    4.2.8  length()函數
    4.2.9  reverse()函數
    4.2.10  right()函數與left()函數
    4.2.11  rpad()函數
    4.2.12  space()函數
    4.2.13  trim()、rtrim()、ltrim()函數
    4.2.14  upper()函數與lower()函數

    4.2.15  repeat()函數
    4.2.16  insert()函數
    4.2.17  elt()函數
    4.2.18  concat_ws()函數
  4.3  MySQL 8.0處理字元串相關的複雜查詢
    4.3.1  查詢總經理名稱並增加單引號
    4.3.2  將數字數據和字元數據分開
    4.3.3  計算字元串中特定字元出現的次數
    4.3.4  提取分隔符數據中的第N個數據
第5章  SQL數字的查詢與處理
  5.1  MySQL 8.0的數字
    5.1.1  MySQL 8.0中的數字類型
    5.1.2  tinyint類型、bool類型、boolean類型
    5.1.3  無符號整數類型
    5.1.4  數字類型的精度
  5.2  數字常用函數與運算符
    5.2.1  div()函數
    5.2.2  abs()函數
    5.2.3  ceiling()函數
    5.2.4  floor()函數
    5.2.5  pow()函數和power()函數
    5.2.6  rand()函數
    5.2.7  truncate()函數
  5.3  聚合函數
    5.3.1  count(distinct)函數
    5.3.2  查詢每個部門的平均薪資
    5.3.3  查詢每個部門的薪資最高與最低的人(攜帶提成)
    5.3.4  查詢每個部門的薪資總額
    5.3.5  查詢每個部門有多少人
    5.3.6  查詢每個部門有多少人沒有提成
    5.3.7  查詢某個部門薪資占全公司的百分比
  5.4  窗口函數
    5.4.1  窗口函數的語法
    5.4.2  初步使用窗口函數
    5.4.3  partition by關鍵字
    5.4.4  order by關鍵字
    5.4.5  rank()函數
    5.4.6  dense_rank()函數
    5.4.7  percent_rank()函數
    5.4.8  ntile()函數
  5.5  聚合函數窗口化
  5.6  MySQL 8.0處理數字相關的複雜查詢
    5.6.1  計算眾數
    5.6.2  計算中值
第6章  SQL日期的查詢與處理
  6.1  MySQL 8.0的日期
    6.1.1  MySQL 8.0中的日期類型
    6.1.2  date類型
    6.1.3  datetime類型
    6.1.4  time類型

    6.1.5  year類型
  6.2  獲取當前日期和時間函數
  6.3  日期的運算
  6.4  日期的比較
  6.5  日期的區間
  6.6  MySQL 8.0中的時區
  6.7  日期相關常用函數
    6.7.1  adddate()與date_sub()
    6.7.2  addtime()
    6.7.3  date()和time()
    6.7.4  timestamp()
    6.7.5  datediff()
    6.7.6  timediff()
    6.7.7  timestampdiff()
    6.7.8  day()等提取函數
    6.7.9  dayname()
    6.7.10  dayofweek()和dayofyear()
    6.7.11  extract()
    6.7.12  from_unixtime()
    6.7.13  str_to_date()與date_format()
    6.7.14  get_format()
    6.7.15  sec_to_time()
  6.8  MySQL 8.0處理日期相關的複雜查詢
    6.8.1  張三今年多少歲
    6.8.2  判斷今年是不是閏年
第7章  SQL對JSON與XML的查詢與處理
  7.1  MySQL 8.0的JSON
    7.1.1  JSON類型的使用場景
    7.1.2  初識MySQL 8.0中的JSON類型
  7.2  JSON相關常用函數
    7.2.1  json_object()
    7.2.2  json_array()
    7.2.3  json_valid()
    7.2.4  json_contains()
    7.2.5  json_contains_path()
    7.2.6  json_extract()
    7.2.7  json_unquote()
    7.2.8  json_search()
    7.2.9  「-」符號和「-」符號
    7.2.10  json_keys()
    7.2.11  json_value()
  7.3  MySQL 8.0的XML
  7.4  XML相關常用函數
    7.4.1  extractvalue()
    7.4.2  updatexml()
第8章  SQL對結果集的查詢與處理
  8.1  MySQL 8.0的結果集
    8.1.1  什麼是處理結果集
    8.1.2  處理結果集的方式
  8.2  條件判斷函數

    8.2.1  if()函數
    8.2.2  case關鍵字
  8.3  表的展示方式
    8.3.1  橫表與縱表
    8.3.2  將縱表讀取為橫表進行展示
    8.3.3  將橫表讀取為縱表進行展示——union all寫法
    8.3.4  將橫表讀取為縱表進行展示——max()函數寫法
  8.4  MySQL 8.0處理結果集相關的複雜查詢
    8.4.1  將一行分割為多行
    8.4.2  將多行合併為一行(合併為分隔符數據)
    8.4.3  將多列合併為一列
    8.4.4  將一列分割為多列
第9章  MySQL的視圖與臨時表
  9.1  MySQL 8.0的視圖
    9.1.1  概念
    9.1.2  語法
    9.1.3  使用示例
    9.1.4  管理
  9.2  MySQL 8.0的with as關鍵字
    9.2.1  概念
    9.2.2  語法
    9.2.3  使用示例
  9.3  MySQL 8.0的臨時表
    9.3.1  概念
    9.3.2  語法
    9.3.3  使用示例
    9.3.4  臨時複製表
  9.4  MySQL 8.0 的內存表
    9.4.1  概念
    9.4.2  MySQL 8.0內存表和臨時表的區別
    9.4.3  語法
    9.4.4  使用示例
    9.4.5  管理
第10章  MySQL的存儲過程與預編譯語句
  10.1  MySQL 8.0存儲過程概念
    10.1.1  無參存儲過程的創建與調用
    10.1.2  查看MySQL當前含有的存儲過程
    10.1.3  刪除存儲過程
    10.1.4  體驗存儲過程中含有部分報錯
  10.2  MySQL 8.0存儲過程的參數
    10.2.1  in參數
    10.2.2  out參數
    10.2.3  inout參數
  10.3  MySQL 8.0存儲過程的控制流
    10.3.1  declare關鍵字
    10.3.2  set關鍵字
    10.3.3  if關鍵字
    10.3.4  case關鍵字
    10.3.5  while關鍵字
    10.3.6  repeat關鍵字

    10.3.7  leave關鍵字
    10.3.8  iterate條件語句
  10.4  游標
    10.4.1  SQL中游標的概念
    10.4.2  存儲過程中游標的概念
  10.5  MySQL 8.0的預編譯語句
    10.5.1  概念
    10.5.2  特性
    10.5.3  預編譯語句與存儲過程的區別
    10.5.4  創建無參預編譯語句
    10.5.5  創建有參預編譯語句
    10.5.6  管理及刪除預編譯語句
第11章  MySQL的觸發器和自定義函數
  11.1  MySQL 8.0觸發器概念
    11.1.1  觸發器特點
    11.1.2  觸發器語法
    11.1.3  觸發器示例
    11.1.4  觸發器管理
    11.1.5  觸發器的刪除
  11.2  MySQL 8.0自定義函數概念
    11.2.1  自定義函數的優點
    11.2.2  自定義函數的語法
    11.2.3  自定義函數示例
    11.2.4  管理及刪除自定義函數
  11.3  signal sqlstate拋出異常概念
    11.3.1  在觸發器中使用signal語句
    11.3.2  在函數中使用signal語句
    11.3.3  在存儲過程中使用signal語句
第12章  MySQL的事務與鎖
  12.1  事務概念
    12.1.1  事務的關鍵字
    12.1.2  事務的四大特性
    12.1.3  事務的保存點savepoint
    12.1.4  事務在存儲過程、觸發器、自定義函數中的使用
  12.2  鎖的概念
    12.2.1  行級鎖的概念
    12.2.2  表級鎖的概念
    12.2.3  事務的隔離級別
    12.2.4  死鎖的檢測與解決
第13章  MySQL備份與複雜查詢面試題
  13.1  備份工具mysqldump
    13.1.1  使用mysqldump以SQL格式轉儲數據
    13.1.2  重新載入SQL格式備份
    13.1.3  使用mysqldump以分割文本格式轉儲數據
    13.1.4  重新載入分隔文本格式備份
    13.1.5  mysqldump小技巧
  13.2  複雜查詢面試題——動漫評分
    13.2.1  涉及的表
    13.2.2  解題步驟
  13.3  複雜查詢面試題——查詢連續出現3次的數字

    13.3.1  涉及的表
    13.3.2  解題步驟——虛擬連接方式
    13.3.3  解題步驟——變數方式
  13.4  複雜查詢面試題——訂單退款率
    13.4.1  涉及的表
    13.4.2  解題步驟
附錄A  SQL語句分類
  A.1  MySQL 8.0的SQL語句分類
    A.1.1  數據定義類語句
    A.1.2  數據操作類語句
    A.1.3  事務和鎖定類語句
    A.1.4  集群複製類語句
    A.1.5  預編譯類語句
    A.1.6  存儲過程類語句
    A.1.7  資料庫管理類語句
    A.1.8  資料庫工具類語句
  A.2  本書測試表的相關數據及結構
    A.2.1  學校系列表結構
    A.2.2  公司系列表結構

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032