前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库的查询语句_数据库select from where

数据库的查询语句_数据库select from where

作者头像
全栈程序员站长
发布2022-10-04 20:08:13
1.3K0
发布2022-10-04 20:08:13
举报

大家好,又见面了,我是你们的朋友全栈君。

一、温馨提示

在dos窗口登录mysql,这里面使用库,给库中表添加一条中文数据 —- 会出现插入数据有问题,中文错误

数据库的查询语句_数据库select from where
数据库的查询语句_数据库select from where

这是因为: 1 、 在dos窗口中,默认的编码格式gbk,而mysql服务器软件使用的编码utf8 2、在dos窗口输入一个指令,模糊查询当前mysql数据库中所有带有”character”字符集的变 量全部出来 SHOW VARIABLES LIKE ‘%character%’ ;

数据库的查询语句_数据库select from where
数据库的查询语句_数据库select from where

3、在dos窗口中需要修改 set character_set_client = gbk ; 4、还需要给结果集的字符集 set character_set_results = gbk ;

数据库的查询语句_数据库select from where
数据库的查询语句_数据库select from where
数据库的查询语句_数据库select from where
数据库的查询语句_数据库select from where

5、改动完成,才能在dos窗口中临时插入数据可以支持中文的; 6、这些修该都是临时修改,下次使用的时候还需重新设置

二、数据库的一些查询语句

代码语言:javascript
复制
1.最基本的查询:select * from 表名;-----一般我们不能*
要是需要查询全表的全部数据:  
(1)写法一:
select id ,name ,age,address,math ,english  from   student    ;
(2)写法二:----给表给别名(表名较长的时候)
给字段起别名 as 可以省略
select 
s.id as'编号',
s.name as '姓名',
s.age as'年龄',
s.sex as '性别',
s.address  as '工作地址',
s.math as '数学',
s.english as '英语'
from  student3 as s(表的别名);
2.查询指定的字段:
select 字段名,字段名2  from 表名;
3.去掉数据的重复数据----distinct
eg:SELECT DISTINCT address FROM student3;
*在求和过程中,如有null时,结果为null
在MySQL里面有一个函数  ifnull(字段名称  期望值);    
4.进行条件查询
(1) select    where  条件;
where 后面可以使用
赋值运算符=
比较运算符 < > <=  >= !=(和java的一样)
MySQL里面的不等于是:<>
查询年龄不等于20 岁的人的字段
SELECT * FROM student3  WHERE age!=20;
SELECT * FROM student3  WHERE age <>20;
-- where 后面可以跟多个人 条件,并列或者的条件
-- 可以使用逻辑的双与&&和双或||
-- 查询学生年龄20-30 岁之间的
-- 1.mysql中支持java中的&&,但在MySQL中我们不建议使用,我们使用  and 
SELECT *   FROM  student3 WHERE   age>= 20 && age <=30;
SELECT * FROM  student3 WHERE age<=30 AND age>=20;
-- 2.并列还可以使用 between ... .and  
-- 查询学生年龄20-30 岁之间的
SELECT * FROM student3  WHERE age BETWEEN 20 AND 30;
-- mysql中支持java中的||,但在MySQL中我们不建议使用,我们使用  or
-- 查询年龄是18 或者 等于20  或者等于 45
SELECT * FROM student3 WHERE age=18 || age=20 || age=45;
SELECT * FROM student3 WHERE age=18 OR  age=20 OR  age=45
-- 当有多个或的关系的时候,可以使用in 集合语句----where  字段名称  in(值1,值2,值3);
SELECT * FROM student3 WHERE age IN (18,20,45);      
-- 查询字段为空的值
-- where后面们可以跟判断某个字段为null的格式
-- 格式:where   字段名称 is  null;-----字段值为空
-- 字段不为空的  where   is not null
--  查询英语成绩为空的学生的 id  name age 以及英语成绩信息
SELECT   id,NAME ,AGE,address FROM  Student3 WHERE english  IS  NOT NULL;                
5. 模糊查询like
/*
% :代表模糊匹配的任意字符 
select 指定字段名称  from 表名  where 字段名称 like    '%字符%';
_:代表一个任意字符集
select 指定字段名称  from 表名  where 字段名称 like    '__';
*/      
-- 查看姓马的学生
SELECT id,age, address FROM student3  WHERE NAME LIKE '%马%';
-- 查看包含两个字符的学生
SELECT  NAME,id,age, address FROM student3  WHERE NAME LIKE '__';
-- 查询姓名中第二字是化的所有信息
SELECT *  FROM Student3 WHERE NAME LIKE '%_化%'; 
-- 查询学生姓名是三个字符的
SELECT * FROM student3 WHERE NAME LIKE '___';
6.聚合函数查询:
1.count(字段名称):查询当前表的记录数---字段名称使用非业务数据,因为业务数据有可能存在空
select  聚合函数(字段名称)  from 表名;
2.sum (字段名称)  求和
3.avg(字段名称)
4.max()
5.min()
-- 使用英语查询表的总记录数
SELECT   COUNT(english) AS '总记录数' FROM student3;-- 会把值为null 的漏掉
-- 通用写法
SELECT COUNT(id) AS '记录数' FROM student3;
-- 求数学成绩和
SELECT SUM(math) AS '数学总和' FROM student3;
SELECT SUM(IFNULL(english,0)) AS '英语总分' FROM student3;
-- 求出shu学平均分
SELECT AVG(math) AS '数学平均分' FROM student3;
-- 获取数学成绩最高/低分
SELECT MAX(math)  AS '数学组高分',MIN(math)  AS  '最低分'FROM student3;
-- 查询学生数学成绩最高分的学生信息---复合函数+聚合函数
-- 1.先查出最高平均分   2.再查出最高分的人 3.最高分的人=最高平均分的
SELECT * FROM  student3 WHERE math=( SELECT MAX(math) AS '数学最高分' FROM student3);
-- 查询数学成绩大于数学平均分的学生信息
-- 1.先查出数学的平均分 
SELECT *  FROM  student3 WHERE math>(SELECT AVG(math) FROM student3);
-- 查询数学成绩大于数学平均分的学生信息并且总分>160的信息
SELECT *FROM student3 WHERE  math> (SELECT AVG(math) FROM student3) AND 
(SELECT SUM(math+IFNULL(english,0)) FROM student3) >160;
7.排序查询
-- select  字段名称 from 表名 order by asc(升序,默认)/desc(降序);
-- 数学按升序排
SELECT * FROM student3 ORDER BY  math ASC;
-- 将id=5 英语成绩为70 
UPDATE student3 SET english =70 WHERE id=5;
-- 将id=6 英语成绩改为88
UPDATE student3 SET English=88 WHERE id=6;
INSERT INTO student3  VALUES(9,'张钧甯','30','女','西安',89,95);
-- 
SELECT * FROM student3 ORDER BY math DESC,english ASC; 

总结:今日查询语句比较多,只能通过练习来熟悉和掌握,为后面的多表查询打好基础。

没有伞的孩子只能努力奔跑!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196091.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月7日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档