Mam takie zadanie czy ktoś może mi pomóc bo trochę nie wiem jak do tego podejść :
"Dzięki zastosowaniu SQL ALTER, dodać nową kolumnę o nazwie Numer_pokoju do tabeli Komputery . Ma on przyjmować wartości C2: 06, E1: 01 itd . "
za pomoc serdeczne dzięki
dodanie kolumny za pomocą Alter z wartościami ?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 24
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
A co już zrobiłeś? Z czym jest problem? Jeśli nie wiesz jak użyć składni ALTER to trzeba przeczytać dokumentację.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 24
Nie za bardzo rozumiem to polecenie ---Ma on przyjmować wartości C2: 06, E1: 01 itd .-----
- Rejestracja: dni
- Ostatnio: dni
- Postów: 24
Teraz mam pytanie bo może chodzi o to , czy jest coś takiego w sql jak w Access kiedynaprzyklad wpisuje kod pocztowy to wpisuje ciag liczb a program sam rozdziela. Czy jest taka opcja zeby np wpisuje 12345678901234567890 a w kolumne dzieli na 12345-67890-12345-67890 czyli automatyczne uzupelnianie z podzialem .czyli wpiisze c206 a program podzieli na c2:06
- Rejestracja: dni
- Ostatnio: dni
- Postów: 115
Możesz to zawrzeć w procedurze która będzie odpowiedzialna za insertowanie danych z formularza do bazy albo napisać trigger. Możesz też po stronie aplikacji maske zawrzeć.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 259
dla 1 przykładu użyj funkcji:
regexp_replace
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm
select
REGEXP_REPLACE('12345678901234567890', '(\d{5})(\d{5})(\d{5})(\d{5})', '\1-\2-\3-\4')
from dual;
dla 2 przykładu:
SELECT
substr(nazwa_kol,1,2)||':'||substr(nazwa_kol,3,4) as nazwa_kol
FROM nazwa_tab;
To są przykłady na bazę Oracle , podaj nazwę bazy jaką używasz
- Rejestracja: dni
- Ostatnio: dni
- Postów: 24
Kasia Kasia mam jedno pytanie bo komenda ma stworzyc kolumne przez Alter. Czy możesz mi pomóc jak to przerobić
- Rejestracja: dni
- Ostatnio: dni
- Postów: 24
Ja używam navicat for mysql czy możesz powiedzieć mi jak ma wyglądać ten kod bo trochę jesyem już załamany.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 259
nie mam zainstalowanej bazy MySQL , mam Oracle . Z tego co pamietam , składnia powinna być taka sama.
na początku tworzymy tab dla przykładu :
create table RowA (
rowaa char(5) );
następnie ograniczenie:
ALTER TABLE RowA
ADD CONSTRAINT check_REGEXP_REPLACE
CHECK ( substr(rowaa,1,1) BETWEEN 'a' AND 'z'
AND substr(rowaa,3,1) = ':'
AND substr(rowaa,4,2) BETWEEN '0' AND '9'
)
dodajemy :
insert into RowA VALUES ('c2:05');
komunikat :
1 rows inserted.
dodajemy :
insert into RowA VALUES ('ABC12');
zwraca komunikat błędu:
Error starting at line 16 in command:
insert into RowA VALUES ('ABC12')
Error report:
SQL Error: ORA-02290: naruszono więzy CHECK (SYS.CHECK_REGEXP_REPLACE)
02290. 00000 - "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check
*Action: do not insert values that violate the constraint.
czyli nasze ograniczenie działa