Requête JOIN imbriquée ? C'est la première fois que je vois ça, êtes vous sur que c'est correct ?
Je ne peux pas essayer de toute façon car personne ne veut me dire comment faire pour sauvegarder ma base de données ... -.-
-----
Requête JOIN imbriquée ? C'est la première fois que je vois ça, êtes vous sur que c'est correct ?
Je ne peux pas essayer de toute façon car personne ne veut me dire comment faire pour sauvegarder ma base de données ... -.-
oui, je l'utilise fréquemment et j'ai testé celle là sous MsAccess mais avec INNER JOIN car il n'accepte pas JOIN avec INNER par défaut
Merci bcp
Faire du JOIN imbriqué est ce que ca ne revient pas à faire du WHERE ? Je croyais qu'on faisait du JOIN justement pour éviter les requêtes imbriquées qui demandent bcp de ressources >_<
Oui, mais non, il ne sauvegarde pas automatiquement, la preuve est que j'ai perdu les tables que j'ai mis des années à créer, de plus apparemment il faut démarrer la base de données avec START "Chemin de la base de données", mais je ne sais pas où est la mienne ni même si j'en ai une.
En fait c'est des petits trucs qu'ils ont fait en classe en 3 secondes, normalement ca demande une réponse en deux lignes maximum, mais comme personne n'est fichu de répondre à ces banalités je me casse la tête pendant des heures
Pour recréer tes tables voilà la requête
Code:CREATE TABLE `Avion` ( `nuavion` int(11) collate latin1_spanish_ci default NULL ,`annserv` date collate latin1_spanish_ci default NULL ,`nom` varchar(255) collate latin1_spanish_ci default NULL ,`nbhvol` int(11) collate latin1_spanish_ci default NULL ,`type` int(11) collate latin1_spanish_ci default NULL ,PRIMARY KEY (`nuavion`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/Avion.csv' REPLACE INTO TABLE Avion Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n'; CREATE TABLE `Pilote` ( `nopilot` int(11) collate latin1_spanish_ci default NULL ,`nom` varchar(255) collate latin1_spanish_ci default NULL ,`sal` varchar(255) collate latin1_spanish_ci default NULL ,`comm` int(11) collate latin1_spanish_ci default NULL ,`Embauche` int(11) collate latin1_spanish_ci default NULL ,PRIMARY KEY (`nopilot`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/Pilote.csv' REPLACE INTO TABLE Pilote Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n'; CREATE TABLE `AFFECTATION` ( `vol` int(11) collate latin1_spanish_ci default NULL ,`date_vol` date collate latin1_spanish_ci default NULL ,`pilote` int(11) collate latin1_spanish_ci default NULL ,`avion` int(11) collate latin1_spanish_ci default NULL ,`nbpass` int(11) collate latin1_spanish_ci default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/AFFECTATION.csv' REPLACE INTO TABLE AFFECTATION Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n';
bonjour
Hou la la... Le langage de requête Microsoft n'a qu'un lointain rapport avec le langage SQL dont on parle ici. Le vocabulaire (mots employés) est à peu près identique mais la syntaxe (construction des "phrases-requêtes") est très différente et non portable d'un système à l'autre.
Ah : Maintenant il est question d'une sauvegarde de base (dont il n'a jamais été question avant .....).
Je pense que vous ne lisez pas les réponses qu'on vous a fourni.
Je me demande si "tu ne te mélanges pas les pinceaux" ?Oui, mais non, il ne sauvegarde pas automatiquement, la preuve est que j'ai perdu les tables que j'ai mis des années à créer, de plus apparemment il faut démarrer la base de données avec START "Chemin de la base de données", mais je ne sais pas où est la mienne ni même si j'en ai une.
Ce mot clé "START" ne serait pas du SQL. Il s'agirait tout simplement de démarrer le service base de données (démarrer le logiciel)
Quand tu constates "j'ai perdu les tables que j'ai mis des années à créer", est-ce que le service ne serait pas arrêté, auquel cas, tu n'y aurais pas accès ?
Une question basique : l'instance Oracle Express est bien sur le post que tu utilises ? Dans le cas contraire est tu absolument sur d'adresser la bonne instance ?
Sais tu lire ?Pour recréer tes tables voilà la requête
Code:CREATE TABLE `Avion` ( `nuavion` int(11) collate latin1_spanish_ci default NULL ,`annserv` date collate latin1_spanish_ci default NULL ,`nom` varchar(255) collate latin1_spanish_ci default NULL ,`nbhvol` int(11) collate latin1_spanish_ci default NULL ,`type` int(11) collate latin1_spanish_ci default NULL ,PRIMARY KEY (`nuavion`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/Avion.csv' REPLACE INTO TABLE Avion Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n'; CREATE TABLE `Pilote` ( `nopilot` int(11) collate latin1_spanish_ci default NULL ,`nom` varchar(255) collate latin1_spanish_ci default NULL ,`sal` varchar(255) collate latin1_spanish_ci default NULL ,`comm` int(11) collate latin1_spanish_ci default NULL ,`Embauche` int(11) collate latin1_spanish_ci default NULL ,PRIMARY KEY (`nopilot`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/Pilote.csv' REPLACE INTO TABLE Pilote Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n'; CREATE TABLE `AFFECTATION` ( `vol` int(11) collate latin1_spanish_ci default NULL ,`date_vol` date collate latin1_spanish_ci default NULL ,`pilote` int(11) collate latin1_spanish_ci default NULL ,`avion` int(11) collate latin1_spanish_ci default NULL ,`nbpass` int(11) collate latin1_spanish_ci default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci; LOAD DATA INFILE '../csv/AFFECTATION.csv' REPLACE INTO TABLE AFFECTATION Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n';
J'ai installé OracleXE sur mon PC, j'ai mis deux raccourcis sur le bureau : 'Start Database' et 'Run SQL Command Line', j'ai essayé les deux, quand je clique sur la première ca me fait sort une fenêtre noire avec une commande déjà prête : Start C:\...\bin> , je ne sais pas ce que ca fait donc je suis sorti et j'ai crée les tables avec Run SQL Command Line j'ai crée un user avec mot de passe et je me suis connecté avec connect user/mdp, quand j'ai redémarré mon ordi il n'y avait plus rien, je me connecte à mon user et je fais SELECT *FROM PILOTE => résultat : no rows selected, quel que soit la commande SQL ca retourne no rows selected pourtant j'ai fait *, bref les tables n'y sont plus.
C'est tout ce que je sais.
oui, je sais lire quand c'est bien écrit et pas trop confus
tu écris "j'ai perdu les tables que j'ai mis des années à créer"
Alors j'ai eu la gentillesse de te générer la requête pour recréer tes tables en une seule commande de quelques centième de seconde (copier/coller et retour chariot)
tu écris aussi : Start Database : je ne sais pas ce que ça fait
ça veut dire démarrer la base de donnée
donc il reste à s'y connecter avant de faire des opérations dessus
ce n'est pas dans le bon ordrej'ai crée les tables avec Run SQL Command Line j'ai crée un user avec mot de passe et je me suis connecté
Run SQL Command Line.
connect
SYSTEM
le mot de passe que vous avez donné lors de l’installation
Le message Connected apparaît.
http://docplayer.fr/879028-Tutoriel-...elopper-1.html
ensuite seulement, tu peu créer tes tables
pour plus de souplesse, Télécharge SQL Developer
http://www.oracle.com/technetwork/de...sql-developer/
"no row selected" ne signifie pas que la table n'existe pas mais qu'elle est vide.
Si elle n'existait pas, l'erreur serait "table or view does not exist".
Merci, mais il parait que tu utilises le langage d'Access, qui n'est même pas du SQL, d'ailleurs il y a des trucs que je comprends pas dans tes commandes, je préfère attendre d'obtenir le fichier.
J'ai bien crée les tables après avoir crée un user/mdp et m'etre connecté, sinon on peut pas créer.
J'avais fait un programme en VBA pour générer le SQL de la création des tables et des enregistrements afin de les importer dans une base MySql
c'est ce que j'ai utilisé pour le SQL de tes tables donc c'est bien du SQL
mais le SQL d’accès est assez proche pour fonctionner aussi dans une base MySql
En effet j'ai vérifié avec une table qui n'existe pas. Ca veut dire que les tables sont toujours là mais que les tuples que j'ai insérés ont disparu, mais ca n'a aucun sens ... WTF ?
comment tu les as inséré tes tuples ?
dans ma requête c'est avec des .csv
Code:LOAD DATA INFILE '../csv/Pilote.csv' REPLACE INTO TABLE Pilote Fields TERMINATED BY ';' ENCLOSED BY '"' Lines STARTING BY '' TERMINATED BY '\n';
Les tuples ont bien été insérés aves succès puisque j'ai travaillé plusieurs commandes dessus avant de fermer le programme.
Faut pas faire "commit" avant de quitter ?
ne faudrait il pas terminer par exit sur sqlplus ?
alors si il ferme la fenêtre sans taper exit sa sauve ou pas ?Fin normal du programme appellant: si le programme se termine sans erreurs, la transaction est validée implicitement. C’est le cas lorsque vous utilisez l’outil sqlplus, puis vous introduisez une série de commandes LMD en mode interactif, ensuite vous quittez normalement la session via la commande sqlplus "EXIT". Dans ce cas un commit implicite est appliqué à votre transaction.
Arrêt anormal du programme: tels qu’une coupure réseau ou un kill du programme, la transaction est annulée implicitement.
http://www.tuto-dba-oracle.com/gesti...ns-oracle.html
A mon avis non : la fenêtre c'est une boîte DOS (ou une console ou quelque soit le nom qu'on lui donne) : elle ne sait pas quel programme elle fait tourner.
Quand on la ferme, je ne vois pas ce qu'elle peut faire d'autre que le tuer.
Et le problème ressemble furieusement à une transaction terminée par un roll-back.
En effet.
https://docs.oracle.com/cd/B19306_01...ments_4010.htm
Apparemment Oracle ne délivre un COMMIT implicite que pour les DDL, de plus si on ferme le programme sans EXIT ou COMMIT c'est comme si on avait fait un ROLLBACK pour la dernière transaction.
Au fait j'ai essayé d'insérer une donnée et de faire EXIT; juste après, et bein la donnée est toujours là, donc il faut bien au moins une manière appropriée pour quitter.
pour moi c'est un bug, qui d'ailleurs nous a tous mis dans l’embarraEn effet.
https://docs.oracle.com/cd/B19306_01...ments_4010.htm
Apparemment Oracle ne délivre un COMMIT implicite que pour les DDL, de plus si on ferme le programme sans EXIT ou COMMIT c'est comme si on avait fait un ROLLBACK pour la dernière transaction.
car pourquoi un COMMIT implicite que pour les DDL et pas pour les LMD ?
Je préfère MySql/php/jvs