必备sql语句

day26-必备SQL和表关系及授权 摘要: 本文详细讲解了MySQL开发中的必备SQL语句、表关系设计与用户授权等核心技能。主要内容包括: 必备SQL语句:涵盖条件查询、通配符模糊搜索、结果映射、排序和分页操作,如LIKE、ORDER BY、LIMIT等。 表关系设计:通过外键关联实现多表查询,示例演示了JOIN的用法。 用户授权:讲解权限控制语法,如GRANT和REVOKE。 文中结合示例代码(如创建表、插入数据、复杂查询)逐步展开,适合开发者快速掌握数据库操作关键知识点。 阅读详情

 1.读出表中的字段名
ResultSet  rs = test.selectSql("SELECT * FROM datainfo");  
java.sql.ResultSetMetaData md=rs.getMetaData();   //读出数据库的字段名
   int nColumn=md.getColumnCount();   //字段总数
   for(int i=0;i<nColumn;i++)
  { 
  System.out.println(md.getColumnLabel(i+1));       //md.getColumnLabel(n)n是从1开始的,打印每个字段
  }

2.查询某个时间段内的数据
String sql="select * from datainfo where time between '"+start+"' and '"+end+"'";  取时间段内的数据
select * from datainfo where time between "2009-11-03 11:16:59"and "2009-11-03 11:18:59"

3.按某个字段降序排列并选取第一个
sql="select * from datainfo,nodeinfo where nodeinfo.nodeid="+Integer.parseInt(param)+" and nodeinfo.nodeip=datainfo.ip
order by time desc limit 0,1"; 按时间降序排列 只取第一个
(limit 0,1 是只取记录中的第一条.所以这条语句只能得到一条记录
  如想取前10条则 limit 0,10或limit 10
  如想取第10至20条则 limit 10,20 )

4.出现Operation not allowed after ResultSet closed的错误
    一个stmt多个rs进行操作.那么从stmt得到的rs1,必须马上操作此rs1后,才能去得到另外的rs2,再对rs2操作.不能互相交替使用,会引起rs已经关闭错误.    错误的代码如下:
       stmt=conn.createStatement();
       rs=stmt.executeQuery("select * from t1");
       rst=stmt.executeQuery("select * from t2"); rs.last();
       //由于执行了rst=stmt.executeQuery(sql_a);rs就会被关闭掉!所以程序执行到此会提示ResultSet已经关闭.
    错误信息为:java.sql.SQLException: Operation not allowed after ResultSet closed rst.last();
    正确的代码:
       stmt=conn.createStatement();
       rs=stmt.executeQuery("select * from t1");
       rs.last();//对rs的操作应马上操作,操作完后再从数据库得到rst,再对rst操作
       rst=stmt.executeQuery("select * from t2"); rst.last();原因是: The object used for executing a static SQL statement and returning the results it produces.     
      By default, only one ResultSet object per Statement object can be open at the same time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All execution methods in the Statement interface implicitly close a statment's current ResultSet object if an open one exists.    
       一个stmt最好对应一个rs, 如果用一个时间内用一个stmt打开两个rs同时操作,会出现这种情况.所以解决此类问题:1.就多创建几个stmt,一个stmt对应一个rs;2.若用一个stmt对应多个rs的话,那只能得到一个rs后就操作,处理完第一个rs后再处理其他的,如上"正确代码".多个stmt对应各自的rs.stmt=conn.createStatement();stmt2=conn.createStatement();rs=stmt.executeQuery("select * from t1");rst=stmt2.executeQuery("select * from t2");rs.last();rst.last();
 

AXI4协议之AXI4-Lite接口详解及实战 本文首先对AXI4总线协议进行了一个简单的介绍,然后使用vivado提供的模板创建了一个AXI4-Lite Master的接口,并生成了一个具有Master和Slave的代码实例,阅读该示例代码,进行修改后用于自己的项目。 阅读详情

相关推荐

Windows 本地 PostgreSQL 忘记 postgres 密码后,如何重置密码并给 root 用户最高权限

