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