mysql中让两个表中的某一项数据做减法的sql语句怎么写

mysql中让两个表中的某一项数据做减法的sql语句怎么写,第1张

1select a商品名,(a入库数量-b出库数量)。

2as 剩余数量 from 入库表 a,出库表 b。

3where a商品名=b商品名。

格式:update 表名称 set 字段名称 = 字段名称 + 1 [ where语句]

比如说数据库中有一张student表,要想把id为1的学生成绩(score)加1则

update student set score=score+1 where id = 1

如果你不加where系统就不会知道你具体要更新哪条记录,而导致所有该表中score都增加1,当然,除非这就是你的本意。

update语句可以搞定,但是需要join配合,

例如,有个表如下,需要将id =999对应的name改为id=1000对应的name

可以这么做:

1

update person t1 join (select id,name from person where id = 1000 limit 1 ) as t2 on t1id <= t2id set t1name = t2name where t1id = 999 and t2id = 1000

修改后的结果

这样就可以了。。

在oracle中加减乘除都是可以直接select的。

select 1+2 from dual;

select 1-2 from dual;

select 字段一,MAX(字段二)-MIN(字段二) from 表

where 字段一=1

group 字段一

注:

1、字段二必须是数值型的,或数据都可转换为数值

2、where条件根据需要加

扩展资料:

1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

2、SQL数据 *** 纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

参考资料来源:百度百科-结构化查询语言

数据库是没有行序这个概念的,你不能说第几行,一般需要指定一个主键来定位,举个例子,有一个叫mytb的表,自增长主键为id列,你想让id等于10的那行的一个名为totalcount的字段加5,那sql可能就是

update mytb set totalcount=totalcount+5 where id=10

或者将id大于10小于20的totalcount都加5

update mytb set totalcount=totalcount+5 where id>10 and id<20

您好,数据库如下:

create table test(

id smallint primary key auto_increment,

asset int not null default 0);

下面是java代码用eclipse写的。

MyDBjava

package db;

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

public class MyDB {

Connection conn;

Statement stmt; //接口,用于静态执行SQL语句并返回执行结构。

ResultSet rs;

String url = "jdbc:mysql://localhost:3306/test"; //连接数据库的url

String user = "root"; //数据库用户名

String pwd = "wakeup05"; //user对应的密码

String SQL_UPDATE;

String SQL_SELECT;

/

增加资产

@param iNum 增加的资产数

/

public void UpdateAsset(int id, int iNum) {

try {

new orggjtmmmysqlDriver(); //加载mysql数据库驱动

conn = DriverManagergetConnection(url, user, pwd); //建立连接

stmt = conncreateStatement(); //返回一个statement接口

SQL_SELECT = "SELECT ASSET FROM TEST WHERE ID="+id;

rs = stmtexecuteQuery(SQL_SELECT); //执行查询语句

if(rsnext()) { //判断是否查到对应id

int asset=rsgetInt(1); //取出查到的资产值

SQL_UPDATE = "UPDATE TEST SET ASSET='"+(asset+iNum)+"' WHERE ID='"+id+"'";

int i = stmtexecuteUpdate(SQL_UPDATE); //执行更新语句

if(0 != i) {

Systemoutprintln("更新成功");;

}

}

else {

Systemoutprintln("id不存在");

}

connclose();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

Testjava

package test;

import dbMyDB;

public class TestClass {

public static void main(String[] args) {

MyDB myDB = new MyDB();

myDBUpdateAsset(1, 200);

}

}

使用mysql数据库前要先导入mysql驱动包。楼主可以去网上找,很容易找到的,找到后在File->bulid path->add external archives进行导入。

如果楼主使用其他数据库,可以建立数据源,如何建立我就不在这里说了,网上有很多教程。不过使用那种方法则要将new orggjtmmmysqlDriver();

改为

try {

ClassforName("sunjdbcodbcJdbcOdbcDriver");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

Systemoutprintln("没有找到驱动程序");

}

update CARDINFO set consume=consume+100 where cardno='123456'

update CARDINFO set consume=payment+present-2

以上就是关于mysql中让两个表中的某一项数据做减法的sql语句怎么写全部的内容,包括:mysql中让两个表中的某一项数据做减法的sql语句怎么写、PHP数据库值加减的语句是什么需要先获取值吗、mysql中如何对表中的字段值进行加减 *** 作,并赋值.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10172476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存