Netzflut

Webdesign, Webentwicklung, Drupal & Zeuchs

Mysql Views

Inhaltsverzeichniss

    Beispiel Daten

    Tabelle 1 User

    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(50) CHARACTER SET latin1 NOT NULL,
      `email` varchar(150) CHARACTER SET latin1 NOT NULL,
      `mobile` varchar(20) CHARACTER SET latin1 NOT NULL,
      `address` varchar(255) CHARACTER SET latin1 NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
    INSERT INTO `users` (`id`, `name`, `email`, `mobile`, `address`) VALUES
    (1, 'Aaa Mii', 'al@min.com', '6546464', 'Dhaka,Bangladesh'),
    (2, 'Saa Hee', 's@hed.com', '987979', 'Dhaka, Bangladesh'),
    (3, 'Maa Muu', 'm@mun.com', '646465', 'Dhaka,Bangladesh'),
    (9, 'Foo Saa', 'f@sa.com', '1234556', 'Dhaka, Bangladesh.');

    Tabelle 2 Spiele

    CREATE TABLE IF NOT EXISTS `spiele` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `spielname` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    INSERT INTO `spiele` (`id`, `spielname`) VALUES
    (1, 'DOTA'),
    (2, 'WoW'),
    (3, 'Super Mario');

    Tabelle 3 Spieler

    CREATE TABLE IF NOT EXISTS `spieler` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` int(11) NOT NULL,
      `spiel_id` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    INSERT INTO `spieler` (`id`, `user_id`, `spiel_id`) VALUES
    (1, 1, 2),
    (2, 2, 3),
    (3, 9, 2),
    (4, 9, 1),
    (6, 3, 3);

    Mysql View

    CREATE VIEW v AS 
    SELECT
    spieler.*, 
    spiele.spielname,
    users.name
    FROM `spieler`
    INNER JOIN spiele on spiele.id = spieler.spiel_id
    INNER JOIN users on users.id = spieler.user_id;

    Updating a View

    UPDATE v SET name = "Marco" WHERE spieler_id=1

    Der Wert wird auch in der base table "users" geupdated. Wir sehen also views sind updatebar, einfach genial.Doch es gibt einige Ausnahmen:
    http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html

    Quellen

    http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-views/
    http://skyontech.com/blog/create-MySQL-view-in-phpMyAdmin
    http://www.mysqltutorial.org/create-sql-views-mysql.aspx

    Design&Code: