精华内容
下载资源
问答
  • delete plantablename,wordsnum,wordsremain,days,daysremain from ...1、数据库数据是以行形式存储,不能单独删除列。 2、使用update 可以将指定行中列值设置为空字符或null,检索该列数据显示为空。 delete...
    delete plantablename,wordsnum,wordsremain,days,daysremain from plan where id = ?
    

    这是我做的白日梦,浪费了很长时间找bug之后,终于放弃了,开始百度,得到了答案

    1、数据库中的数据是以行的形式存储,不能单独删除列。
    2、使用update 可以将指定行中列的值设置为空字符或null,检索该列数据显示为空。

    delete不行,用update吧。于是。。。

    update plan set (plantablename,wordsnum,wordsremain,days,daysremain) = ('','0','0','0','0') where id = ?
    

    结果还是不行,这种写法只有sqlserver支持
    于是。。

    update plan set plantablename=null,wordsnum = 0,wordsremain = 0,days = 0,daysremain = 0 where id = ?
    

    这种写法很低效,自己看着办把

    展开全文
  • 数据库存在重复垃圾数据想利用delete from where in删除,语句如下:DELETE FROM tms_daily_plan WHERE tms_daily_plan_id IN ( SELECT t.tms_daily_plan_id FROM tms_daily_plan t WHERE t.FIRST_PORT_CODE = '...

    数据库存在重复的垃圾数据想利用delete from where in删除,语句如下:

    DELETE FROM tms_daily_plan WHERE tms_daily_plan_id IN ( SELECT t.tms_daily_plan_id FROM tms_daily_plan t WHERE t.FIRST_PORT_CODE = 'PEK' AND t.ORG_STD BETWEEN '2019-05-08 00:00:00' AND '2019-05-08 23:59:59' GROUP BY t.TRUCK_NO );

    此时报[Err] 1093 - You can't specify target table 'tms_daily_plan' for update in FROM clause的错误。

    查询得知myqsl删除时in后面的子查询不能带where条件,带where条件的必须使用别名。

    我们将子查询的表起个别名如下所示:

    DELETE FROM tms_daily_plan WHERE tms_daily_plan_id IN ( SELECT tms_daily_plan_id FROM ( SELECT t.tms_daily_plan_id FROM tms_daily_plan t WHERE t.FIRST_PORT_CODE = 'PEK' AND t.ORG_STD BETWEEN '2019-05-08 00:00:00' AND '2019-05-08 23:59:59' GROUP BY t.TRUCK_NO ) ids );

    此时成功删除。

    展开全文
  • 一、去掉尾部空格字符。 有时候在查询或者进行其他处理时候,需要把字符串尾部空格字符去掉。...因为利用Where语句来查找记录时候,“DT001”(最后不空格)与“DT001”(最后

    一、去掉尾部的空格字符。

    有时候在查询或者进行其他处理的时候,需要把字符串尾部的空格字符去掉。如有时候应用软件设计的不合理,会把空格字符保存在数据库中。如在输入产品品号的时候,用户不小心,把“DT001”输成了“DT001”。如果应用程序在设计的时候,能够自动把尾部的空格去掉然后在保存到数据库中能够就万无一失了。但是不少的应用软件在开发的时候没有如此设计。这就给后续的处理带来了很多的麻烦。因为利用Where语句来查找记录的时候,“DT001”(最后不带空格)与“DT001”(最后带一个空格)两个是不同的条件。如果想利用这个条件来进行数据更新、查询等等,就会遇到问题。为此在写相关的Update或者Select语句的时候,可能需要把后面的空格符号去掉。为此在Oracle数据库中,有很多种解决方式。如数据库管理员可以使用Ltrim函数来实现。这个函数的格式为Ltrim[c1,c2]。其作用是去掉C1左边所包含的C2种的任何字符。当遇到不是C2种的字符串时结束,然后返回剩余的字符串。如果把C2字符串设置为空格符号(默认情况下就是空格),那么就可以把DT001后面的空格符号去掉了。

    二、在头部自动进行填充。

    有时候可能数据库设计的时候,考虑的不够周到,导致某些字段不够大。在对数据库进行升级的时候,需要调整相关的字段。此时就可能需要对某个字段的头部进行填充,以达到数据一致性的要求。如现在有个ERP系统,其需要用到一张产品信息的表,其中有一个产品编号字段。刚开始在设计产品编码的时候,设计的长度不够,如只设置了5位。随着企业产品记录的增多,需要对这个编码的内容进行扩展。如产品信息属于包装材料类的,需要在原来产品编号的头部加入一个字符B;如产品信息属于客供品的,则需要在原来产品编号的头部加入一个字符C;如产品信息属于辅助材料的,则在原来的产品编号前面加入一个字符F;等等。此时该如何实现这个需求呢?难道要一个个去修改吗?现在这手工修改的工作量比较大,而且容易出错,这个方法不可取。其实在Oracle数据库系统中提供了一个单行字符函数,可以帮助数据库管理员与企业来解决这个问题。这个函数就是RPAD函数。这个命令的格式为RPAD(C1,N,C2)。这个函数的意识是在C1的右边填充字符C2,直到字符串的总长度满足N。默认情况下C2的值为空格,用户可以根据自己的需要设置这个值。如果C1的长度比N要大,则会截取C1右边的N个字符。现在如果要实现上面这个需求,则只需要设置函数RPAD(产品编号,6,F)即可。由于原来的产品编号为5位,现在需要为辅助信息的产品编号前面加入一个字符F,修改后的总长度变为6位。不过在使用这个函数的话,往往需要利用Where条件语句进行限制。

    现在这个函数还可以里用实现字符串的截取。如还是这个产品编号,其前面一位表示产品的种类。此时数据库管理员就可以利用RPAD(产品编号,1)来截取产品编号的第一位字符(这里产品编号的长度比1要大,则会截取产品右边的1个字符,即产品类别标示码)。这在报表设计的时候也非常有用,有利于简化报表的显示。

    三、字符大小写的控制。

    在做报表的时候,我们可能需要对字符串的现实格式进行控制,如大小写的显示格式。另外,在进行数据库移植的时候,可能以前的收入大小写不规范。数据库管理员需要采用一定的规则来规范移植后的数据库字符串书写规范。为了简化这些需求的实现方式,在Oracle数据库中也提供了一些工具来解决这些问题。

    如以前在输入产品编号的时,可能大小写不区分。而在前台应用程序中也没有进行这方面的控制。现在用户希望所有的产品编号都为大写,需要把原先是小写的产品编号全部转换成大写。此时如果产品数量比较多的话,显然利用手工修改的方式会增加工作量。如果编写一个程序来实现的话,又太复杂,其实我们可以借鉴Oracle数据库提供的字符串处理函数来实现。在单行字符函数集中,有一个函数UPPER,它的作用就是将全部字符串都改写为大写并返回。为此我们可以利用一个子查询或者借助视图的帮助,把所有产品编号中,如果含有小写字符的产品编号都更新为大写。如果原来就是大写的,就保持原样(而不是说原来大写的变小写,原来小写的变大写)。同理,既然小写可以变大写,那么大写也就可以变为小写。利用单行字符串函数LOWER,就可以把全部字符串改为小写输出(把大写字母改为小写,而小写字符保持不变)。

    另外一个大小写的控制原则比较复杂,如对于一些英文地址或者英文名字之类的字符串,需要首个字母大写,而其他字符小写。这个实现起来就有一定的难度。还好在Oracle数据库中提供了一个现成的解决方法,即利用Initchar函数来实现。这个函数的功能是将某个字段中每个单词的首字符转换为大小,其他字符都是小写的字符串。通常情况下,这个字段之间的单词可以利用空格、控制字符或则标点符号来表示。可见通过这个三个大小写字符串控制函数,可以优化字符串的显示格式,让其显示更加的规范。而结合Update语句的话,还可以成批的在数据库中进行更新,让其保存的数据也符合规范化的要求。

    四、字符串中的复杂替换。

    几年之后,杭州进行来一些行政区划的规格,如把下沙市改为了直属杭州管辖的下沙区。为此有一家企业的数据库管理人员就问笔者,能否把一些记录中的下沙市都改为下沙区。什么意思呢?也就是说,在数据库中可有含有如下记录“下沙市某某钢铁厂”、“杭州市某某服装厂”、“滨江区某某信息有限公司”等等。现在数据库管理员希望把含下沙市的内容都改为下沙区。这涉及到一些复杂字段的替换,实现起来具有一定的难度。数据库是结构化数据的结合体,不比Word文档,可以利用查找替换功能来解决这个需求。那么在Oracle数据库中该如何实现呢?在Oracle数据库中就模拟实现了Word文档中的查找替换功能。

    如在单行字符函数中有一个叫做Replace的函数,就可以帮助数据库管理员实现这个需求。这个函数的格式为Replace(C1,C2,C3)。他的含义就彪死后把C1中出现的C2都替换成C3,然后返回字符串。这是什么意思呢?其实就是跟Word文档中的查找替换功能类似。从字符串C1种查找C2的内容,如果找到的话利用C3来代替。如果C3的内容为空,则所有在字段中出现C2内容的字符都将被删除。那要实现上面的需求,就可以把这个函数的参数设置为Replace(Adress,下沙市,下沙区)。然后再利用Upadate语句把这个函数返回的值赋值给地址字段即可。如此,在数据库地址字段中,出现下沙市的地方将全部被更新为下沙区。但是这个更改不会影响到其他的记录。如不会把杭州市也改为杭州区等等。

    为此,要实现一些复杂的字符替换作业,可以利用函数Replace来完成。有时会,把Replace函数与其他函数相结合,还可以实现一些更加复杂的内容。如在产品基本信息中,产品编号中可能包含了产品的分类信息,如PSD001这个产品编号,第一个字符P表示成批,第二三个字符SD表示手动工具。如果自动工具的话就为PZD001。在生成报表的时候,如果利用这些字符来显示结果的话,显然报表的可读性并不是很好。此时数据库管理员可以先利用字符串截取函数或者利用上面所提到过的头部填充函数等等来截取相关的字符串,然后再利用现在这个查找替换函数,则可以把ZD等字符转换成“自动工具”等代表含义的字符串,这将提高报表的可读性。可见,将Replace替换函数与其他函数结合(C1、C2、C3参数都可以利用函数来实现)从而可以实现复杂的替换功能。

    展开全文
  • 修改多条或指定条件的数据,需要用where条件来完成。 修改所有数据 update temp set name = ‘jack2’; 所有的数据的name会被修改,如果修改多列用“,”分开 update temp set name = ‘jack’, age = 22; 修改指定...
  • MySQL数据库

    2020-06-30 21:34:04
    一些数据库中常用的SQL语言: #1、插入语句 insert into xinxi(name,sex,age) values('张三','男',20); #2、修改语句 update xinxi set age=18 where name='李四'; ...#6、带条件的查询 select .

    在这里插入图片描述
    一些数据库中常用的SQL语言:

    #1、插入语句

    insert into xinxi(name,sex,age) values('张三','男',20);
    

    #2、修改语句

    update xinxi set age=18 where name='李四'; 
    

    #3、删除语句

    delete from xinxi where id=4;
    

    #4、查询全部数据

    select * from xinxi;
    

    #5、查询部分数据

    select id,name from xinxi;
    

    #6、带条件的查询

    select id,name from xinxi where name='王五';
    

    #7、查询姓张的学生信息

    select id,name from xinxi where name like '张%';
    

    #8、查询age为空的学生name和age

    select name,age from xinxi where age is null;
    

    #9、查询age不为空的学生name和age

    select name,age from xinxi where age is not null;
    

    #10、查询年龄在20–25的学生name和age

    select name,age from xinxi where age between 20 and 25;
    select name,age from xinxi where age>=20 and age<=25;
    

    #11、去掉重复的张三

    select distinct name from xinxi where name='张三';
    

    #12、按年龄升序排序查询id,name和age

    select id,name,age from xinxi order by age;
    select id,name,age from xinxi order by age asc;
    

    #13、按年龄降序排序查询id,name和age

    select id,name,age from xinxi order by age desc;
    

    #14、显示第一页(每页3条)

    select id,name,age from xinxi limit 0,3;
    select id,name,age from xinxi limit 3;
    

    #15、显示第二页(每页3条)

    select id,name,age from xinxi limit 3,3;
    

    #16、显示第三页(每页3条)

    select id,name,age from xinxi limit 6,3;
    

    #17、年龄总和

    select sum(age) from xinxi;
    

    #18、平均年龄

    select avg(age) from xinxi;
    

    #19、最大、最小年龄

    select max(age),min(age) from xinxi;
    

    #20、总人数

    select count(*) from xinxi;
    select count(id) from xinxi;
    select count(1) from xinxi;
    

    #21、内连接查询

    select x.id,x.name,s.money from xinxi x inner join salary s on s.eid=x.id;
    select x.id,x.name,s.money from salary s inner join xinxi x on s.eid=x.id;
    

    #笛卡尔积

    select x.id,x.name,s.money from xinxi x,salary s where s.eid=x.id;
    

    #22、左外连接查询

    select x.id,x.name,s.money from xinxi x left  join salary s on s.eid=x.id;
    select x.id,x.name,s.money from salary s left join xinxi x on s.eid=x.id;
    

    #23、按课程编号分组查询学生平均分(聚合函数和其他字段一起查询时必须用分组)

    select cid,avg(grade) from score group by cid;
    

    #24、查询补考学员

    select sid,cid,avg(grade) from score group by sid,cid having count(grade)>1;
    

    #25、查询年龄比王五大的人的姓名和年龄

    select name,age from stu where age>(select age from stu where name='王五');
    

    #26、查询年龄和王五一样大的人的姓名和年龄(子查询结果为多个)

    select name,age from stu where age in(select age from stu where name='王五');
    

    #27、查询成绩是80、85分的人

    select sid,grade from score where grade in(80,85);
    

    #28、查询成绩不是80、85分的人

    select sid,grade from score where grade not in(80,85);
    

    #29、如果有 80分以上的成绩,显示分数排在前3名的学员学号和分数

    select sid,grade from score where exists (select grade from score where grade>=80) order by grade desc limit 3;
    

    2020年6月30日

    展开全文
  • (2) 利用ROW_NUMBER() OVER设计一分页查询存储过程DividePage,每次调用返回指定数据表中指定页大小及页码的满足条件的记录结果集,其参数设计如下,请完成过程体设计,完成后请将本定义的程序保存到脚本文件3_6_2....
  • drop table student ①属于DDL(数据定义语言)(数据库定义语言是不能能...③不能 where 的条件语句 ④表内容和结构都删除(将表放到回收站了,肯定是什么东西都没有了,想象Windows回收站) ⑤删除的速度...
  • Mysql数据库管理

    2020-12-23 09:43:50
    Mysql数据库管理一.SQL语句概述1.SQL语言2.SQL分类(1)DDL语句使用DDL语句新建库、表使用DDL语句删除库、表(2)DML语句向数据表中插入新数据记录修改、更新数据表中数据记录在数据表中删除指定数据记录不...
  • 管理表中的数据DML语句用于对表中的数据进行管理向数据表中插入新的数据记录修改、更新数据表中的数据记录修改数据库密码在数据表中删除指定的数据记录不带where条件的语句标识删除表中所有记录DQL是数据查询语句,...
  • 修改数据库数据集合

    2018-09-17 18:55:00
    带条件的修改数据(推荐使用) updata 表名 set 字段名 = ‘要修改成的数据’ where id=‘001’ // where 后面是条件 修改多个字段 删除数据库数据 delete from 表名;//这个就不演示了 添加数据有点烦 嘻嘻...
  • (不带where条件的delete) 自增当前值依然从原来基础上进行 (truncate table 表名) 删除全部表,自增值会恢复到初始值重新开始 2、重启数据库服务后,(net stop/start mysql) ENGINE=INNODB与ENGINE=MYISAM的区别...
  • 数据库操作常用技巧

    2021-03-24 14:24:36
    随时更新1、不要用聊天工具发sql语句2.操作数据之前先select一下3.操作数据之前注意量级4.update时更新修改人和修改时间5.多用逻辑删除,少用物理...删除订单数据时where条件写错了,导致多删了很多用户订单。 更新会员
  • 数据库常见面试题

    2018-07-04 10:23:00
    功能上truncate和不带where条件的delete语句一样,都是删除整个表的数据,但是不删除表定义,区别是,truncate删除表数据的时候既删除了数据又释放了空间,速度快,但是删除的数据无法恢复,但是delete只是删除了表...
  • Oracle数据库、SQL

    2014-04-14 23:40:17
    一、 数据库介绍 1 1.1表是数据库中存储数据基本单位 1 ...21.1删除表,删除列,删除列中值 46 21.2多对多关系实现 46 21.3一对多(两张表) 46 21.4一对一 46 21.5数据库对象 46 12.6缺省(默认)总结: 46
  • 七、NodeJs数据库管理

    2020-07-04 21:55:20
    建表 ...链接、操作数据库可以使用phpstudy自带工具也可以使用navicat工具。 SQL语句-增删改查 插入数据 insert into 表名(字段名1,字段名2) values(值...条件一定要写,如果不写则会删除该表中所有数据删除。 例如
  • 1.truncate和不带where子句delete、以及drop都会删除表内数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 具体使用语法如下: --删除表结构,并删除里边数据及在这个表上索引...
  • 数据库记录操作

    2020-08-24 09:38:02
    文章目录概览插入数据insert更新数据update删除数据delete查询数据 search单表查询单表查询语法关键字执行优先级简单查询:where约束group by聚合函数HAVING过滤ORDER BY 查询排序LIMIT 限制查询记录数使用正则...
  • python mysql查询条件带变量方法

    万次阅读 2018-05-10 17:11:15
    python mysql查询条件带变量方法 python对mysql数据库进行, 查询、更新、删除条件,添加变量方法方法一:网上大多能搜索到是拼接字符串形式,方法如下:testcase_id = cur.execute('select * from ...
  • insert into b(a, b, c) select d,e,f from b in ‘具体数据库where 条件 例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a...
  • 作用是防止执行delete时候没条件语句,如果没加上where则语句不执行。 您可能感兴趣文章:mysql之delete删除记录后数据库大小不变mysql 删除操作(delete+TRUNCATE)mysql支持跨表delete删除多表记录MyS
  • python对mysql数据库进行, 查询、更新、删除条件,添加变量方法方法一:网上大多能搜索到是拼接字符串形式,方法如下:testcase_id = cur.execute('select * from service_testcase where test_name ="'+name...
  • 如果我们在数据库中不小心执行了类似“delete from t1”这样的不带where条件的语句,那么整张表的数据就全被删除了,如何在最短的时间恢复被删除的数据就显得十分关键。下面来演示如何通过binlog来快速恢复表数据。 ...
  • CruiseYoung提供的带有详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle Database 11g数据库管理艺术(涵盖DBA必知必会所有数据库管理知识) 基本信息 原书名: Expert Oracle ...
  • 1 创建数据库1-2 创建表1-3 主键约束1-4 外键约束1-5 添加常用约束2、SQLServer--数据的插入、更新与删除2-1 数据的插入2-2 数据的删除2-3 数据的更改3、SQLServer--基础数据查询3-1 基本SELECT查询3-2 限制条件的...
  • python对mysql数据库进行, 查询、更新、删除条件,添加变量方法方法一:网上大多能搜索到是拼接字符串形式,方法如下:testcase_id = cur.execute('select * from service_testcase where test_name ="'+name...
  • SQL删除表中数据语句

    2020-11-11 15:49:20
    如果你想从数据库删除记录,那么需要使用...最后,要特别小心的是,和UPDATE类似,不带WHERE条件的DELETE语句会删除整个表的数据: DELETE FROM students; 这时,整个表的所有记录都会被删除。所以,在执行DELET
  • Beego框架学习笔记05--ORM删除数据

    千次阅读 2018-12-09 10:37:32
    只是要注意删除的时候记得指定一个筛选条件,这就好比sql语句当中【delete from 表名 where xxx】当中的where条件一样。 o := orm.NewOrm() var tempStuInfo models.StuInfo tempStuInfo.Id =...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 152
精华内容 60
关键字:

数据库带where条件的删除