MySQL Tutorial/Insert Update Delete/Update

Материал из SQL эксперт
Перейти к: навигация, поиск

Change multiple columns using one statement

   <source lang="sql">

mysql> mysql> mysql> CREATE TABLE Employee(

   ->     id            int,
   ->     first_name    VARCHAR(15),
   ->     last_name     VARCHAR(15),
   ->     start_date    DATE,
   ->     end_date      DATE,
   ->     salary        FLOAT(8,2),
   ->     city          VARCHAR(10),
   ->     description   VARCHAR(15)
   -> );

Query OK, 0 rows affected (0.03 sec) mysql> mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->              values (1,"Jason",    "Martin",  "19960725",  "20060725", 1234.56, "Toronto",  "Programmer");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(2,"Alison",   "Mathews",  "19760321", "19860221", 6661.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(3,"James",    "Smith",    "19781212", "19900315", 6544.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(4,"Celia",    "Rice",     "19821024", "19990421", 2344.78, "Vancouver","Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(5,"Robert",   "Black",    "19840115", "19980808", 2334.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(6,"Linda",    "Green",    "19870730", "19960104", 4322.78,"New York",  "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(7,"David",    "Larry",    "19901231", "19980212", 7897.78,"New York",  "Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(8,"James",    "Cat",     "19960917",  "20020415", 1232.78,"Vancouver", "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.02 sec) mysql> mysql> mysql> UPDATE employee SET first_name = "Other Title",

   -> salary = 9999
   -> WHERE (ID = 1);

Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> mysql> select * from employee; +------+-------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+-------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Other Title | Martin | 1996-07-25 | 2006-07-25 | 9999.00 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+-------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.02 sec) mysql> mysql> mysql> mysql> drop table Employee; Query OK, 0 rows affected (0.00 sec) mysql></source>


Syntac for UPDATE statement

UPDATE tablename SET columnname = value WHERE x=y



   <source lang="sql">

mysql> mysql> mysql> CREATE TABLE Employee(

   ->     id            int,
   ->     first_name    VARCHAR(15),
   ->     last_name     VARCHAR(15),
   ->     start_date    DATE,
   ->     end_date      DATE,
   ->     salary        FLOAT(8,2),
   ->     city          VARCHAR(10),
   ->     description   VARCHAR(15)
   -> );

Query OK, 0 rows affected (0.05 sec) mysql> mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->              values (1,"Jason",    "Martin",  "19960725",  "20060725", 1234.56, "Toronto",  "Programmer");

Query OK, 1 row affected (0.02 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(2,"Alison",   "Mathews",  "19760321", "19860221", 6661.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(3,"James",    "Smith",    "19781212", "19900315", 6544.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(4,"Celia",    "Rice",     "19821024", "19990421", 2344.78, "Vancouver","Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(5,"Robert",   "Black",    "19840115", "19980808", 2334.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(6,"Linda",    "Green",    "19870730", "19960104", 4322.78,"New York",  "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(7,"David",    "Larry",    "19901231", "19980212", 7897.78,"New York",  "Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(8,"James",    "Cat",     "19960917",  "20020415", 1232.78,"Vancouver", "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> mysql> UPDATE Employee SET Last_Name = "Smith" WHERE ID = 2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer | | 2 | Alison | Smith | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> mysql> mysql> mysql> drop table Employee; Query OK, 0 rows affected (0.02 sec) mysql></source>


Update a value based on the value it currently holds

   <source lang="sql">

mysql> mysql> mysql> CREATE TABLE Employee(

   ->     id            int,
   ->     first_name    VARCHAR(15),
   ->     last_name     VARCHAR(15),
   ->     start_date    DATE,
   ->     end_date      DATE,
   ->     salary        FLOAT(8,2),
   ->     city          VARCHAR(10),
   ->     description   VARCHAR(15)
   -> );

Query OK, 0 rows affected (0.03 sec) mysql> mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->              values (1,"Jason",    "Martin",  "19960725",  "20060725", 1234.56, "Toronto",  "Programmer");

Query OK, 1 row affected (0.02 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(2,"Alison",   "Mathews",  "19760321", "19860221", 6661.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(3,"James",    "Smith",    "19781212", "19900315", 6544.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(4,"Celia",    "Rice",     "19821024", "19990421", 2344.78, "Vancouver","Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(5,"Robert",   "Black",    "19840115", "19980808", 2334.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(6,"Linda",    "Green",    "19870730", "19960104", 4322.78,"New York",  "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(7,"David",    "Larry",    "19901231", "19980212", 7897.78,"New York",  "Manager");

Query OK, 1 row affected (0.01 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(8,"James",    "Cat",     "19960917",  "20020415", 1232.78,"Vancouver", "Tester");

Query OK, 1 row affected (0.02 sec) mysql> mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> UPDATE Employee SET Salary = Salary + 1; Query OK, 8 rows affected (0.00 sec) Rows matched: 8 Changed: 8 Warnings: 0 mysql> mysql> select * from employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1235.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6662.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6545.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2345.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2335.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4323.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7898.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1233.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> mysql> drop table Employee; Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql></source>


UPDATE-ing Records

The syntax of the update statement.



   <source lang="sql">

UPDATE <table_name> SET <column_name> = "new_value" WHERE (<column_name> = "some_value");</source>


Update only 5 records

   <source lang="sql">

mysql> mysql> CREATE TABLE Books(

   ->    BookID SMALLINT NOT NULL PRIMARY KEY,
   ->    BookName VARCHAR(40) NOT NULL,
   ->    InStock SMALLINT NOT NULL
   -> )
   -> ENGINE=INNODB;

Query OK, 0 rows affected (0.05 sec) mysql> mysql> CREATE TABLE Orders(

   ->    OrderID SMALLINT NOT NULL PRIMARY KEY,
   ->    BookID SMALLINT NOT NULL,
   ->    Quantity TINYINT (40) NOT NULL DEFAULT 1,
   ->    DateOrdered TIMESTAMP,
   ->    FOREIGN KEY (BookID) REFERENCES Books (BookID)
   -> )
   -> ENGINE=INNODB;

Query OK, 0 rows affected (0.09 sec) mysql> mysql> mysql> INSERT INTO Books VALUES (101, "Java", 12),

   ->                          (102, "PHP", 17),
   ->                          (103, "MySQL", 23),
   ->                          (104, "Perl", 32),
   ->                          (105, "Pyton", 6),
   ->                          (106, "www.sqle.ru", 28);

Query OK, 6 rows affected (0.03 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> mysql> INSERT INTO Orders VALUES (1001, 103, 1, "2001-11-12 12:30:00"),

   ->                           (1002, 101, 1, "2002-10-16 12:31:00"),
   ->                           (1003, 103, 2, "2003-02-11 12:34:00"),
   ->                           (1004, 104, 3, "2004-01-19 12:36:00"),
   ->                           (1005, 102, 1, "2005-12-17 12:41:00"),
   ->                           (1006, 103, 2, "2006-10-18 12:59:00"),
   ->                           (1007, 101, 1, "2004-11-21 13:01:00"),
   ->                           (1008, 103, 1, "2014-10-16 13:02:00"),
   ->                           (1009, 102, 4, "1994-09-02 13:22:00"),
   ->                           (1010, 101, 2, "1995-10-04 13:30:00"),
   ->                           (1011, 103, 1, "1996-08-12 13:32:00"),
   ->                           (1012, 105, 1, "2004-10-03 13:40:00"),
   ->                           (1013, 106, 2, "2002-05-12 13:44:00"),
   ->                           (1014, 103, 1, "2001-10-01 14:01:00"),
   ->                           (1015, 106, 1, "1997-05-05 14:05:00"),
   ->                           (1016, 104, 2, "1998-10-07 14:28:00"),
   ->                           (1017, 105, 1, "2004-03-12 14:31:00"),
   ->                           (1018, 102, 1, "2004-10-21 14:32:00"),
   ->                           (1019, 106, 3, "1991-01-30 14:49:00"),
   ->                           (1020, 103, 1, "1990-10-12 14:51:00");

Query OK, 20 rows affected (0.05 sec) Records: 20 Duplicates: 0 Warnings: 0 mysql> mysql> select * from Books; +--------+----------------+---------+ | BookID | BookName | InStock | +--------+----------------+---------+ | 101 | Java | 12 | | 102 | PHP | 17 | | 103 | MySQL | 23 | | 104 | Perl | 32 | | 105 | Pyton | 6 | | 106 | www.sqle.ru | 28 | +--------+----------------+---------+ 6 rows in set (0.00 sec) mysql> mysql> select * from Orders; +---------+--------+----------+---------------------+ | OrderID | BookID | Quantity | DateOrdered | +---------+--------+----------+---------------------+ | 1001 | 103 | 1 | 2001-11-12 12:30:00 | | 1002 | 101 | 1 | 2002-10-16 12:31:00 | | 1003 | 103 | 2 | 2003-02-11 12:34:00 | | 1004 | 104 | 3 | 2004-01-19 12:36:00 | | 1005 | 102 | 1 | 2005-12-17 12:41:00 | | 1006 | 103 | 2 | 2006-10-18 12:59:00 | | 1007 | 101 | 1 | 2004-11-21 13:01:00 | | 1008 | 103 | 1 | 2014-10-16 13:02:00 | | 1009 | 102 | 4 | 1994-09-02 13:22:00 | | 1010 | 101 | 2 | 1995-10-04 13:30:00 | | 1011 | 103 | 1 | 1996-08-12 13:32:00 | | 1012 | 105 | 1 | 2004-10-03 13:40:00 | | 1013 | 106 | 2 | 2002-05-12 13:44:00 | | 1014 | 103 | 1 | 2001-10-01 14:01:00 | | 1015 | 106 | 1 | 1997-05-05 14:05:00 | | 1016 | 104 | 2 | 1998-10-07 14:28:00 | | 1017 | 105 | 1 | 2004-03-12 14:31:00 | | 1018 | 102 | 1 | 2004-10-21 14:32:00 | | 1019 | 106 | 3 | 1991-01-30 14:49:00 | | 1020 | 103 | 1 | 1990-10-12 14:51:00 | +---------+--------+----------+---------------------+ 20 rows in set (0.00 sec) mysql> mysql> mysql> mysql> UPDATE Orders

   -> SET Quantity=Quantity+1
   -> WHERE BookID=103
   -> ORDER BY DateOrdered DESC
   -> LIMIT 5;

Query OK, 5 rows affected (0.03 sec) Rows matched: 5 Changed: 5 Warnings: 0 mysql> mysql> select * from Books; +--------+----------------+---------+ | BookID | BookName | InStock | +--------+----------------+---------+ | 101 | Java | 12 | | 102 | PHP | 17 | | 103 | MySQL | 23 | | 104 | Perl | 32 | | 105 | Pyton | 6 | | 106 | www.sqle.ru | 28 | +--------+----------------+---------+ 6 rows in set (0.00 sec) mysql> mysql> select * from Orders; +---------+--------+----------+---------------------+ | OrderID | BookID | Quantity | DateOrdered | +---------+--------+----------+---------------------+ | 1001 | 103 | 2 | 2007-07-23 19:09:37 | | 1002 | 101 | 1 | 2002-10-16 12:31:00 | | 1003 | 103 | 3 | 2007-07-23 19:09:37 | | 1004 | 104 | 3 | 2004-01-19 12:36:00 | | 1005 | 102 | 1 | 2005-12-17 12:41:00 | | 1006 | 103 | 3 | 2007-07-23 19:09:37 | | 1007 | 101 | 1 | 2004-11-21 13:01:00 | | 1008 | 103 | 2 | 2007-07-23 19:09:37 | | 1009 | 102 | 4 | 1994-09-02 13:22:00 | | 1010 | 101 | 2 | 1995-10-04 13:30:00 | | 1011 | 103 | 1 | 1996-08-12 13:32:00 | | 1012 | 105 | 1 | 2004-10-03 13:40:00 | | 1013 | 106 | 2 | 2002-05-12 13:44:00 | | 1014 | 103 | 2 | 2007-07-23 19:09:37 | | 1015 | 106 | 1 | 1997-05-05 14:05:00 | | 1016 | 104 | 2 | 1998-10-07 14:28:00 | | 1017 | 105 | 1 | 2004-03-12 14:31:00 | | 1018 | 102 | 1 | 2004-10-21 14:32:00 | | 1019 | 106 | 3 | 1991-01-30 14:49:00 | | 1020 | 103 | 1 | 1990-10-12 14:51:00 | +---------+--------+----------+---------------------+ 20 rows in set (0.00 sec) mysql> mysql> mysql> drop table Orders; Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> drop table Books; Query OK, 0 rows affected (0.05 sec) mysql></source>


Update two tables in one update statement

   <source lang="sql">

mysql> mysql> CREATE TABLE Books(

   ->    BookID SMALLINT NOT NULL PRIMARY KEY,
   ->    BookName VARCHAR(40) NOT NULL,
   ->    InStock SMALLINT NOT NULL
   -> )
   -> ENGINE=INNODB;

Query OK, 0 rows affected (0.05 sec) mysql> mysql> CREATE TABLE Orders(

   ->    OrderID SMALLINT NOT NULL PRIMARY KEY,
   ->    BookID SMALLINT NOT NULL,
   ->    Quantity TINYINT (40) NOT NULL DEFAULT 1,
   ->    DateOrdered TIMESTAMP,
   ->    FOREIGN KEY (BookID) REFERENCES Books (BookID)
   -> )
   -> ENGINE=INNODB;

Query OK, 0 rows affected (0.05 sec) mysql> mysql> mysql> INSERT INTO Books VALUES (101, "Java", 12),

   ->                          (102, "PHP", 17),
   ->                          (103, "MySQL", 23),
   ->                          (104, "Perl", 32),
   ->                          (105, "Pyton", 6),
   ->                          (106, "www.sqle.ru", 28);

Query OK, 6 rows affected (0.05 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> mysql> INSERT INTO Orders VALUES (1001, 103, 1, "2001-11-12 12:30:00"),

   ->                           (1002, 101, 1, "2002-10-16 12:31:00"),
   ->                           (1003, 103, 2, "2003-02-11 12:34:00"),
   ->                           (1004, 104, 3, "2004-01-19 12:36:00"),
   ->                           (1005, 102, 1, "2005-12-17 12:41:00"),
   ->                           (1006, 103, 2, "2006-10-18 12:59:00"),
   ->                           (1007, 101, 1, "2004-11-21 13:01:00"),
   ->                           (1008, 103, 1, "2014-10-16 13:02:00"),
   ->                           (1009, 102, 4, "1994-09-02 13:22:00"),
   ->                           (1010, 101, 2, "1995-10-04 13:30:00"),
   ->                           (1011, 103, 1, "1996-08-12 13:32:00"),
   ->                           (1012, 105, 1, "2004-10-03 13:40:00"),
   ->                           (1013, 106, 2, "2002-05-12 13:44:00"),
   ->                           (1014, 103, 1, "2001-10-01 14:01:00"),
   ->                           (1015, 106, 1, "1997-05-05 14:05:00"),
   ->                           (1016, 104, 2, "1998-10-07 14:28:00"),
   ->                           (1017, 105, 1, "2004-03-12 14:31:00"),
   ->                           (1018, 102, 1, "2004-10-21 14:32:00"),
   ->                           (1019, 106, 3, "1991-01-30 14:49:00"),
   ->                           (1020, 103, 1, "1990-10-12 14:51:00");

Query OK, 20 rows affected (0.05 sec) Records: 20 Duplicates: 0 Warnings: 0 mysql> mysql> select * from Books; +--------+----------------+---------+ | BookID | BookName | InStock | +--------+----------------+---------+ | 101 | Java | 12 | | 102 | PHP | 17 | | 103 | MySQL | 23 | | 104 | Perl | 32 | | 105 | Pyton | 6 | | 106 | www.sqle.ru | 28 | +--------+----------------+---------+ 6 rows in set (0.00 sec) mysql> mysql> select * from Orders; +---------+--------+----------+---------------------+ | OrderID | BookID | Quantity | DateOrdered | +---------+--------+----------+---------------------+ | 1001 | 103 | 1 | 2001-11-12 12:30:00 | | 1002 | 101 | 1 | 2002-10-16 12:31:00 | | 1003 | 103 | 2 | 2003-02-11 12:34:00 | | 1004 | 104 | 3 | 2004-01-19 12:36:00 | | 1005 | 102 | 1 | 2005-12-17 12:41:00 | | 1006 | 103 | 2 | 2006-10-18 12:59:00 | | 1007 | 101 | 1 | 2004-11-21 13:01:00 | | 1008 | 103 | 1 | 2014-10-16 13:02:00 | | 1009 | 102 | 4 | 1994-09-02 13:22:00 | | 1010 | 101 | 2 | 1995-10-04 13:30:00 | | 1011 | 103 | 1 | 1996-08-12 13:32:00 | | 1012 | 105 | 1 | 2004-10-03 13:40:00 | | 1013 | 106 | 2 | 2002-05-12 13:44:00 | | 1014 | 103 | 1 | 2001-10-01 14:01:00 | | 1015 | 106 | 1 | 1997-05-05 14:05:00 | | 1016 | 104 | 2 | 1998-10-07 14:28:00 | | 1017 | 105 | 1 | 2004-03-12 14:31:00 | | 1018 | 102 | 1 | 2004-10-21 14:32:00 | | 1019 | 106 | 3 | 1991-01-30 14:49:00 | | 1020 | 103 | 1 | 1990-10-12 14:51:00 | +---------+--------+----------+---------------------+ 20 rows in set (0.00 sec) mysql> mysql> mysql> UPDATE Books, Orders

   -> SET Orders.Quantity=Orders.Quantity+2,
   ->    Books.InStock=Books.InStock-2
   -> WHERE Books.BookID=Orders.BookID
   ->    AND Orders.OrderID = 1002;

Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> mysql> select * from Books; +--------+----------------+---------+ | BookID | BookName | InStock | +--------+----------------+---------+ | 101 | Java | 10 | | 102 | PHP | 17 | | 103 | MySQL | 23 | | 104 | Perl | 32 | | 105 | Pyton | 6 | | 106 | www.sqle.ru | 28 | +--------+----------------+---------+ 6 rows in set (0.00 sec) mysql> mysql> select * from Orders; +---------+--------+----------+---------------------+ | OrderID | BookID | Quantity | DateOrdered | +---------+--------+----------+---------------------+ | 1001 | 103 | 1 | 2001-11-12 12:30:00 | | 1002 | 101 | 3 | 2007-07-23 19:09:39 | | 1003 | 103 | 2 | 2003-02-11 12:34:00 | | 1004 | 104 | 3 | 2004-01-19 12:36:00 | | 1005 | 102 | 1 | 2005-12-17 12:41:00 | | 1006 | 103 | 2 | 2006-10-18 12:59:00 | | 1007 | 101 | 1 | 2004-11-21 13:01:00 | | 1008 | 103 | 1 | 2014-10-16 13:02:00 | | 1009 | 102 | 4 | 1994-09-02 13:22:00 | | 1010 | 101 | 2 | 1995-10-04 13:30:00 | | 1011 | 103 | 1 | 1996-08-12 13:32:00 | | 1012 | 105 | 1 | 2004-10-03 13:40:00 | | 1013 | 106 | 2 | 2002-05-12 13:44:00 | | 1014 | 103 | 1 | 2001-10-01 14:01:00 | | 1015 | 106 | 1 | 1997-05-05 14:05:00 | | 1016 | 104 | 2 | 1998-10-07 14:28:00 | | 1017 | 105 | 1 | 2004-03-12 14:31:00 | | 1018 | 102 | 1 | 2004-10-21 14:32:00 | | 1019 | 106 | 3 | 1991-01-30 14:49:00 | | 1020 | 103 | 1 | 1990-10-12 14:51:00 | +---------+--------+----------+---------------------+ 20 rows in set (0.02 sec) mysql> mysql> mysql> mysql> drop table Orders; Query OK, 0 rows affected (0.02 sec) mysql> mysql> drop table Books; Query OK, 0 rows affected (0.05 sec) mysql></source>


Use the LIMIT function to control the number of rows that are affected by your UPDATE statement

   <source lang="sql">

mysql> mysql> mysql> CREATE TABLE Employee(

   ->     id            int,
   ->     first_name    VARCHAR(15),
   ->     last_name     VARCHAR(15),
   ->     start_date    DATE,
   ->     end_date      DATE,
   ->     salary        FLOAT(8,2),
   ->     city          VARCHAR(10),
   ->     description   VARCHAR(15)
   -> );

Query OK, 0 rows affected (0.02 sec) mysql> mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->              values (1,"Jason",    "Martin",  "19960725",  "20060725", 1234.56, "Toronto",  "Programmer");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(2,"Alison",   "Mathews",  "19760321", "19860221", 6661.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(3,"James",    "Smith",    "19781212", "19900315", 6544.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(4,"Celia",    "Rice",     "19821024", "19990421", 2344.78, "Vancouver","Manager");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(5,"Robert",   "Black",    "19840115", "19980808", 2334.78, "Vancouver","Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(6,"Linda",    "Green",    "19870730", "19960104", 4322.78,"New York",  "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(7,"David",    "Larry",    "19901231", "19980212", 7897.78,"New York",  "Manager");

Query OK, 1 row affected (0.02 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

   ->               values(8,"James",    "Cat",     "19960917",  "20020415", 1232.78,"Vancouver", "Tester");

Query OK, 1 row affected (0.00 sec) mysql> mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> mysql> UPDATE Employee SET Salary = Salary + 1 LIMIT 3; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> mysql> select * from employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id | first_name | last_name | start_date | end_date | salary | city | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ | 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1235.56 | Toronto | Programmer | | 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6662.78 | Vancouver | Tester | | 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6545.78 | Vancouver | Tester | | 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager | | 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester | | 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester | | 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager | | 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> drop table Employee; Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> This statement would limit the update to the first 3 rows of the table. mysql> mysql> mysql> mysql></source>