SQL/MySQL/Select Clause/Function In Select — различия между версиями

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

Текущая версия на 10:16, 26 мая 2010

Using Functions to Perform System-Related Operations

/*
mysql> Drop table DVDs;
Query OK, 0 rows affected (1.66 sec)
mysql> CREATE TABLE DVDs (
    ->    ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->    Name VARCHAR(60) NOT NULL,
    ->    NumDisks TINYINT NOT NULL DEFAULT 1,
    ->    RatingID VARCHAR(4) NOT NULL,
    ->    StatID CHAR(3) NOT NULL
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (1.02 sec)
mysql> INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
    -> VALUES ("Christmas", 1, "NR", "s1"),
    ->        ("Doc",       1, "G",  "s2"),
    ->        ("Africa",    1, "PG", "s1"),
    ->        ("Falcon",    1, "NR", "s2"),
    ->        ("Amadeus",   1, "PG", "s2"),
    ->        ("Show",      2, "NR", "s2"),
    ->        ("View",      1, "NR", "s1"),
    ->        ("Mash",      2, "R",  "s2");
Query OK, 8 rows affected (0.22 sec)
Records: 8  Duplicates: 0  Warnings: 0
mysql> SELECT SQL_CALC_FOUND_ROWS Name
    -> FROM DVDs
    -> WHERE StatID="s2"
    -> ORDER BY Name
    -> LIMIT 2;
+---------+
| Name    |
+---------+
| Amadeus |
| Doc     |
+---------+
2 rows in set (0.21 sec)
*/
Drop table DVDs;
CREATE TABLE DVDs (
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name VARCHAR(60) NOT NULL,
   NumDisks TINYINT NOT NULL DEFAULT 1,
   RatingID VARCHAR(4) NOT NULL,
   StatID CHAR(3) NOT NULL
)
ENGINE=INNODB;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
VALUES ("Christmas", 1, "NR", "s1"),
       ("Doc",       1, "G",  "s2"),
       ("Africa",    1, "PG", "s1"),
       ("Falcon",    1, "NR", "s2"),
       ("Amadeus",   1, "PG", "s2"),
       ("Show",      2, "NR", "s2"),
       ("View",      1, "NR", "s1"),
       ("Mash",      2, "R",  "s2");
  

SELECT SQL_CALC_FOUND_ROWS Name
FROM DVDs
WHERE StatID="s2"
ORDER BY Name
LIMIT 2;