Advertisement
Guest User

Untitled

a guest
Apr 21st, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- M2106
  2. -- Correction du TD1
  3.  
  4. -- ex1
  5. CREATE TABLE etat
  6. a
  7.   code        CHAR(2 CHAR)      CONSTRAINT pk_etat          PRIMARY KEY,
  8.   nom         VARCHAR2(15 CHAR) CONSTRAINT nn_etat_nom      NOT NULL,
  9.   capitale    VARCHAR2(15 CHAR) CONSTRAINT nn_etat_capitale NOT NULL,
  10.   nbHab       NUMBER(8)         CONSTRAINT nn_etat_nbHab    NOT NULL,
  11.   CONSTRAINT  un_etat_nom       UNIQUE(nom),
  12.   CONSTRAINT  un_etat_capitale  UNIQUE(capitale),
  13.   CONSTRAINT  ck_etat_nbHab     CHECK(nbHab >= 500000)
  14. ) ;
  15.  
  16. -- ex2
  17. CREATE TABLE prenom
  18. (
  19.   idP         NUMBER                CONSTRAINT pk_prenom          PRIMARY KEY,
  20.   libelle     VARCHAR2(15 CHAR)     CONSTRAINT nn_prenom_libelle  NOT NULL,
  21.   estCelebre  CHAR(1 CHAR),      
  22.   CONSTRAINT  un_prenom_libelle     UNIQUE(libelle),
  23.   CONSTRAINT  ck_prenom_libelle     CHECK(INITCAP(libelle) = libelle),
  24.   CONSTRAINT  ck_prenom_estCelebre  CHECK(estCelebre IN ('O', 'N'))
  25. ) ;
  26.  
  27. -- ex3
  28. CREATE TABLE naissance
  29. (
  30.   idP         NUMBER,
  31.   sexe        CHAR(1 CHAR),
  32.   code        CHAR(2 CHAR),
  33.   annee       NUMBER(4),
  34.   nb          NUMBER              DEFAULT 5 CONSTRAINT nn_naissance_nb NOT NULL,
  35.   CONSTRAINT  pk_naissance        PRIMARY KEY(idP, sexe, code, annee),
  36.   CONSTRAINT  fk_naissance_idP    foreign KEY(idP) references prenom,
  37.   CONSTRAINT  fk_naissance_code   foreign KEY(code) references etat,
  38.   CONSTRAINT  ck_naissance_sexe   CHECK(sexe IN ('M', 'F')),
  39.   CONSTRAINT  ck_naissance_annee  CHECK(annee BETWEEN 1910 AND 2012),
  40.   CONSTRAINT  ck_naissance_nb     CHECK(nb >= 5)
  41. ) ;
  42.  
  43. -- ex4
  44. DESC etat
  45. DESC prenom
  46. DESC naissance
  47.  
  48. -- ex5
  49. SELECT table_name
  50. FROM user_tables ;
  51.  
  52. -- ex6
  53. SELECT table_name, constraint_name, constraint_type, status
  54. FROM user_constraints
  55. ORDER BY table_name, constraint_name ;
  56.  
  57. -- ex7
  58. SELECT t.*, bytes/1024/1024 MO_occupes, (max_bytes - bytes)/1024/1024 MO_dispos
  59. FROM user_ts_quotas t ;
  60.  
  61. -- ex8
  62. INSERT INTO etat VALUES('CA', 'California', 'Sacramento', 38041430) ;
  63. INSERT INTO etat(code, nom, capitale, nbHab) VALUES('TX', 'Texas', 'Austin', 26059203) ;
  64. INSERT INTO etat(capitale, nbHab, code, nom) VALUES('Tallahasee', 19317568, 'FL', 'Florida') ;
  65. INSERT INTO etat VALUES('MA', 'Massachussets', 'Boston', 6646144) ;
  66. INSERT INTO etat VALUES('CO', 'Colorado', 'Denver', 5187582) ;
  67. INSERT INTO etat VALUES('LA', 'Louisiana', 'Baton Rouge', 4601893) ;
  68. INSERT INTO etat VALUES('UT', 'Utah', 'Salt Lake City', 2855287) ;
  69. COMMIT ;
  70.  
  71. -- ex9
  72. INSERT INTO prenom(idP, libelle) SELECT idP, libelle FROM cabanac.prenom ;
  73.  
  74. -- ex10
  75. INSERT INTO naissance
  76.   SELECT idP, sexe, code, annee, nb
  77.   FROM cabanac.naissance
  78.   WHERE code IN ('CA', 'CO', 'FL', 'LA', 'MA', 'TX', 'UT') -- ou in (select code from etat)
  79.     AND annee > 1979 ;
  80.  
  81. COMMIT ;
  82.  
  83.  
  84. --Ex11
  85. UPDATE PRENOM
  86. SET ESTCELEBRE = 'N'
  87. WHERE LIBELLE = 'Clorissa' OR LIBELLE='Elyn';
  88.  
  89. SELECT * FROM PRENOM WHERE libelle = 'Clorissa' OR libelle = 'Elyn';
  90.  
  91. COMMIT;
  92.  
  93. UPDATE PRENOM
  94. SET ESTCELEBRE = 'O'
  95. WHERE LIBELLE = 'Barack' OR LIBELLE='Monica' OR libelle = 'Marylin' OR libelle ='Mickael' OR libelle = 'Indiana' OR libelle = 'Hussain';
  96.  
  97. --ex14
  98. INSERT INTO etat (CODE, NOM, CAPITALE, NBHAB) VALUES ( 'FR', 'France', 'Paris', 50);
  99.  
  100. COMMIT;
  101.  
  102. --ex15
  103. CREATE TABLE naissancevip AS
  104.   SELECT *
  105.   FROM naissance
  106.   WHERE idp IN (SELECT idp FROM prenom WHERE libelle = 'Clorissa' OR libelle = 'Elyn');
  107.  
  108.  
  109. SELECT constraint_name, status, constraint_type, search_condition FROM USER_CONSTRAINTS WHERE table_name = 'NAISSANCEVIP';
  110. SELECT constraint_name, status, constraint_type, search_condition FROM USER_CONSTRAINTS WHERE table_name = 'NAISSANCE';
  111.  
  112. DELETE FROM naissancevip WHERE annee < 2000;
  113.  
  114. DROP TABLE naissancevip;
  115.  
  116. --ex16
  117. ALTER TABLE etat ADD
  118. prixPort NUMBER(3,2) DEFAULT 3.14 CONSTRAINT ck_etat_prixPort CHECK(prixPort <= 8.50);
  119.  
  120. --EX 17
  121.  
  122. UPDATE ETAT
  123. SET prixPort = 6.90
  124. WHERE nom = 'Utah' OR NBHAB > 10000000;
  125.  
  126. COMMIT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement