mysql查詢男生基本情況_MySQL數據庫技術與應用:數據查詢

**摘要:**數據查詢是數據庫系統應用的主要內容,也是用戶對數據庫最頻繁、最常見的基本操作請求。

數據查詢

數據查詢是數據庫系統應用的主要內容,也是用戶對數據庫最頻繁、最常見的基本操作請求。數據查詢可以根據用戶提供的限定條件,從已存在的數據表中檢索用戶需要的數據。MySQL使用SELECT語句從數據庫中檢索數據,并將結果集以表格的形式返回給用戶。

SELECT查詢的基本語法

select * from 表名;

from關鍵字后面寫表名,表示數據來源于是這張表

select后面寫表中的列名,如果是*表示在結果中顯示表中所有列

在select后面的列名部分,可以使用as為列起別名,這個別名出現在結果集中

如果要查詢多個列,之間使用逗號分隔

消除重復行

在select后面列前使用distinct可以消除重復的行

select distinct gender from students;

條件

使用where子句對表中的數據篩選,結果為true的行會出現在結果集中

語法如下:

select * from 表名 where 條件;

比較運算符

等于=

大于>

大于等于>=

小于<

小于等于<=

不等于!=或<>

查詢編號大于3的學生

select * from students where id>3;

查詢編號不大于4的科目

select * from subjects where id<=4;

查詢姓名不是“黃蓉”的學生

select * from students where sname!='黃蓉';

查詢沒被刪除的學生

select * from students where isdelete=0;

邏輯運算符

and

or

not

查詢編號大于3的**學

select * from students where id>3 and gender=0;

查詢編號小于4或沒被刪除的學生

select * from students where id<4 or isdelete=0;

模糊查詢

like%表示任意多個任意字符

_表示一個任意字符

查詢姓黃的學生

注意:可能出現兩個_代表一個漢字的情況;

select * from students where sname like '黃%';

查詢姓黃并且名字是一個字的學生

select * from students where sname like '黃_';

查詢姓黃或叫靖的學生

select * from students where sname like '黃%' or sname like '%靖%';

范圍查詢

in表示在一個非連續的范圍內

查詢編號是1或3或8的學生

select * from students where id in(1,3,8);  //括號內的值可以實際不存在,但是沒意義

between ... and ...表示在一個連續的范圍內

查詢學生是3至8的學生

select * from students where id between 3 and 8;

查詢學生是3至8的男生

select * from students where id between 3 and 8 and gender=1;

空判斷

注意:null與''是不同的

判空is null

查詢沒有填寫地址的學生

select * from students where hometown is null;

判非空is not null

查詢填寫了地址的學生

select * from students where hometown is not null;

查詢填寫了地址的女生

select * from students where hometown is not null and gender=0;

優先級

小括號,not,比較運算符,邏輯運算符

and比or先運算,如果同時出現并希望先算or,需要結合()使用

聚合

能看到統計的結果看不到原始數據

為了快速得到統計數據,提供了5個聚合函數

count(*)表示計算總行數,括號中寫星與列名,結果是相同的

查詢學生總數

select count(*) from students;

max(列)表示求此列的最大值

查詢女生的編號最大值

select max(id) from students where gender=0;

min(列)表示求此列的最小值

查詢未刪除的學生最小編號

select min(id) from students where isdelete=0;

sum(列)表示求此列的和  //數值類型的列求和

查詢男生的編號之后

select sum(id) from students where gender=1;

avg(列)表示求此列的平均值 //數值類型的列求平均值

查詢未刪除女生的編號平均值

select avg(id) from students where isdelete=0 and gender=0;

分組

group by分組的目的還是聚合

按照字段分組,表示此字段相同的數據會被放到一個組中 //篩選

分組后,只能查詢出相同的數據列,對于有差異的數據列無法出現在一個結果集中

可以對分組后的數據進行統計,做聚合運算

語法:

select 列1,列2,聚合... from 表名 group by 列1,列2,列3...     //將列123都一樣放到一組

查詢男女生總數

select gender as 性別,count(*)from studentsgroup by gender;

查詢各城市人數

select hometown as 家鄉,count(*)from studentsgroup by hometown;

分組后的數據篩選

語法:

select 列1,列2,聚合... from 表名group by 列1,列2,列3...having 列1,...聚合...

having后面的條件運算符與where的相同

查詢男生總人數

方案一select count(*)from studentswhere gender=1;

方案二//優點 可以更為直觀的查看篩選結果

select gender as 性別,count(*)from studentsgroup by genderhaving gender=1;

對比where與having

where是對from后面指定的表進行數據篩選,屬于對原始數據的篩選

having是對group by的結果進行篩選

排序

為了方便查看數據,可以對數據進行排序

語法:

select * from 表名order by 列1 asc|desc,列2 asc|desc,...

將行數據按照列1進行排序,如果某些行列1的值相同時,則按照列2排序,以此類推

默認按照列值從小到大排列

asc從小到大排列,即升序 //ascend

