数据查询入门

什么是数据查询

数据库的查询是对数据表中现有的数据进行逐行筛选的工作,它按照要求从符合查询条件的记录中把指定的字段值提取出来,形成一个结果呈显给用户。由于记录集的结构实际上和表的结构是相同的,都是由多行组成,因此,在记录集上依然可以进行再次查询。

简单查询

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 中的内置函数从功能上可以分为:字符串函数、日期和时间函数、数学函数等

-- 创建数据库 
create database if  not exists school ;
-- 使用数据库 
use school ;
-- 创建表 
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;






你可能感兴趣的:(数据查询入门)