數據查詢入門

什么是數據查詢

數據庫的查詢是對數據表中現(xiàn)有的數據進行逐行篩選的工作,它按照要求從符合查詢條件的記錄中把指定的字段值提取出來,形成一個結果呈顯給用戶。由于記錄集的結構實際上和表的結構是相同的,都是由多行組成,因此,在記錄集上依然可以進行再次查詢。

簡單查詢

SELECT今在SQL語句中使用頻率是最高的。在SELECT 語句中包含大量的子句,用于完成不同的查詢功能,如排序 ( ORDER BY )*條件查詢 (WHERE) 分組( GROUP BY)等。
基本語法:
select _list : 用戶要查詢的字段列表,“ * ” 代表所有字段。

table_ name: 用戶要查詢信息的表(表或視圖)。

where:查詢的篩選條件開始關鍵字。

search_ condition:查詢條件的內容。

orderby: 關鍵字,標明查詢結果的排列順序。

order_ expression: 按著哪些字段進行排序。

asc:標明是升序排序。

desc:將結果集按照降序排序。

limit: 限制每次查詢出來的數據條數。

為什么使用別名
當直接使用SELECT查詢后,由于在設計數據庫時使用的都是英文的字段名,而且有的字段名不是很好理解,對用戶來說不夠直觀,例如在上一個示例程序中“StudentID”不如“學號”直觀。在查詢語句中可以使用AS、空格為查詢結果中的列重新命名,重命名后的列名稱為原有列的別名。例如,將查詢結果中的StudentID改為”學號”、“StudentName”改為“姓名”、“Gender” 改為“性別”、“Age"改為“年齡”等。別名比較方便,容易記,易懂。

使用Order By 進行查詢排序

查詢排序都有幾種
單列排序和多列排序,同時還可以進行升序和降序排列。

單列排序:是指按照表中的某一個列進行排序,即 OEDERY BY 子句后面只有一個列名。
多列排序: MySQL 除了支持單列排序外,還可以按多列排序。多列排序時,Order by 子句后面多個字段,字段之間用逗號隔開,每個字段后面都可以跟 ASC 或 DESC。

MySQL 的內置函數

MySQL 中的內置函數從功能上可以分為:字符串函數、日期和時間函數、數學函數等

-- 創(chuàng)建數據庫 
create database if  not exists school ;
-- 使用數據庫 
use school ;
-- 創(chuàng)建表 
create table studentinfo(
id int auto_increment primary key ,
`name` varchar(20),
sex char ,
age int ,
address varchar(50)

);
-- 插入數據
insert into studentinfo (`name` ,sex ,age ,address )values ("張三封",'男',58,'武當山'),
                                                                                                                        ("張無忌","男",18,"日月神教"),
                                                                                                                        ("小鄒","女",18,"峨嵋派"),
                                                                                                                        ("趙敏","女" , 19 ,"蒙古"),
                                                                                                                        ("小昭","女",20,"日月神教");
                                                                                                                        
-- 模糊查詢 
select *from studentinfo ;
-- 完整查詢 
select id ,`name` ,sex ,age , address from studentinfo ;
-- 條件查詢
select *from studentinfo where sex="男";
select *from studentinfo where age > 18;
-- 排序,按照年齡進行排序 order by 排序  asc 升降 desc 降序 
select *from studentinfo order by age asc ;
-- 限制查詢結果的個數 limit 
select * from studentinfo order by age asc;
select * from studentinfo order by age asc limit 2 ; 
select * from studentinfo order by age asc limit 3,4 ; -- 索引從0 開始計算 limit 開始位置,顯示的條數
-- 復合 
select * from studentinfo where sex ='女' order by age desc limit 2 ;
-- 別名 as 且可以省略
select  id as 學號, `name`as 名字 ,sex as 性別, age as 年齡,address as 地址 from studentinfo ;
select id 學號 , `name ` 名字 ,sex 性別 , age 年齡 ,address 地址 from studentinfo ;
-- and or 
select * from studentinfo where sex="女" and age >18; -- 兩個條件都要滿足 
select * from studentinfo where sex="男" or  age >18; -- 只要有一個條件滿足

-- not 不等于
select * from studentinfo where age!= 18 ;
select * from studentinfo where age<>18  ;
select * from studentinfo where not (age =18) ;

-- 去重
select  distinct name  from studentinfo;






?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容