mysql數據庫面試題 軟件測試_軟件測試數據庫面試題一

前提

本次分享只局限于 sql server 和 mysql 這兩種數據庫,其他數據庫暫不總結

正文

1. 對查詢的字段進行去重(distinct)

用法注意:

1. distinct【查詢字段】,必須放在要查詢字段的開頭,即放在第一個參數;

2. 只能在SELECT 語句中使用,不能在 INSERT, DELETE, UPDATE 中使用;

3. DISTINCT 表示對后面的所有參數的拼接取 不重復的記錄,即查出的參數拼接每行記錄都是唯一的

1.1 只對一個字段查重

對一個字段查重,表示選取該字段一列不重復的數據

SELECT DISTINCT 字段名 FROM 表名

1.2 多個字段去重

SELECT DISTINCT 字段名1,字段名2 FROM 表名

只有 字段1和字段2都不同時,才會被去重掉

2. 控制返回記錄的條數(top/limit)

2.1 sql server 中的 top

用法:

輸出前三條紀錄

Select top 3 * from 表名

輸出前 20% 條記錄

Select top 20 percent * from 表名

--6 * 20% = 1.2

--輸出的是前2條記錄,不是1條

2.2 MySql 中的 limit

用法:

給定一個參數,它表示返回最大的記錄行數目:

輸出前 5條記錄SELECT * FROM table LIMIT 5

給定兩個參數,返回兩個參數之間的記錄

SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15

檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數為 -1

SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last

3. sql 一句話復制一條數據并修改其中的字段

insert into table select 字段1, 字段2, 字段3, from table where....--select 后跟隨的字段是表中的全部字段

4. 左連接,右連接,內連接

左連接(left join)

又稱左外連接,是外連接的一種,它是以左表為基礎,根據 On 后給出的兩表條件將兩表連接起來。結果會將左表所有的查詢信息列出,右表只顯示共同有的那部分,沒有對應的部分只能補空顯示

維恩圖如下:

d01b79f3a16a84f941c54457071abc55.png

SQL 語句:

SELECT A.PK, B.PK FROM table_a A LEFT JOIN table_b B ON A.PK = B.PK; WHERE 條件…

右連接(right join)

又稱右外連接,也是外連接的一種,它是以右表為基礎,根據On后給出的兩表條件將兩表連接起來。結果會將右表所有的查詢信息列出,左表只顯示共同有的那部分,沒有對應的部分只能補空顯示

維恩圖如下:

ff7664cce1a064b89a65bccde78718e0.png

SQL 語句:

SELECT A.PK, B.PK FROM table_a A RIGHT JOIN table_b B ON A.PK = B.PK; WHERE 條件…..

內連接(inner join)

內連接是一種一一映射關系,也就是兩張表都有的記錄才能顯示出來

維恩圖:

82765090bc6cbe44d86c346c95381be3.png

SQL 語句:

SELECT A.PK , B.PK FROM table_a A INNER JOIN table_b B ON A.PK = B.PK;

5. Union 和 Union all

Union:union 在進行表連接后會篩選掉重復的記錄,所以在表連接后對所產生的結果集進行篩選運算,刪除重復的記錄再返回結果集

Union all:union 只是簡單的將兩個結果合并就返回。如果返回的結果集中有重復的數據,那么返回的結果集中就包含重復的數據。

從性能講 union all 要比 union 快很多,因為他沒有排序去重的耗時

ps: 使用 union 和 union all 時一定要保證查詢的列一致,即select 后的參數名一致

6. Varchar 和 char 的區別

(1)char 的長度是不可變的,而varchar的長度是可變的。

如:定義一個 char[10] 和 varchar[10],如果存進去的是“yang”,那么 char 所占的長度依然是10,除了字符“yang”外,后面跟6個空格,varchar 就立馬把長度變為4了,取數據的時候,char 類型的要用trim() 去掉多余的空格,而 varchar 是不需要的。

(2)char 的存取速度要比 varchar 快的多,因為其長度固定,方便的程序的存儲與查找。

Char 也為此付出的是空間的代價,因為其長度固定,所以難免會有多余的空格占位符占據空間,可謂是以空間換取時間效率,varchar 是以空間效率為首位

(3)char的存儲方式是:對英文字符(ASCII)占用1個字節,對一個漢字占用2個字節。

varchar的存儲方式是:對每個英文字符占用2個字節,漢字也占用2個字節

ps:不同的編碼形式對應的存儲方式不一樣

UTF-8編碼:

一個英文字符對應一個字節,一個中午(含繁體)占用3個字節

(4)兩者的存儲數據都非unicode的字符數據。

7. 索引

7.1 什么是索引?

數據庫索引,是數據庫管理系統中一個排序的數據結構,索引的實現通常使用 B 樹及其變種 B+ 樹。

在數據之外,數據庫系統還維護這滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據,這樣就可以在這些數據結構上實現高級查找算法。這種數據結構,就被叫做索引。

7.2 索引的作用?

協助快速查詢,更新數據庫表中數據

7.3 索引的優缺點?

優點:

創建索引可以大大提高系統的性能

通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性

可以大大加快數據的檢索速度,這也是創建索引的最主要原因

可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義

在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間

通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統性能。

缺點:

創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。

索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。

當對表中的數據進行增加,刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542723.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542723.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542723.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python數碼時鐘代碼_python時鐘的實現

from time importsleepimporttimeimportosclassClock(object):"""數字時鐘""" def __init__(self, hour0, minute0, second0):"""初始化方法 :param hour: 時 :param minute: 分 :param second: 秒"""self._hourh…

PHP頁面跳轉

本文轉載自:http://blog.sina.com.cn/s/blog_9a06890901014ol1.html PHP頁面跳轉一、header()函數 header函數中Location類型的標頭是一種特殊的header調用,常用來實現頁面跳轉 注意:1、location和“:”號間不能有空格,否則不會跳…

如何打印出給定尺寸的方格_打印給定號碼的表格| 8086微處理器

如何打印出給定尺寸的方格Problem statement: 問題陳述: Write an assembly language program in 8086 to print the table of a given integer. 在8086中編寫匯編語言程序以打印給定整數的表。 Assumptions: Suppose the inputted number is at memory location …

python自動更新excel數據_如何更新Excel數據?(刷新所有查詢)

我有一個帶有一些查詢的Excel xlsm文件。目前我每天打開它,點擊“數據”選項卡中的“全部刷新”命令。我希望這件事能自動完成。我用python編寫了一個腳本(我是python新手)。問題是,刷新數據并保存Excel文件后,刷新的數據不可見(我知道刷新工…

mongoDB 使用手冊

2019獨角獸企業重金招聘Python工程師標準>>> 1、基本操作db.AddUser(username,password) 添加用戶db.auth(usrename,password) 設置數據庫連接驗證db.cloneDataBase(fromhost) 從目標服務器克隆一個數據庫db.commandHelp(name) returns the help for the commanddb.…

android搜索框功能實現_巧用 Trie 樹,實現搜索引擎關鍵詞提示功能

來源 | 碼海責編 | Carol封圖 | CSDN 付費下載于視覺中國我們幾乎每天都在用搜索引擎搜索信息,相信大家肯定有注意過這樣一個細節:當輸入某個字符的時候,搜索引框底下會出現多個推薦詞,如下,輸入「python」后,底下會出…

Python | 從用戶輸入數據,保存到文件,讀取并打印

Here, we have to input the data from the user, to read the data from user, we use input() method, and then the input data we have to store in the file by using write() method and then by using read() method we can get the data. 在這里,我們必須從…

python語句print type 1234的輸出結果是_Python語句 print(type(1J))的輸出結果是

【填空題】遍歷輸出文件所有行。 fopen("d:\\r2.txt","r") while True: str print(str,end) if not str: break f.close()【單選題】執行下列 Python語句將產生的結果是( ) i1 if (i): print(True) else: print( False)【單選題】Python語句 print(type(1/…

qt5.9.0調試如何查看變量的值_深入了解 Java 調試

Bug(俗稱"八阿哥") 是軟件開發繞不過的一道坎,因此調試便成了每位程序員一項必備的核心技能。調試不僅有助于理解程序的運行流程,還能改進代碼質量,最終提高開發者解決問題的能力以及交付軟件的品質。本文旨在討論 Java 調試關鍵技…

python字符串轉浮點數_Python | 打印不同的值(整數,浮點數,字符串,布爾值)...

python字符串轉浮點數In the given example, we are printing different values like integer, float, string and Boolean using print() method in python. 在給定的示例中,我們使用python中的print()方法打印不同的值,例如整數,浮點數&…

(6) 如何用Apache POI操作Excel文件-----POI-3.10的一個和注解(comment)相關的另外一個bug...

如果POI-3.10往一個工作表(sheet)里面插入數據的話,需要注意了,其有一個不太被容易發現的bug。 被插入的工作表(sheet)里面的單元格沒有包含任何的注解(comment)的時候,插…

mysql下拉刷新加載數據_下拉刷新、加載數據功能

paging nick加載更多getData();varm0,n2;//m:button點擊次數 n:一次加載幾條數據$(.page-btn-nick).click(getData);functiongetData(){$.ajax(paging.html).then(function(response){//測試url寫本頁面varobj{developer:[{name:nick},{name:ljy},{name:xzl},{name:jeson},{nam…

mcq 隊列_人工智能邏輯才能問答(MCQ)

mcq 隊列1) Why do we want to implement the concept of Logic in an AI system? So that the agent can have decision making capabilitySo that the agent can think and act humanlySo that the agent can apply the logic for finding the solution to any particular p…

第三周作業!

1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。答:本題思路:先用who命令列出當前登陸的用戶信息,然后使用cut命令對字段進行分割,選出我們需要的字段…

python導入模塊以及類_python模塊的導入以及模塊簡介

標簽: 一、模塊的定義及類型 1、定義 模塊就是用一堆的代碼實現了一些功能的代碼的集合,通常一個或者多個函數寫在一個.py文件里,而如果有些功能實現起來很復雜,那么就需要創建n個.py文件,這n個.py文件的集合就是模塊 …

mysql 指定數字排序_Mysql數據排序

排序數據普通字段排序按照單一字段排序按照多個字段排序手動指定排序順序單個字段手動排序多個字段手動排序普通字段排序按照單一字段排序排序采用order by子句,order by后面跟上排序字段,排序字段可以放多個,多個采用逗號間隔,or…

《黃帝內經 —— 央視60集紀錄片》

下載地址: http://pan.baidu.com/s/1dFI8hxf 目錄 第一部 醫史篇第1集:神奇的秘笈(《黃帝內經》是部什么書)第2集:赫赫始祖(上)(黃帝、炎帝)第3集:赫赫始祖&a…

mnist手寫數字數據集_mnist手寫數據集(1. 加載與可視化)

》》歡迎 點贊,留言,收藏加關注《《1. 模型構建的步驟:在構建AI模型時,一般有以下主要步驟:準備數據、數據預處理、劃分數據集、配置模型、訓練模型、評估優化、模型應用,如下圖所示:【注意】由…

python凱撒密碼實現_密碼:凱撒密碼及其Python實現

python凱撒密碼實現Before we start let’s some basic terminology... 在開始之前,讓我們先介紹一些基本術語... The art and science to achieve security by encoding messages to make them unreadable are known as Cryptography. That’s what the whole art…

qtextedit 默認文案_QT-純代碼控件-QSplitter(分裂器)

版權聲明:本文為博主原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接和本聲明。本文鏈接:https://blog.csdn.net/qq_41488943/article/details/96431379使用Qplitter實現頁面的三布局分布1.新建一個無ui界面的工程&…