データベースのCRUDのdelete

29269 ワード

クエリの結果をカラム値で更新
ステートメント
UPDATE table_name SET column=expr[,column=expr]
	[WHERE...][ORDER BY...][LIMIT...]

オペレーションデータ
mysql> CREATE TABLE exam_score(
    -> id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(20) NOT NULL COMMENT '    ',
    -> yuwen float DEFAULT 0.0 COMMENT '    ',
    -> shuxue float DEFAULT 0.0 COMMENT '    ',
    -> yingyu float DEFAULT 0.0 COMMENT '    '
    -> );
Query OK, 0 rows affected (0.45 sec)

--    :
 insert into exam_score(name,yuwen,shuxue,yingyu) values
    -> ('   ',68,95,57),
    -> ('  ',84,76,74),
    -> ('  ',88,85,62),
    -> ('  ',85,97,93),
    -> ('   ',54,87,46),
    -> ('  ',77,75,78),
    -> ('  ',76,66,36);

≪インスタンス|Instance|emdw≫
1.李白さんの試験成績を削除する
delete from exam_score where name='  ';

2.テーブル全体の構造を削除します.使用を慎む!削除のために準備されたデータ:
mysql> create table for_delete(
    -> id int primary key auto_increment,
    -> name varchar(20)
    -> );
Query OK, 0 rows affected (0.59 sec)

mysql> insert into for_delete (name) values ('a'),('b'),('c');
Query OK, 3 rows affected (0.35 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from for_delete;
+----+------+
| id | name |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | c    |
+----+------+
3 rows in set (0.00 sec)

操作:
mysql> delete from for_delete;
Query OK, 3 rows affected (0.07 sec)

mysql> select * from for_delete;
Empty set (0.00 sec)
---    
mysql> insert into for_delete (name) values ('d');
Query OK, 1 row affected (0.03 sec)

mysql> select * from for_delete;
+----+------+
| id | name |
+----+------+
|  4 | d    |
+----+------+
1 row in set (0.00 sec)
---           ,  id      。

AUTO_がある表構造の表示INCREMENT=n項
mysql> show create table for_delete\G
*************************** 1. row ***************************
       Table: for_delete
Create Table: CREATE TABLE `for_delete` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

トランケート・テーブル
使用を慎むテーブル全体に対してのみ操作でき、deleteのように一部のデータに対して操作できません.2.実はMySQLはデータ操作ができないのでdeleteより速いです.(delete影響行数はn行)3.AUTO_がリセットされますINCREMENアイテム.
構文
TRUNCATE [TABLE] table_name;

≪インスタンス|Instance|emdw≫
CREATE TABLE for_truncate (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
Query OK, 0 rows affected (0.16 sec)
--       
INSERT INTO for_truncate (name) VALUES ('A'), ('B'), ('C');
Query OK, 3 rows affected (1.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
--       
SELECT * FROM for_truncate;
+----+------+
| id | name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
+----+------+
3 rows in set (0.00 sec)

操作
--       ,        0,              
TRUNCATE for_truncate;
Query OK, 0 rows affected (0.10 sec)

--       
SELECT * FROM for_truncate;
Empty set (0.00 sec)

--        ,   id      
INSERT INTO for_truncate (name) VALUES ('D');
Query OK, 1 row affected (0.00 sec)

--     
SELECT * FROM for_truncate;
+----+------+
| id | name |
+----+------+
| 1 | D |
+----+------+
1 row in set (0.00 sec)

--      ,   AUTO_INCREMENT=2  
SHOW CREATE TABLE for_truncate\G
*************************** 1. row ***************************
Table: for_truncate
Create Table: CREATE TABLE `for_truncate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)