Enkele vragen mbt schoolopdracht

Status
Niet open voor verdere reacties.

MiKeZZa

Gebruiker
Lid geworden
18 mrt 2006
Berichten
77
Ik ben bezig met een opdracht voor school. Ik moet SQL maken nav een casus. Ik heb enkele problemen/onduidelijkheden waar ik niet uit kom.

Ik wil ergens als default de huidige datum, op dit forum is al gezegd dat ik '0000-00-00' moet doen maar ook dat ik NOW() moet invoeren. Er is echter nog geen duidelijkheid over wat nu precies handig is

Ik heb een paar maal dat ik ergens een getal in moet laten vullen door de gebruiker, dit is dan week 1, hierna moet het veld week 2 automatisch gevuld worden met een datum 26 weken na week 1 (dit zijn gewoon integers dus het mag gewoon optellen!). Maar ik heb geen idee hoe dit moet.

Er is ook nog een veld dat moet een boolean worden maar ik heb geen idee hoe ik dat ingeef in SQL.


Ik hoop dat iemand mij helpen kan!
 
MiKeZZa zei:
Ik wil ergens als default de huidige datum, op dit forum is al gezegd dat ik '0000-00-00' moet doen maar ook dat ik NOW() moet invoeren. Er is echter nog geen duidelijkheid over wat nu precies handig is

Ik heb een paar maal dat ik ergens een getal in moet laten vullen door de gebruiker, dit is dan week 1, hierna moet het veld week 2 automatisch gevuld worden met een datum 26 weken na week 1 (dit zijn gewoon integers dus het mag gewoon optellen!). Maar ik heb geen idee hoe dit moet.

Er is ook nog een veld dat moet een boolean worden maar ik heb geen idee hoe ik dat ingeef in SQL.
Welk programma gebruik je? Omdat je het over "now()" hebt vermoed ik dat het MySQL is, maar klopt dit ook?

Wat betreft datum heb je de volgende variaties:
Code:
[FONT="Courier New"]mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2006-03-19 01:26:16 |
+---------------------+
1 row in set (0.02 sec)

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2006-03-19 |
+------------+
1 row in set (0.00 sec)

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 01:26:43  |
+-----------+
1 row in set (0.02 sec)[/FONT]

Misschien kun je wat van de code geven die je al hebt?
 
Ik moet het voor school gewoon schrijven in SQL en inleveren, verder hoeft het uiteindelijk niet ingevoerd te worden ofzo!

De code die ik tot nu toe heb inclusief curdate(); van jou is dit:

Code:
create table Donor
(
nummer		NUMBER	constraint D_NUMMER					primary key,
achternaam		VARCHAR(30)	constraint D_ANAAM					not null,
voornaam		VARCHAR(15)	constraint D_VNAAM					not null,
adres			VARCHAR(40)	constraint D_ADRES					not null,
postcode		CHAR(6)	constraint D_PC					not null,
woonplaats		VARCHAR(30)	constraint D_WOONPL					not null,
telefoonnummer	CHAR(10)	constraint D_TELNR					not null,
e-mailadres		VARCHAR(50)	constraint D_EMAIL						,
geboortedatum		DATE		constraint D_GEBDAT					not null,
inschrijfdatum		DATE		constraint D_INSCHDAT default 	‘curdate()’	not null,
uitschrijfdatum		DATE		constraint D_UITSDAT						,
reden uitschrijving	CHAR(1)	constraint D_REDEN						,
eerste oproepweek	NUMBER									,
tweede oproepweek	NUMBER									,
bloedgroep+resusfactorCHAR(3)	constraint D_BLOED						,
huisartscode		CHAR(5)	constraint D_ARTS					not null,
vroegste oproepdatum	DATE		constraint D_VROEGOPR				not null,
);



create table Bloeddonatie
(
zaknummer		NUMBER	constraint D_ZAKNR					primary key,
donornummer		NUMBER	constraint D_DONORNR				not null,
datum bloeddonatie	DATE		constraint D_DATDONAT				not null,
keuringsdatum		DATE		constraint D_KEURDAT						,
keuringsresultaat	BOOLEAN									,
afgiftedatum		DATE		constraint D_AFGIFTEDAT					,
vernietigingsdatum	DATE		constraint D_VERNIETDAT					,
);

create table Huisarts
(
code			CHAR(5)	constraint D_CODE					primary key,
naam huisarts		VARCHAR(30)	constraint D_ARTSNAAM				not null,
adres huisarts		VARCHAR(40)	constraint D_ADRESARTS				not null,
postcode huisarts	CHAR(6)	constraint D_PCARTS					not null,
woonplaats huisarts	VARCHAR(30)	constraint D_WPARTS					not null,
);
 
Ziet er op zich al heel aardig uit. Maar ik heb het idee dat de constraints die je aanlegt niet gaan werken. De primary keys zijn goed, maar de foreign keys wijzen naar niets. Maar het kan er ook aan liggen dat ik gewend ben Oracle SQL of TSQL te schrijven. Daar moet je dat iig aangeven.

En zoals Epic al zegt ligt het er in veel gevallen maar net aan welke database je gebruikt. Bij oracle is het bijv. sysdate() ipv curdate() en bij MS (TSQL) is het getdate().


Grtz,
 
beheer25 zei:
Ziet er op zich al heel aardig uit. Maar ik heb het idee dat de constraints die je aanlegt niet gaan werken. De primary keys zijn goed, maar de foreign keys wijzen naar niets. Maar het kan er ook aan liggen dat ik gewend ben Oracle SQL of TSQL te schrijven. Daar moet je dat iig aangeven.

En zoals Epic al zegt ligt het er in veel gevallen maar net aan welke database je gebruikt. Bij oracle is het bijv. sysdate() ipv curdate() en bij MS (TSQL) is het getdate().


Grtz,
Het boek dat ik er bij heb is van Oracle SQL maar daarin staat niets over wat jij zegt... Kun je dat even uitleggen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan