Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 MERGE таблици в MySQL
  1. Какво представляват MERGE таблиците?
  2. Създаване на MERGE таблица
  3. Особенности на този вид таблици
Mutatos
     
Автор  Mutatos (15.01.2006 15:29)  съобщение до автора
Погледнат  6200 пъти  добави към любими
Оценка  добави коментар
Гласове  5  изпрати на приятел
Коментари  (0)  абонирай се за MySQL
    Страница 2 / 3

 



Създаване на MERGE таблица

Този проблем може да се реши чрез създаването на MERGE таблица от данните за 2004 и 2005 година:


CODE
1
2
3
4
5
6
7
8
CREATE TABLE `stats_2004` (
 
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
 
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
 
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
 
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
 
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
 
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


CODE
1
2
3
4
5
6
7
8
CREATE TABLE `stats_2005` (
 
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
 
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
 
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
 
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
 
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
 
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


Ето и MERGE таблицата, която обединява първите две:

CODE
1
2
3
4
5
6
7
8
9
CREATE TABLE `all_stats` (
 
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
 
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
 
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
 
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
 
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
 
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
INSERT_METHOD
=LAST UNION=(`stats_2004`,`stats_2005`);


В едната таблица се съдържа информацията за 2004 година, т.е 5 милиона и в другата данните за 2005 година, отново 5 милиона. Предимството тук е, че за да изведете информацията за 2005 година е нужно да направите запитване единствено към STATS_2005. А ако искате да изведете обща статистика, то тогава правите запитването към таблицата ALL_STATS, при което получавате всичко от 2004 и 2005 година.



 << Предишна страница Следваща страница >> 


Ключови думи: MySQL таблица заявка SQL MERGE база данни бази данни


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: Mutatos  
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008