<think>我们只需要根据内容生成摘要,不超过150字。摘要应该简明扼要概括主要问题和解决步骤。注意是中文摘要。</think>在Windows本地开发中,因root数据库账号无CREATEDB权限且忘记postgres超级管理员密码,通过临时修改pg_hba.conf为trust认证重置密码,并重启PostgreSQL服务进行登录,最后授予root用户SUPERUSER等权限,完成数据库创建。

MZH 38

java如何获取SQL查询表格中行数和列数(3种方法)

一:获取行数(3种方法) 第1种:利用ResultSet的getRow方法来获得总行数 Statement stmt = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rset = stmt.execute...

qq_43592160的博客 6204

flash均衡磨损--实时保存设备数据

【代码】flash均衡磨损--实时保存设备数据。

Car12 451

SQL FIRST() 函数、SQL LAST() 函数

SQL FIRST() 函数 FIRST() 函数 FIRST() 函数返回指定的字段中第一个记录的值。 提示:可使用 ORDER BY 语句对记录进行排序。 SQL FIRST() 语法 SELECT FIRST(column_name) FROM table_n

Cactus 7841

java result 结果行数_如何取得ResultSet的行数

如果你想的取得一个结果集的行数,怎么办?在ResultSet对象里面,我们找不到取得结果行数的办法。其实我们通常的解决方法无非有一下几种:[1]Connection con=....Statement stmt = con.createStatement();String sqlStr = "count(*) as total ";ResultSet rst = stmt.executeQuery...

weixin_31975689的博客 629

ResultSet中的rs.isLast()用法

在遍历结果集的时候,用rs.isLast()来判断是否到达最后一条,结果报出异常:  Java代码  java.sql.SQLException: Invalid operation for forward only resultset : isLast  解决方法是:  Java代码: PreparedStatement ps = conn.prepareStatement

u013456370的专栏 6086

sql面试必备

存一些大佬们分享的sql面试题及面经,mark一下! SQL数据库面试题以及答案(50例题): 常见的SQL面试题经典50题: SQL面试题练习: 2020学霸批拼多多数据分析笔试总结: leetcode我们必知必会的SQL面试题: 10道mysql查询语句面试题: 数据分析面试必备——SQL你准备好了吗?: 数据分析之SQL面试题: SQL面经汇总: ...

weixin_44543637的博客 404

SQL必备语句大全,所有的SQL都在这里

1、说明:创建数据库 CREATE DATABASE database-name2、说明:删除数据库 drop database dbname3、说明:备份sql server ---创建 备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' ---开始 备份 BACKUP DATABASE pubs TO testBack4、说明:创建新表 create tab...

weixin_43893935的博客 2797

-day26 必备SQL和表关系及授权

day26 必备SQL和表关系及授权 课程目标:掌握开发中最常见的SQL语句和表关系及授权相关知识点。 课程概要: 必备SQL(8个必备) 表关系 授权 1. 必备SQL语句 上一节讲解了最基础SQL语句:增删改查,其实在日常的开发中还有很多必备SQL语句。 这一部分的SQL语句都是围绕着对 表中的数据进行操作的。 提示:今天的所有操作都只会在 MySQL自带的客户端工具上进行操作。 例如:现在创建如下两张表。 create database day26db default charset utf8

m0_49654228的博客 1125

面试必备——SQL基础语句大全(详细)

关系型数据库:MySQL、Oracle等 非关系型数据库:redis等 Mysql数据库引擎: MyISAM InnoDB 增删改查(默认引擎) 支持高级查询 数据库操作 查看所有数据库 show databases; 查看当前使用的数据库 select database(); 创建数据库 create databases 数据库名 charset=utf8; 5.删除数据库 drop database 数据库名; 6 .使用数据句库 use database 数据库名; 7.

sfz1234567890的博客 5346

SQL注入入门必备知识点

SQL注入入门 必备知识清单 1.认识中小型网站开发使用的数据库MYSQL(当然不限于此数据库,别的也类似) MYSQL官方手册 2.了解基本的SQL语句 SQL语句学习 3.清楚sql中数据类型:三种:数字型,文本型,时间。(便于更清晰的理解闭合) 4.SQL语句中的基本注释方式 @ # —— —— (杠杠空格),空格 可等价 + (例如—— —— + ) / * ....*/ / *!....* / 5.了解mysql数据表的基本结构 6.MYSQL数据库数据库 元数据: 元数据(Met

个人笔记 955

30种SQL语句优化,进阶必备

30种SQL语句优化,进阶必备

qq_41490913的博客 109

测试必备SQL语句

测试必备SQL语句测试必备SQL语句sql语法要点多表查询-左连接及更新增删改查子查询连接和组合组合UNION函数排序与分组 测试必备SQL语句 sql语法要点 SQL 语句不区分大小写,但是数据库表名、列名和值是否区分,依赖于具体的 DBMS 以及配置 多条 SQL 语句必须以分号(;)分隔 处理 SQL 语句时,所有空格都被忽略。SQL 语句可以写成一行,也可以分写为多行 sql支持三种注释 ## 注释1 -- 注释2 /* 注释3*/ 多表查询-左连接及更新 select acr.correct

汪敏的博客 1015

SQL必备

参考链接: 数据分析面试必备——SQL你准备好了吗?

Seal_Wings的博客 434

SQL | 数据分析面试必备SQL语句+语法

|作者:无眠| 来源:知乎前些天在网上冲浪的时候看到一个案例咨询,问说世界500强的数据分析要不要去,评论区一片爆炸:“楼主能分享一下文科生怎么转行做数据分析吗??”、“SQL、pyt...

qq_21787049的博客 424

报表口径不是-SQL-汇总-销售毛额-退单净额与历史重算门禁

商品销售报表不是写一条 SUM SQL 就结束。本文从销售毛额、退单金额、净销售额的口径拆分切入,讨论旧字段为什么不能静默改义,销售事实和退单事实为什么要按不同发生时间归属,历史日报、周报、月报如何级联重算,以及发布前为什么必须有 DDL、回填、前后端展示、导出和对账门禁。重点不是算出一个数字,而是让报表数字可解释、可重算、可验证。

程序员贺加贝的博客 324

PostgreSQL 并发约束实战(第 1 篇):排他约束如何挡住并发重复预约

两个用户同时预订会议室 A 的 10:00—11:00。两个请求都先查询“没有冲突”,随后各自插入一条预约,两个事务也都成功提交。SQL 没报错,唯一键没有重复,会议室却被卖了两次。PostgreSQL 真正形成差异的地方,不是比另一种数据库多几个数据类型,而是能把“同一资源的时间段不得重叠”变成提交时持续成立的数据库约束。这篇文章只证明这一个判断。它不证明 PostgreSQL 在所有 OLTP 场景都优于 MySQL,也不证明所有业务规则都应该塞进数据库

weixin_42426485的博客 533

sql二次注入攻击原理

二次注入,又称二阶 SQL 注入(Second-Order SQL Injection),是一种特殊的 SQL 注入形式。一阶注入:攻击者提交的恶意数据,在当前请求中就被直接拼接到 SQL 语句并执行,攻击效果立即显现。二次注入:攻击者提交的恶意数据,在写入时被正确地转义、过滤或使用参数化处理,安全地存储进数据库;但当这些数据在后续的某个请求中被读取出来,并再次被拼接进新的 SQL 语句执行时,由于未做二次过滤,注入漏洞才真正被触发。"第一次存储是安全的,第二次使用时是危险的。

2303_82039857的博客 294

【好靶场】SQL 注入-布尔盲注-1

本题表面上是一个“根据用户 ID 判断用户是否存在”的功能。{"exists":true,"message":"用户存在","status":"success"}{"exists":false,"message":"用户不存在","status":"success"}这种通过响应中的真假差异来推断数据库查询结果的漏洞,就是布尔盲注。定位 /check?id= 接口↓观察 exists 字段的真假↓构造恒真、恒假条件确认注入↓确定输入需要使用 ') 闭合↓。

Sagittarius_A*的博客 228

Firefox火狐浏览器官方84.0-mac版本dmg安装包

资源全名:Firefox 84.0.dmg

上一篇: 必备sql语句
下一篇: 时间插入数据库的两种方式
bulear
博客等级 码龄20年 0粉丝 10原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值