首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > MYSQL 教程:§5, 插入,删除,更新数据
【标  题】:MYSQL 教程:§5, 插入,删除,更新数据
【关键字】:MYSQL
【来  源】:http://www.cublog.cn/u/21908/showart.php?id=281266

MYSQL 教程:§5, 插入,删除,更新数据

§5, 插入,删除,更新数据

§5.1  INSERT

插入如下数据, 可以将其保存为文件,mysql <文件名来操作

use employee;
 
delete from department;
insert into department values
(42, 'Finance'),
(128, 'Research and Development'),
(NULL, 'Human Resources'),
(NULL, 'Marketing');
 
delete from employee;
insert into employee values
(7513,'Nora Edwards','Programmer',128),
(9842, 'Ben Smith', 'DBA', 42),
(6651, 'Ajay Patel', 'Programmer', 128),
(9006, 'Candy Burnett', 'Systems Administrator', 128);
 
delete from employeeSkills;
insert into employeeSkills values
(7513, 'C'),
(7513, 'Perl'),
(7513, 'Java'),
(9842, 'DB2'),
(6651, 'VB'),
(6651, 'Java'), 
(9006, 'NT'),
(9006, 'Linux');
 
delete from client;
insert into client values
(NULL, 'Telco Inc', '1 Collins St Melbourne',  'Fred Smith', '95551234'),
(NULL, 'The Bank', '100 Bourke St Melbourne',  'Jan Tristan', '95559876');
 
delete from assignment;
insert into assignment values
(1, 7513, '2003-01-20', 8.5); 

插入后情况如下:

mysql> show table status;

+----------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+

| Name           | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length  | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time          | Collation         | Checksum | Create_options | Comment |

+----------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+

| assignment     | MyISAM |      10 | Fixed      |    1 |             16 |          16 | 4503599627370495 |         2048 |         0 |           NULL | 2006-09-14 14:28:02 | 2006-09-30 09:44:36 | NULL                | latin1_swedish_ci |     NULL |                |         |

| client         | MyISAM |      10 | Dynamic    |    2 |             64 |         128 |  281474976710655 |         2048 |         0 |              3 | 2006-09-14 14:27:02 | 2006-09-30 09:44:36 | NULL                | latin1_swedish_ci |     NULL |                |         |

| department     | MyISAM |      10 | Dynamic    |    4 |             26 |         104 |  281474976710655 |         2048 |         0 |            133 | 2006-09-14 14:20:02 | 2006-09-30 09:44:36 | NULL                | latin1_swedish_ci |     NULL |                |         |

| employee       | MyISAM |      10 | Dynamic    |    4 |             39 |         156 |  281474976710655 |         3072 |         0 |           9843 | 2006-09-30 09:10:31 | 2006-09-30 09:44:36 | 2006-09-30 09:10:31 | latin1_swedish_ci |     NULL |                |         |

| employeeSkills | MyISAM |      10 | Dynamic    |    8 |             20 |         160 |  281474976710655 |         2048 |         0 |           NULL | 2006-09-14 14:22:37 | 2006-09-30 09:44:36 | NULL                | latin1_swedish_ci |     NULL |                |         |

+----------------+--------+---------+------------+------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+

5 rows in set (0.00 sec)

估计其中的动态是因为有VARCHAR

 

格式如下:

    INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name [(col_name,...)]
        VALUES ((expression | DEFAULT),...),(...),...
        [ ON DUPLICATE KEY UPDATE col_name=expression, ... ]
 
or  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name [(col_name,...)]
        SELECT ...
 
or  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name
        SET col_name=(expression | DEFAULT), ...
        [ ON DUPLICATE KEY UPDATE col_name=expression, ... ]

INTO可选,

 

insert into department
set name='Asset Management';

只能插入一行,但是可以不填其他的值.

更多的选项参见教材.

 

§5.2  REPLACE

 

REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name [(col_name,...)]
        VALUES (expression,...),(...),...
 
or  REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name [(col_name,...)]
        SELECT ...
 
or  REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name
        SET col_name=expression, col_name=expression,...
 

§5.3  DELETE

delete from department;
delete from department where name='Asset Management';

为了避免误删,可以用-–safe-updates or –-i-am-a-dummy启动, 这样不允许不带where子句的删除.

语法如下:

DELETE [LOW_PRIORITY] [QUICK] FROM table_name
       [WHERE where_definition]
       [ORDER BY ...]
       [LIMIT rows]
 
or
 
DELETE [LOW_PRIORITY] [QUICK] table_name[.*] [, table_name[.*] ...]
       FROM table-references
       [WHERE where_definition]
 
or
 
DELETE [LOW_PRIORITY] [QUICK]
       FROM table_name[.*] [, table_name[.*] ...]
       USING table-references
       [WHERE where_definition]

 

 

delete employee, employeeSkills
from employee, employeeSkills, department
where employee.employeeID = employeeSkills.employeeID
and employee.departmentID = department.departmentID
and department.name='Finance';

 

TRUNCATE TABLE employee;

是通过删除表然后重建实现,更快,但是对事物来说不是很安全.

 

§5.4  UPDATE

update employee
set job='DBA'
where employeeID='6651';

 

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT rows]
 
or
 
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]
    SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]

§5.5  LOAD DATA INFILE上载数据

department_infile.txt
42     Finance
128    Research and Development
NULL   Human Resources
NULL   Marketing

 

load data local infile 'department_infile.txt'
into table department;

 

甚至可以适合电子表格

 

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'fileName.txt'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY '\t']
        [[OPTIONALLY] ENCLOSED BY '']
        [ESCAPED BY '\\' ]
    ]
    [LINES TERMINATED BY '\n']
    [IGNORE number LINES]
    [(col_name,...)]

 

 

详细的参见教材

 

MYSQL 教程:§6, 查询:【上一篇】
MYSQL 教程:§4, 创建数据库,表,素引:【下一篇】
【相关文章】
  • MYSQL 教程:§6, 查询
  • 一步一步设置 PHP 和 MySQL 开发环境
  • mysql cluster 运用disk data storage 的测试
  • 安装linux+apache+mysql+php
  • mysql中操作IP地址的函数
  • Mysql分区?
  • [Python]在cygwin下编译MySQLdb for python
  • Mysql的JDBC 的常见连接属性
  • 网站开发经验总结1--Tomcat与Mysql连接
  • 为你的MySQL数据库加铸23道安全门
  • 【随机文章】
  • 怎样读取一个文本文件的内容?
  • 网管初级培训教程
  • 你真的用好正则表达式了吗?
  • 插值论题
  • 文 件 操 作
  • 名词解释:
  • ASP.NET AJAX 首部曲 - 迈向解密之路
  • 用DEBUG破解硬盘保护卡的简单方法
  • Solaris 8 CDE 的目录结构
  • 在PHP中开发XML应用程序
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.