WEB开发网
开发学院数据库MySQL MySQL中文参考手册-- 常用查询的例子 阅读

MySQL中文参考手册-- 常用查询的例子

 2008-12-19 11:14:30 来源:WEB开发网   
核心提示: 最后例子当然能通过在客户程序中分割连结的列使它更有效一点,3.5 使用外键不需要外键联结2个表,MySQL中文参考手册-- 常用查询的例子(4),MySQL唯一不做的事情是CHECK以保证你使用的键确实在你正在引用表中存在,并且它不自动从有一个外键定义的表中删除行

最后例子当然能通过在客户程序中分割连结的列使它更有效一点。

3.5 使用外键

不需要外键联结2个表。

MySQL唯一不做的事情是CHECK以保证你使用的键确实在你正在引用表中存在,并且它不自动从有一个外键定义的表中删除行。如果你象平常那样使用你的键值,它将工作得很好!

  CREATE TABLE persons (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name CHAR(60) NOT NULL,
    PRIMARY KEY (id)
  );
  CREATE TABLE shirts (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
    owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,
    PRIMARY KEY (id)
  );
  INSERT INTO persons VALUES (NULL, 'Antonio Paz');
  INSERT INTO shirts VALUES
  (NULL, 'polo', 'blue', LAST_INSERT_ID()),
  (NULL, 'dress', 'white', LAST_INSERT_ID()),
  (NULL, 't-shirt', 'blue', LAST_INSERT_ID());
  INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');
  INSERT INTO shirts VALUES
  (NULL, 'dress', 'orange', LAST_INSERT_ID()),
  (NULL, 'polo', 'red', LAST_INSERT_ID()),
  (NULL, 'dress', 'blue', LAST_INSERT_ID()),
  (NULL, 't-shirt', 'white', LAST_INSERT_ID());
  SELECT * FROM persons;
  +----+---------------------+
  | id | name        |
  +----+---------------------+
  | 1 | Antonio Paz     |
  | 2 | Lilliana Angelovska |
  +----+---------------------+
  SELECT * FROM shirts;
  +----+---------+--------+-------+
  | id | style  | color | owner |
  +----+---------+--------+-------+
  | 1 | polo  | blue  |   1 |
  | 2 | dress  | white |   1 |
  | 3 | t-shirt | blue  |   1 |
  | 4 | dress  | orange |   2 |
  | 5 | polo  | red  |   2 |
  | 6 | dress  | blue  |   2 |
  | 7 | t-shirt | white |   2 |
  +----+---------+--------+-------+
  SELECT s.* FROM persons p, shirts s
   WHERE p.name LIKE 'Lilliana%'
    AND s.owner = p.id
    AND s.color <> 'white';
  +----+-------+--------+-------+
  | id | style | color | owner |
  +----+-------+--------+-------+
  | 4 | dress | orange |   2 |
  | 5 | polo | red  |   2 |
  | 6 | dress | blue  |   2 |
  +----+-------+--------+-------+

上一页  1 2 3 4 

Tags:MySQL 参考

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接