10-10 46—50


46.簡述leftjoin和rightjoin的區別?

left join:外鏈接之左連接:優先顯示左表全部記錄
					#以左表為准,即找出所有員工信息,當然包括沒有部門的員工
					#本質就是:在內連接的基礎上增加左邊有右邊沒有的結果
right join:外鏈接之右連接:優先顯示右表全部記錄
          #以右表為准,即找出所有部門信息,包括沒有員工的部門
          #本質就是:在內連接的基礎上增加右邊有左邊沒有的結果

47.索引有什么作用,有那些分類,有什么好處和壞處?

作用:
索引提供指向存儲在表的指定列中的數據值的指針,然后根據您指定的排序順序對這些指針排序。數據庫使用索引以找到特定值,然后順指針找到包含該值的行。這樣可以使對應於表的SQL語句執行得更快,可快速訪問數據庫表中的特定信息。

分類:
1、唯一索引

唯一索引是不允許其中任何兩行具有相同索引值的索引。當現有數據中存在重復的鍵值時,大多數數據庫不允許將新創建的唯一索引與表一起保存。

2、主鍵索引

數據庫表經常有一列或多列組合,其值唯一標識表中的每一行。該列稱為表的主鍵。在數據庫關系圖中為表定義主鍵將自動創建主鍵索引,主鍵索引是唯一索引的特定類型。該索引要求主鍵中的每個值都唯一。當在查詢中使用主鍵索引時,它還允許對數據的快速訪問。

3、聚集索引

在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。一個表只能包含一個聚集索引。如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的數據訪問速度。

4、索引列

可以基於數據庫表中的單列或多列創建索引。多列索引可以區分其中一列可能有相同值的行。如果經常同時搜索兩列或多列或按兩列或多列排序時,索引也很有幫助。例如,如果經常在同一查詢中為姓和名兩列設置判據,那么在這兩列上創建多列索引將很有意義。

優點:

1、大大加快數據的檢索速度。
2、創建唯一性索引,保證數據庫表中每一行數據的唯一性。
3、加速表和表之間的連接。
4、在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間。

缺點:

1、索引需要占物理空間。
2、當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度。

48.寫sql語句

​ TableA

ID NAME KECHENG FENSHU
1 張三 語文 81
2 張三 數學 75
3 李四 語文 76
4 李四 數學 90
5 王五 語文 81
6 王五 數學 100
7 王五 英語 90

​ TableB

ID NAME
1 張三
2 李四
3 王五
4 趙六

查詢:

1.查詢出每門課程都大於80分的學生姓

SELECT
	`NAME` 
FROM
	TableA 
WHERE
	`NAME` NOT IN (
	SELECT
		`NAME` 
	FROM
		TableA 
	WHERE
		FENSHU < 80 
	GROUP BY
		`NAME` 
	) 
GROUP BY
	`NAME`;

2.查詢出語文成績最大的學生姓名

SELECT
	TableA.`NAME` 
FROM
	TableA 
WHERE
	FENSHU = (
	SELECT
		`FENSHU` 
	FROM
		TableA 
	WHERE
		KECHENG = "語文" 
	GROUP BY
		FENSHU 
	ORDER BY
		FENSHU DESC 
		LIMIT 1 
	) 

3.查詢沒有成績的學生姓名

SELECT
	`NAME` 
FROM
	TableB 
WHERE
	NAME NOT IN ( SELECT `NAME` FROM TableA GROUP BY `NAME` )

49.試列出至少三種目前流行的大型關系型數據庫的名稱

  試列出至少三種目前流行的大型關系型數據庫的名稱
  其中您最熟悉的是
  什么時候開始使用
  
  “”“
  Oracle
  SQL Server
  MySQL
  ”“”

50.什么是MySQL慢日志?

慢日志查詢的主要功能就是,記錄sql語句中超過設定的時間閾值的查詢語句。例如,一條查詢sql語句,我們設置的閾值為1s,當這條查詢語句的執行時間超過了1s,則將被寫入到慢查詢配置的日志中.
慢查詢主要是為了我們做sql語句的優化功能.

配置項說明:
	登陸mysql服務:
	> show variables like '%query%';
	關注三個配置項即可。
  1.slow_query_log
  該配置項是決定是否開啟慢日志查詢功能,配置的值有ON或者OFF.
  2.slow_query_log_file
  該配置項是慢日志查詢的記錄文件,需要手動創建.
  3.long_query_time
  該配置項是設置慢日志查詢的時間閾值,當超過這個閾值時,慢日志才會被記錄.配置的值有0(任何的sql語句都記錄下來),或者>0(具體的閾值).該配置項是以秒為單位的,並且可以設置為小數.
  4.log-queries-not-using-indexes
  該配置項是為了記錄未使用到索引的sql語句.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM