Multidesk.be » Forums » ASP » CREATE table (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Suriv op zaterdag 17 februari 2007 om 23:18:54.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hoe moet je (via SQL) een table creŽren die de volgende veldeigenschappen (in Access) heeft:
- Field1 (type Autonummering + Primaire sleutel)
- Field2 (type Tekst)
- Field3 (type Tekst)
- Field4 (type Memo)
- Field5 (type Datum/Tijd)
- Field6 (type Datum/Tijd)
- Field7 (type Memo)
- Field8 (type Ja/Nee)

Ik ken wel (in theorie, nog niet toegepast) de syntaxis, maar het zijn vooral die types die ik niet ken.

Is er ook een manier om een nieuwe kolom (fieldset) aan te maken in een bestaande tabel?

Alvast bedankt :)
Deze tekst werd het laatst bewerkt voor 9.45 % door Suriv op zaterdag 17 februari 2007 om 23:22:44.
^ Reactie #1 geschreven door Simon op zondag 18 februari 2007 om 10:50:33.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik weet dat de syntaxis van SQL voor access een beetje anders is, maar op deze manier moet het voor MySQL. Ik denk dat dat ongeveer hetzelfde moet zijn, en dat er ook niet veel verschil kan zijn tussen de types.
Alleen voor ja/nee denk ik niet dat dat bestaat? Ik weet het niet helemaal zeker:
CODE
  1. CREATE TABLE `tabelnaam` (
  2. `field1` INT NOT NULL AUTO_INCREMENT ,
  3. `field2` VARCHAR( 180 ) NOT NULL ,
  4. `field3` VARCHAR( 180 ) NOT NULL ,
  5. `field4` LONGTEXT NOT NULL ,
  6. `field5` DATETIME NOT NULL ,
  7. `field6` DATETIME NOT NULL ,
  8. `field7` LONGTEXT NOT NULL ,
  9. `field8` VARCHAR( 180 ) NOT NULL ,
  10. PRIMARY KEY ( `field1` )
  11. );

  • De cijfers na VARCHAR kan je aanpassen, dit duidt op de toegestane lengte van dit veld
  • Je ziet dat er bij elk veld NOT NULL staat, als het veld wel leeg mag zijn, kan je dit gerust vervangen door NUL
  • Je ziet dat de primaire sleutel onderaan wordt toegekend, dit is hetzelfde voor index en unieke waarde


Om velden toe te voegen doe je gewoon dit:
CODE
  1. ALTER TABLE `tabelnaam`
  2. ADD `field9` VARCHAR( 180 ) NOT NULL

  • Zo kan je een veld toevoegen (met ADD), om te verwijderen kan je dit doen met DROP
  • Je hoeft gewoon dezelfde informatie aan het veld mee te geven als wanneer je een tabel zou aanmaken.

Nog eens, ik weet niet zeker of het in access ongeveer hetzelfde is, maar ik denk van wel.
^ Reactie #2 geschreven door Simon op zondag 18 februari 2007 om 10:50:33.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik weet dat de syntaxis van SQL voor access een beetje anders is, maar op deze manier moet het voor MySQL. Ik denk dat dat ongeveer hetzelfde moet zijn, en dat er ook niet veel verschil kan zijn tussen de types.
Alleen voor ja/nee denk ik niet dat dat bestaat? Ik weet het niet helemaal zeker:
CODE
  1. CREATE TABLE `tabelnaam` (
  2. `field1` INT NOT NULL AUTO_INCREMENT ,
  3. `field2` VARCHAR( 180 ) NOT NULL ,
  4. `field3` VARCHAR( 180 ) NOT NULL ,
  5. `field4` LONGTEXT NOT NULL ,
  6. `field5` DATETIME NOT NULL ,
  7. `field6` DATETIME NOT NULL ,
  8. `field7` LONGTEXT NOT NULL ,
  9. `field8` VARCHAR( 180 ) NOT NULL ,
  10. PRIMARY KEY ( `field1` )
  11. );

  • De cijfers na VARCHAR kan je aanpassen, dit duidt op de toegestane lengte van dit veld
  • Je ziet dat er bij elk veld NOT NULL staat, als het veld wel leeg mag zijn, kan je dit gerust vervangen door NUL
  • Je ziet dat de primaire sleutel onderaan wordt toegekend, dit is hetzelfde voor index en unieke waarde


Om velden toe te voegen doe je gewoon dit:
CODE
  1. ALTER TABLE `tabelnaam`
  2. ADD `field9` VARCHAR( 180 ) NOT NULL

  • Zo kan je een veld toevoegen (met ADD), om te verwijderen kan je dit doen met DROP
  • Je hoeft gewoon dezelfde informatie aan het veld mee te geven als wanneer je een tabel zou aanmaken.

Nog eens, ik weet niet zeker of het in access ongeveer hetzelfde is, maar ik denk van wel.
^ Reactie #3 geschreven door Suriv op zondag 18 februari 2007 om 11:43:01.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
De create table werkt gelijk niet. Volgens mij moet het zo in Access, maar het werkt niet:
CODE
  1. sql = "CREATE TABLE tblTest "
  2. sql = sql & "field1 INT NOT NULL AUTO_INCREMENT, "
  3. sql = sql & "field2 VARCHAR(180) NULL, "
  4. sql = sql & "field3 VARCHAR(180) NULL, "
  5. sql = sql & "field4 LONGTEXT NULL, "
  6. sql = sql & "field5 DATETIME NULL, "
  7. sql = sql & "field6 DATETIME NULL, "
  8. sql = sql & "field7 LONGTEXT NULL, "
  9. sql = sql & "field8 VARCHAR(180) NULL, "
  10. sql = sql & "PRIMARY KEY (field1))"

Ik krijg error De instructie CREATE TABLE bevat een syntaxisfout..
EDIT: het ligt aan de AUTO_INCREMENT, als ik die weglaat werkt het wel.

Bedankt voor je ALTER TABLE, dat werkt perfect :).
Deze tekst werd het laatst bewerkt voor 4.55 % door Suriv op zondag 18 februari 2007 om 11:49:11.
^ Reactie #4 geschreven door Suriv op zondag 18 februari 2007 om 11:43:01.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
De create table werkt gelijk niet. Volgens mij moet het zo in Access, maar het werkt niet:
CODE
  1. sql = "CREATE TABLE tblTest "
  2. sql = sql & "field1 INT NOT NULL AUTO_INCREMENT, "
  3. sql = sql & "field2 VARCHAR(180) NULL, "
  4. sql = sql & "field3 VARCHAR(180) NULL, "
  5. sql = sql & "field4 LONGTEXT NULL, "
  6. sql = sql & "field5 DATETIME NULL, "
  7. sql = sql & "field6 DATETIME NULL, "
  8. sql = sql & "field7 LONGTEXT NULL, "
  9. sql = sql & "field8 VARCHAR(180) NULL, "
  10. sql = sql & "PRIMARY KEY (field1))"

Ik krijg error De instructie CREATE TABLE bevat een syntaxisfout..
EDIT: het ligt aan de AUTO_INCREMENT, als ik die weglaat werkt het wel.

Bedankt voor je ALTER TABLE, dat werkt perfect :).
Deze tekst werd het laatst bewerkt voor 4.55 % door Suriv op zondag 18 februari 2007 om 11:49:11.
^ Reactie #5 geschreven door Suriv op zondag 18 februari 2007 om 18:05:15.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Na wat zoeken is het uiteindelijk toch gelukt, deels dan toch:
CODE
  1. sql = "CREATE TABLE tblTest "
  2. sql = sql & "(field1 AUTOINCREMENT NOT NULL, "
  3. sql = sql & "field2 VARCHAR(180) NULL, "
  4. sql = sql & "field3 VARCHAR(180) NULL, "
  5. sql = sql & "field4 LONGTEXT NULL, "
  6. sql = sql & "field5 DATETIME NULL, "
  7. sql = sql & "field6 DATETIME NULL, "
  8. sql = sql & "field7 LONGTEXT NULL, "
  9. sql = sql & "field8 VARCHAR(180) NULL)"
  10. sql = sql & "PRIMARY KEY (field1))"


Ik moet nu nog weten hoe je een veld van het type Yes/No maakt...
Deze tekst werd het laatst bewerkt voor 6.47 % door Suriv op zondag 18 februari 2007 om 18:12:09.
^ Reactie #6 geschreven door Suriv op zondag 18 februari 2007 om 18:05:15.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Na wat zoeken is het uiteindelijk toch gelukt, deels dan toch:
CODE
  1. sql = "CREATE TABLE tblTest "
  2. sql = sql & "(field1 AUTOINCREMENT NOT NULL, "
  3. sql = sql & "field2 VARCHAR(180) NULL, "
  4. sql = sql & "field3 VARCHAR(180) NULL, "
  5. sql = sql & "field4 LONGTEXT NULL, "
  6. sql = sql & "field5 DATETIME NULL, "
  7. sql = sql & "field6 DATETIME NULL, "
  8. sql = sql & "field7 LONGTEXT NULL, "
  9. sql = sql & "field8 VARCHAR(180) NULL)"
  10. sql = sql & "PRIMARY KEY (field1))"


Ik moet nu nog weten hoe je een veld van het type Yes/No maakt...
Deze tekst werd het laatst bewerkt voor 6.47 % door Suriv op zondag 18 februari 2007 om 18:12:09.
^ Reactie #7 geschreven door Simon op maandag 19 februari 2007 om 12:50:25.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Wel grappig dat die SQL-statements in access er totaal anders uit zien.

Ik denk niet dat een veld van het type Yes/no bestaat. Dit vond ik op internet over data types in SQL:
http://developer.mimer.com/documentation/Mimer_SQL_Reference_Manual/Syntax_Rules4.html
Er staat dus niet veel in over Yes/no.

Maar je kan de gebruikers toch gewoon via een radio-button laten kiezen, de waarde dan opslaan in een veld (VARCHAR(3)), zo kunnen enkel waarde Yes en No in de database komen te staan. Kan het niet op die manier?

Dit kan eventueel ook nog handig zijn bij het toevoegen van kolommen aan de database:
CODE
  1. ALTER TABLE `tabelnaam` ADD `field9` VARCHAR( 180 ) NOT NULL AFTER `field3` ;
  2.  
  3. ALTER TABLE `tabelnaam` ADD `field9` VARCHAR( 180 ) NOT NULL FIRST

Het eerste statement zorgt ervoor dat het veld toegevoegd wordt na veld 3. En de tweede code zorgt ervoor dat het veld toegevoegd wordt aan het begin van de tabel.
Zo kan je de structuur in je tabellen nog een beetje behouden als je veel velden toevoegd ;).
^ Reactie #8 geschreven door Simon op maandag 19 februari 2007 om 12:50:25.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Wel grappig dat die SQL-statements in access er totaal anders uit zien.

Ik denk niet dat een veld van het type Yes/no bestaat. Dit vond ik op internet over data types in SQL:
http://developer.mimer.com/documentation/Mimer_SQL_Reference_Manual/Syntax_Rules4.html
Er staat dus niet veel in over Yes/no.

Maar je kan de gebruikers toch gewoon via een radio-button laten kiezen, de waarde dan opslaan in een veld (VARCHAR(3)), zo kunnen enkel waarde Yes en No in de database komen te staan. Kan het niet op die manier?

Dit kan eventueel ook nog handig zijn bij het toevoegen van kolommen aan de database:
CODE
  1. ALTER TABLE `tabelnaam` ADD `field9` VARCHAR( 180 ) NOT NULL AFTER `field3` ;
  2.  
  3. ALTER TABLE `tabelnaam` ADD `field9` VARCHAR( 180 ) NOT NULL FIRST

Het eerste statement zorgt ervoor dat het veld toegevoegd wordt na veld 3. En de tweede code zorgt ervoor dat het veld toegevoegd wordt aan het begin van de tabel.
Zo kan je de structuur in je tabellen nog een beetje behouden als je veel velden toevoegd ;).
^ Reactie #9 geschreven door Martijn op maandag 19 februari 2007 om 14:02:07.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik ben er niet zeker van, maar geloof dat dat veld boolean noemt.
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #10 geschreven door Martijn op maandag 19 februari 2007 om 14:02:07.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik ben er niet zeker van, maar geloof dat dat veld boolean noemt.
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #11 geschreven door Simon op maandag 19 februari 2007 om 14:30:02.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hm, wel interessant. Dit vond ik op internet:
DatabaseAccessSQL-ServerOracleMySQLPostgreSQL
dBooleanYes/NoBitByteN/ABoolean
In MySQL is dat dus alleszins niet beschikbaar, maar in access wel, er staat dat dit veld yes/No noemt, daar kom je dus toch niet veel verder mee. Of is dit niet de veldwaarde? Wil dit dan gewoon zeggen dat het datatype boolean die bepaalde waarde heeft in die bepaalde database?

Je vindt het allemaal op deze pagina:
http://www.onlamp.com/pub/a/onlamp/2001/09/13/aboutSQL.html bij de titel "SQL Data Type Quick Reference".
^ Reactie #12 geschreven door Simon op maandag 19 februari 2007 om 14:30:02.
Simon's avatar
Multiviteit: 3742
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hm, wel interessant. Dit vond ik op internet:
DatabaseAccessSQL-ServerOracleMySQLPostgreSQL
dBooleanYes/NoBitByteN/ABoolean
In MySQL is dat dus alleszins niet beschikbaar, maar in access wel, er staat dat dit veld yes/No noemt, daar kom je dus toch niet veel verder mee. Of is dit niet de veldwaarde? Wil dit dan gewoon zeggen dat het datatype boolean die bepaalde waarde heeft in die bepaalde database?

Je vindt het allemaal op deze pagina:
http://www.onlamp.com/pub/a/onlamp/2001/09/13/aboutSQL.html bij de titel "SQL Data Type Quick Reference".
^ Reactie #13 geschreven door Martijn op maandag 19 februari 2007 om 14:35:19.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
MySQL kent hiervoor wel een alternatief:

CODE
  1. CREATE TABLE tabel (
  2. ID INT NOT NULL,
  3. janee BOOL NOT NULL,
  4. PRIMARY KEY (ID)
  5. );
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #14 geschreven door Martijn op maandag 19 februari 2007 om 14:35:19.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
MySQL kent hiervoor wel een alternatief:

CODE
  1. CREATE TABLE tabel (
  2. ID INT NOT NULL,
  3. janee BOOL NOT NULL,
  4. PRIMARY KEY (ID)
  5. );
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #15 geschreven door Suriv op maandag 19 februari 2007 om 16:10:50.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Kheb het gevonden:
CODE
  1. sql = sql & "field8 YESNO NULL)"


Thx allemaal (thumbsup)
^ Reactie #16 geschreven door Suriv op maandag 19 februari 2007 om 16:10:50.
Suriv's avatar
Multiviteit: 7607
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Kheb het gevonden:
CODE
  1. sql = sql & "field8 YESNO NULL)"


Thx allemaal (thumbsup)
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten