首页 > 数据库 >Java登陆第四天——SQL之DQL(二)

Java登陆第四天——SQL之DQL(二)

时间:2023-11-11 20:23:03浏览次数:39  
标签:Java name -- SQL 查询 year DQL order select

分页查询

现实总是有很多数据,多数情况都需要用分页显示数据。(很多数据显示在一个页面不太现实。)

--关键字LIMIT
--索引总是从0开始的,页面大小为一页显示多少条数据
select 列名 from 表名 limit 索引,页面大小;

image
栗子:按照user_id降序排列,每页显示3条数据。
SQL语句:

select * from t_order order by user_id desc limit 0,3;
select * from t_order order by user_id desc limit 3,3;
select * from t_order order by user_id desc limit 6,3;

程序运行结果:
image

公式为:(n-1)*pagesize,pagesize n:页数。pagesize:一页多少条数据。

多表查询

基于两张表或两张以上的表进行查询。(实际应用中单表查询可能不满足需求)

--就是from后声明多张表,多表查询where逻辑语句不能少于表的个数-1,否则会出现笛卡尔积。
select 列名 from 表1,表2,...;

准备数据

-- 创建年份表
create table t_year(
  the_year SMALLINT not null comment '订单创建年份',
  year_name varchar(20) not null
);

-- 插入数据
insert into t_year(the_year,year_name) values
  ('2017','鸡年'),
  ('2018','狗年'),
  ('2019','猪年');

image

笛卡尔积展示:表1的所有行*表2的所有行。(9*3)

image
多表查询where后逻辑语句不能少于表的个数-1,否则会出现笛卡尔积。
即如果5张表一起多表查询需要4个逻辑语句

栗子:查询user_name的the_year并正确显示the_year对应的year_name。
注意:t_order表中不包含year_name,所以此时需要多表查询。

SQL语句:

select user_name, t_order.the_year, year_name from t_order, t_year
	where t_order.the_year = t_year.the_year;

程序运行结果:
image
因为t_order表与t_year表中均有the_year列,需显示注明。
访问某表中具体列需要使用:表名.列名

自连接

基于多表查询。不同的是自己和自己连接,一张表当作两张表用。

表要起别名否则表名相同会报错。
准备数据

-- 创建Person
create table Person(
  id int,
  name varchar(20),
  sex char,
  age int,
  teacher int
);

-- 插入数据
insert into Person values
	('1001','张三','M','11','2001'),
    ('1002','五六','M','12','2002'),
    ('1003','王正','W','11','2001'),
    ('2001','刘sir','M','33',null),
    ('2002','吴sir','W','36',null);

image

栗子:正确查询同学和他的老师。
SQL语句:

select stu.name as '学生名', tea.name as '老师名'
	from person as stu,person as tea
		where stu.teacher = tea.id;

程序运行结果:
image

子查询

待编辑

标签:Java,name,--,SQL,查询,year,DQL,order,select
From: https://www.cnblogs.com/Ocraft/p/17825976.html

相关文章

  • 如何在第一个查询没有结果时执行第二个查询 - MYSQL
    在MySQL中,您可以使用IFNULL()函数和UNION操作符来实现在第一个查询没有结果时执行第二个查询。下面是一个示例:SELECTcolumn1,column2FROMtable1WHEREconditionUNIONSELECTcolumn1,column2FROMtable2WHEREconditionANDNOTEXISTS(SELECTcolumn1,column2......
  • 如何从 javascript 中的 Web api 将 json 对象传递到项目的其余部分
    在将从WebAPI获取的JSON数据传递到项目的其他部分之前,您需要确保在完成fetch请求并获得响应后再进行处理。因为fetch是一个异步操作,需要等待服务器响应的完成才能获取到数据。在您的代码示例中,您可以将json数据传递给其他函数或组件进行后续处理。以下是一种可能的处理方式:fetch(B......
  • 百度地图GL javascript API 如何绘制流动箭头的线?
    要使用百度地图GLJavaScriptAPI绘制流动箭头线,可以使用Polyline和Symbol样式来实现。下面是一个示例代码://创建地图实例varmap=newBMapGL.Map("mapContainer");map.centerAndZoom(newBMapGL.Point(116.404,39.915),11);//创建折线varpoints=[newBMapG......
  • 直播服务器Java(二)
    流媒体服务器:使用像Red5、Wowza、AntMediaServer或者自己基于Java的开源流媒体服务器来处理直播流的传输和分发。实时通信:利用Java的WebSocket或者其他实时通信协议来处理直播中的实时互动,例如弹幕、点赞等。视频编解码:Java本身不太适合处理实时视频编解......
  • Java SPI机制学习之开发实例
    原创/朱季谦在该文章正式开始前,先对JavaSPI是什么做一个简单的介绍。SPI,是ServiceProviderInterface的缩写,即服务提供者接口,它允许开发人员定义一组接口,并由供应方或者第三方提供具体实现。这种机制能够让应用程序动态加载及执行各种接口实现。根据名字来理解,比较抽象,举一......
  • 来世再不选Java!
    危机感距离上一次找工作面试已经过去快2年了,那时候正值疫情肆虐,虽然还未感受到“寒潮来临”的苗头,但最终还是成功通过了几轮面试,顺利签约。在目前公司待了2年了,在大环境的影响下,没有加薪、没有年终(这个真的很伤)、各种项目混乱、技术快停滞不前,年末又要过一年了,又离35进一步了,终危......
  • openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密
    openGauss学习笔记-120openGauss数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库120.1密态等值查询概述随着企业数据上云,数据的安全隐私保护面临越来越严重的挑战。密态数据库将解决数据整个生命周期中的隐私保护问题,涵盖网络传输、数据存储以及数据运行态;更进一步......
  • 来世再不选Java!
    危机感距离上一次找工作面试已经过去快2年了,那时候正值疫情肆虐,虽然还未感受到“寒潮来临”的苗头,但最终还是成功通过了几轮面试,顺利签约。在目前公司待了2年了,在大环境的影响下,没有加薪、没有年终(这个真的很伤)、各种项目混乱、技术快停滞不前,年末又要过一年了,又离35进一步了,终危......
  • Flask-MySQLdb与Flask-SQLAlchemy
    Flask-MySQLdb和Flask-SQLAlchemy是Flask中用于与MySQL数据库交互的两个不同的扩展。它们有不同的使用方式和优劣势。Flask-MySQLdb:用法:fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='your_mysq......
  • java 转 嵌入式 java转嵌入式软件
    java转嵌入式java转嵌入式软件 转载mob64ca14040d222023-10-0718:39:21文章标签java转嵌入式嵌入式移植ARM移植JREjava文章分类Java后端开发阅读数79 前言因公司项目需求,需要在zynq7000平台下运行javaweb程序,所以需要移植java环境。走过的坑:最先的想法......