desc從大到小排序,即降序 //descend

查詢未刪除男生學生信息,按學號降序

select * from studentswhere gender=1 and isdelete=0order by id desc;

查詢未刪除科目信息,按名稱升序

1select * from subjectwhere isdelete=0order by stitle;

獲取部分行

當數據量過大時,在一頁中查看數據是一件非常麻煩的事情

語法

select * from 表名limit start,count

從start開始,獲取count條數據

start索引從0開始 //從哪兒開始數幾個

示例:分頁

已知:每頁顯示m條數據,當前顯示第n頁

求總頁數:此段邏輯后面會在python中實現

查詢總條數p1

使用p1除以m得到p2

如果整除則p2為總數頁

如果不整除則p2+1為總頁數

求第n頁的數據

1select * from studentswhere isdelete=0limit (n-1)*m,m

總結

完整的select語句

select distinct *from 表名where ....group by ... having ...order by ...limit star,count

執行順序為:

from 表名

where ....

group by ...

select distinct *

having ...

order by ...

limit star,count

實際使用中,只是語句中某些部分的組合,而不是全部

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

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

相關文章

mysql還是mdb2_mysql兩種表存儲結構myisam和innodb的性能比較測試

MyISAM:這個是默認類型,它是基于傳統的ISAM類型,ISAM是IndexedSequential Access Method (有索引的順序訪問方法)的縮寫,它是存儲記錄和文件的標準方法.與其他存儲引擎比較,MyISAM具有檢查和修復表格的大多數工具.MyISAM表格可以被壓縮,而且它們支持全文搜索.它們不是事務安全的…

numpy維度交換_如何將2個不同維度的numpy數組相乘

默認情況下&#xff0c;ND數組(例如A)與一維1(B)的乘法是在最后一個軸上執行的&#xff0c;這意味著乘法A * B僅在下有效A.shape[-1] len(B)要在另一個軸上將A與B相乘而不是-1&#xff0c;一種解決方法是在相乘前后交換A的軸&#xff1a;要在軸“ axis”上乘以A和B&#xff0c…

diff算法阮一峰_【重學數據結構與算法(JS)】字符串匹配算法(三)——BM算法

前言文章的一開頭&#xff0c;還是要強調下字符串匹配的思路將模式串和主串進行比較從前往后比較從后往前比較2. 匹配時&#xff0c;比較主串和模式串的下一個位置3. 失配時,在模式串中尋找一個合適的位置如果找到&#xff0c;從這個位置開始與主串當前失配位置進行比較如果未找…

遠程mysql定時刪除數據_mysql定時備份數據庫 刪除歷史文件 將備份數據庫傳送到另外服務器...

定時備份數據庫腳本并壓縮刪除歷史文件1.創建備份腳本vim mysql-backup.sh#!/bin/bashbakdate %y-%m-%d-%Htool/usr/local/mysql/bin/mysqldump$tool -uroot -p密碼 --lock-all-tables --all-databases | gzip > /路徑/$bak\.sql.gzfind 路徑 -name "name_*.sql.gz&q…

python input 拖入路徑 去除轉義 空格_python學習筆記(基礎-2)(轉載)

1.輸出用print()在括號中加上字符串&#xff0c;就可以向屏幕上輸出指定的文字。2.輸入如果要讓用戶從電腦輸入一些字符怎么辦&#xff1f;Python提供了一個input()&#xff0c;可以讓用戶輸入字符串&#xff0c;并存放到一個變量里。輸入是Input&#xff0c;輸出是Output&…

mysql和mdy_Liunx下安裝MySql

1.安裝數據庫&#xff1a;執行命令 yum -y install mysql-server2.啟動數據庫&#xff1a;安裝完畢&#xff0c;執行命令service mysqld start3.登錄數據庫&#xff1a;mysql -u root -p回車后輸入密碼(mysql的默認用戶名是root&#xff0c;密碼為空)4.使用數據庫&#xff1a;登…

python websocket服務器https_Socket與WebSocket以及http與https重新總結

Socket與WebSocket以及http與https重新總結一.Socket網絡中的Socket是一個抽象的接口 &#xff0c;而是為了方便使用TCP或UDP而抽象出來的一層 &#xff0c;可以理解為網絡中連接的兩端。通常被叫做套接字接口.二.WebSocketWebSocket就是其中一種&#xff0c;是為了創建一種雙向…

python微博評論爬蟲_詳解用python寫網絡爬蟲-爬取新浪微博評論 基于Python的新浪微博爬蟲研究...

怎樣爬取新浪微博的評論信息針對八爪魚在微博的應用上&#xff0c;除了用戶信息之外還包括話題內容方面的采集&#xff0c;目前絕大多數企業均在微博設有官方微博&#xff0c;八爪魚可以協助企業快速及時的抓取與企業產品相關聯的話題信息&#xff0c;規則市場內有配置好的規則…

韓順平 mysql sqlhelper類_(最全)韓順平jsp購物車源代碼(包含數據庫)

【實例簡介】韓順平的jsp購物車項目,所有源碼都在,包含數據庫,是網絡上最全的【實例截圖】【核心代碼】myshopping└── myshopping├── myshopping│ ├── src│ │ ├── com│ │ │ └── hsp│ │ │ ├── domain│ │ │ │ ├── B…

c#和python更適合爬蟲_python在爬蟲方面有哪些優勢呢?

python是一門非常不錯的編程語言&#xff0c;通俗易懂、適合零基礎入門&#xff0c;尤其是爬蟲領域有著獨特的優勢&#xff0c;成為了首選編程語言。Python是一種計算機程序設計語言&#xff0c;是一種動態的、面向對象的腳本語言。Python最初被設計用于編寫自動化腳本(shell)&…

mysql創建獨立表空間_InnoDB獨立表空間

在查看MySQL的數據庫文件的時候會發現&#xff0c;MyISAM存儲引擎類型的表會有三個文件&#xff0c;*.frm,*.MYD,*.MYI&#xff0c;但是InnoDB存儲引擎的文件只有一個*.frm&#xff0c;原來是因為InnoDB沒有開啟獨立表空間&#xff0c;執行如下命令可以看到&#xff1a;mysql&g…

python os模塊方法_python os模塊方法總結

在python中os是一個非常常用的模塊&#xff0c;下面是對os中方法的總結(實驗為Mac環境)1 . os.name &#xff1a;輸出字符串指示使用的平臺&#xff0c;windows是nt, linux/unix/mac是posix>>> os.nameposix>>>2 . os.getcwd() :獲取當前目錄>>> …

java button中文亂碼_java解決中文亂碼的幾種寫法

工作中總會遇到中文亂碼問題&#xff0c;以導出文件&#xff0c;文件名稱是中文的話&#xff0c;下載下來的文件名稱會亂碼問題&#xff0c;總結了幾種解決文件名亂碼的寫法&#xff0c;僅供參考。首先定義一個漢語字符串String zhName "錯誤碼模板";一、java.net.U…

java jframe添加面板_JFrame添加組件的兩種方式

對JFrame添加組件有兩種方式&#xff1a;1) 用getContentPane()方法獲得JFrame的內容面板&#xff0c;再對其加入組件&#xff1a;frame.getContentPane().add(childCompontent)常分開來寫Container containergetContentPanel();(隱式的this.getContentPanel()) ;得到jframe的內…

java 德生讀卡器對接程序_德生TSW-F4 社保卡讀卡器.rar

【實例簡介】德生TSW-F4 社保卡讀卡器測試程序以及動態庫&#xff0c;出廠自帶程序【實例截圖】【核心代碼】b79d6d98-2fcb-4e20-ab26-8f7aa14b320c└── 德生TSW-F4 社保卡讀卡器├── TSW-F4 U系列讀寫器隨機軟件_20120907│ ├── Dll│ │ ├── F4.h│ │ ├…

ios 數組越界奔潰庫_iOS中防止數組越界之后發生崩潰

在iOS開發中有時會遇到數組越界的問題&#xff0c;從而導致程序崩潰。為了防止程序崩潰&#xff0c;我們就要對數組越界進行處理。通過上網查資料&#xff0c;發現可以通過為數組寫一個分類來解決此問題。基本思路&#xff1a;為NSArray寫一個防止數組越界的分類。分類中利用ru…

java map與set的區別_Java中的Set,List,Map的區別是什么?

對JAVA的集合的理解是想對于數組數組是大小固定的&#xff0c;并且同一個數組只能存放類型一樣的數據(基本類型/引用類型)JAVA集合可以存儲和操作數目不固定的一組數據。所有的JAVA集合都位于 java。util包中&#xff01;JAVA集合只能存放引用類型的的數據&#xff0c;不能存放…

java怎么使用泛型_java泛型 7 泛型的基本介紹和使用

現在開始深入學習Java的泛型了&#xff0c;以前一直只是在集合中簡單的使用泛型&#xff0c;根本就不明白泛型的原理和作用。泛型在java中&#xff0c;是一個十分重要的特性&#xff0c;所以要好好的研究下。一、泛型的基本概念泛型的定義&#xff1a;泛型是JDK 1.5的一項新特性…

java鋁輪_為速度而生 JAVA Fuoco鋁合金氣動公路

人類在追求速度的歷史上一直在不斷創新&#xff0c;從兩個輪子的自行車&#xff0c;到四個輪字的汽車&#xff0c;再到螺旋槳的飛機&#xff0c;追求速度是人類與生俱來的天性。就如同公路車的用途非常多&#xff0c;綜合型公路車、耐力型公路車、爬坡型公路車&#xff0c;但唯…

erlang mysql性能瓶頸,Erlang Mysql:如何防止SQL注入

Im very new to erlang and I need to code something which inserts rows in a MySQL Database.How can I prevent SQL Injections with Erlang? Is there also something like prepared statements in other Languages or how should I do it?Thanks for your replies.解決…