如何删除数据库中的一行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除数据库中的一行相关的知识,希望对你有一定的参考价值。

删除数据库中的一行分为以下几个步骤:
1、通过数据库访问客户端(例如访问Oracle,使用plsql),使用有删除权限的用户登录数据库;
2、执行删除脚本:
delete from tablename where id=11(这里假设删除的表名为tablename,标识要删除行的字段为ID,值为11);
3、执行commit;
此时,id为11的记录从tablename表删除成功。
参考技术A

删除语句的基本结构为

DELETE FROM 表名称 WHERE 列名称 = 值

如果筛选条件多余一列的时候可以使用 AND或OR将条件连接起来

例如有一张Person表,如下图所示

要删除lastName为Willson的则

Delete from Person where lastName='Willson';

执行该语句后,Willson这条记录将会被删除。

拓展资料

一些常用的SQL语句:

    SELECT - 从数据库表中获取数据

    UPDATE - 更新数据库表中的数据

    DELETE - 从数据库表中删除数据

    INSERT INTO - 向数据库表中插入数据

    CREATE DATABASE - 创建新数据库

    ALTER DATABASE - 修改数据库

    CREATE TABLE - 创建新表

    ALTER TABLE - 变更(改变)数据库表

    DROP TABLE - 删除表

    CREATE INDEX - 创建索引(搜索键)

    DROP INDEX - 删除索引

参考技术B delete from tableName where (通常选择主键) 参考技术C DELETE FROM 表名 WHERE 条件 参考技术D delete from 表名 where 列名=“”

如何删除sqlite数据库表中的一行?

【中文标题】如何删除sqlite数据库表中的一行?【英文标题】:How to delete a row in a sqlite database table? 【发布时间】:2009-11-08 11:05:02 【问题描述】:

我正在使用 fmdb 来管理我的数据库。我找不到从 fmdb 的表中删除一行的任何示例。我试过了

  NSString *sqlStat=@"DELETE from tableName WHERE id=3";    
  FMResultSet *rs = [database executeQuery:sqlStat];

但它不起作用,因为当我检查表中的条目总数时,我得到的数字与执行上述语句之前相同。 那么,使用 fmdb 从表中删除一行的正确方法是什么?

【问题讨论】:

您如何确定表格中的条目数? 例如我在做 FMResultSet *rs = [database executeQuery:@"select * from tableName"];然后将结果存储在 NSMutableArray 中。 【参考方案1】:

如果您不将对象作为 NSNumber 传递,FMDB 可能会有点挑剔。这是格式化查询的受支持且安全的方式。

[db executeUpdate:@"DELETE FROM theTable WHERE id = ?", [NSNumber numberWithInt:myObject.id]];

【讨论】:

【参考方案2】:

你应该替换:

... [数据库执行查询:sqlStat] ...

与:

... [数据库执行更新:sqlStat];

另外,尝试添加:

[database beginTransaction];

在您的 CRUD 块之前,并且:

[database commit];

在执行更新/删除/插入操作之后。

;)

【讨论】:

不确定这是否对其他人有帮助,但我在命令行中使用 sqlite3,并且在运行我的 DELETE 语句之后发出了 BEGIN TRANSACTION;COMMIT; 。我第一次使用 CLI,这对我有用。感谢@Florin 的提示。 与 [database executeUpdate:sqlStat] 一起使用,其中 sqlStat 为“DELETE”【参考方案3】:

我也遇到了同样的症状。 我的问题是我没有打电话(并导致“内存不足”错误)

[db open];

请务必这样做以调试您的 fmdb 问题 db.traceExecution=YES; db.logsErrors=YES;

【讨论】:

【参考方案4】:

你需要确保所有的流程

NSString *query = @"delete from places where published = 1";
const char *sqlStatement = [query UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) 
    // Loop through the results and add them to the feeds array
    while(sqlite3_step(compiledStatement) == SQLITE_ROW) 
        // Read the data from the result row
        NSLog(@"result is here");
    

    // Release the compiled statement from memory
    sqlite3_finalize(compiledStatement);


int numberOfEffectedRow = sqlite3_changes(database);
return numberOfEffectedRow; // get number of effected rows

【讨论】:

以上是关于如何删除数据库中的一行的主要内容,如果未能解决你的问题,请参考以下文章

如何删除sqlite数据库表中的一行?

如何删除EXCEL表中的大量数据行,要删除的行数大概8万

如何从数据透视表中删除一行

数据库里面如何删除一个行数据?

怎么删除sql中一整行的数据

如何通过选择一行并按下删除按钮来删除 MovieClip?