A Gentle Introduction to

SQL


Pick an engine:

Dressmaker databasegoogleBase de données de couturière

Graduated questions

ER diagram for the Dressmaker database:googleHEU diagramme pour la base de données de couturière:

Entity relation diagram er4

SQL Source for the databasegoogleSource de SQL pour la base de données

Some sample queriesgoogleQuelques questions d'échantillon

0a The "central" table in this database is googleLa table "centrale" dans cette base de données est order_linegoogleorder_line - every garment ordered takes one line in this table. Many of the fields in this table are references to other tables. The fields of this table have the following meaning: google- chaque vêtement a commandé des prises une ligne dans cette table. Plusieurs des champs dans cette table sont des références à d'autres tables. Les champs de cette table ont la signification suivante:
order_refgoogleorder_ref
This is a link to the dress_order table. We can join the dress_order table to find information such as the the date of the order and the customer number for a given garment order.googleC'est un lien à la table de dress_order. Nous pouvons joindre la table de dress_order à l'information de trouvaille telle que la la date de la commande et du nombre de client pour un ordre donné de vêtement.
line_nogoogleline_no
The line number is used to distinguish different items on the same order - for example order number 5 has three lines - 1, 2 and 3.googleLe nombre de ligne est employé pour distinguer différents articles sur le même ordre - par exemple commande le numéro 5 a trois lignes - 1, 2 et 3.
ol_stylegoogleol_style
Indicates the article of clothing ordered. For example ol_style 1 indicates trousers - we can see this by joining to the garments table. Line 1 in the garment table is trousers. googleIndique l'article de l'habillement commandé. Par exemple l'ol_style 1 indique des pantalons - nous pouvons voir ceci en joignant aux vêtements la table. La ligne 1 dans la table de vêtement est des pantalons.
ol_sizegoogleol_size
The size of the item ordered is given here - this is particularly important when it comes to working out how much material is required to build the item. We can see from the quantities table that trousers (style 1) in size 8 takes 2.7 meters - whereas trousers in size 12 needs 2.8 meters. googleLa taille de l'article commandé est indiquée ici - c'est particulièrement importante quand il vient à établir combien de matériel est exigé pour établir l'article. Nous pouvons voir de la table de quantités que des pantalons (le modèle 1) dans la taille 8 prend 2,7 mètres - tandis que les pantalons dans la taille 12 a besoin de 2,8 mètres.
ol_materialgoogleol_material
Each order specifies the material to be used. We can join to the material table to find a description or cost per meter. Material 1 is Silk, Black, Plain costing googleChaque ordre indique la matière à employé. Nous pouvons nous joindre à la table de matériaux pour trouver une description ou un coût par mètre. Le matériel 1 est soie, noir, coût de plaine £7 per meter. google7 par mètre.

0b A sample join: googleUn échantillon se joignent:

In order to translate the numbers in order_line into meaningful values we need to join a related table. For example if we want to access the descriptions of the materials we need to join the material table. googleAfin de traduire les nombres dans l'order_line en valeurs signicatives que nous devons joindre une table relative. Par exemple si nous voulons accéder aux descriptions des matériaux nous devons joindre la table de matériaux.

To achieve the join we include the table material on the FROM line and the join condition as a WHERE clause. googlePour réaliser le joindre nous incluons le matériel de table sur de la ligne et de l'état de joindre en tant qu'cOù clause.

For each pair of tables there is a join condition between them (if they are linked). To find the join condition between order_line and material we look at the order_line table CREATE statement and notice the line that specifies that ol_material references the material table. This link will always be to the primary key of material table.googlePour chaque paire de tables il y a une condition de joindre entre elles (s'ils sont liés). Pour trouver la condition de joindre entre l'order_line et le matériel nous regardons la table d'order_line CRÉONS le rapport et notons la ligne qui indique que des références ol_material la table de matériaux. Ce lien sera toujours à la clef primaire de la table de matériaux.

CREATE TABLE order_line (
  order_ref	INTEGER	NOT NULL REFERENCES dress_order
 ,line_no	INTEGER	NOT NULL
 ,ol_style	INTEGER	REFERENCES garment
 ,ol_size	INTEGER	NOT NULL
 ,ol_material	INTEGER	REFERENCES material
 ,PRIMARY KEY (order_ref, line_no)
 ,FOREIGN KEY (ol_style, ol_size) REFERENCES quantities
 );

0c To get a description of the garment we need to join the garment table. The join condition is that the ol_style in order_line matches the style_no in garment. googlePour obtenir une description du vêtement que nous devons joindre la table de vêtement. L'état de joindre est que l'ol_style dans l'order_line assortit le style_no en vêtement.

0d If we need both the description and the fabric we can join both material and garment to the order_line table. The join conditions are combined with "AND" googleSi nous avons besoin de la description et du tissu nous pouvons joindre le matériel et le vêtement à la table d'order_line. Les conditions de joindre sont combinés avec "ET"

0e The quantities table tells us how much material is required for every garment for every size available. The join between the order_line and quantities is unusual in that it involves two fields. This can be seen by the fact that quantities has a composite key. googleLa table de quantités nous indique combien de matériel est exigé pour chaque vêtement pour chaque taille disponible. Le joindre entre l'order_line et les quantités est peu commun parce qu'il implique deux champs. Ceci peut être vu par le fait que les quantités a une clef composée.

0f Customers place orders - each order contains many lines - each line of the order grefers to a garment: googleLa place de clients commande - chaque ordre contient beaucoup de lignes - chaque ligne des grefers d'ordre à un vêtement: