dodanie kolumny za pomocą Alter z wartościami ?

dodanie kolumny za pomocą Alter z wartościami ?
PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

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

Vardamir
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

A co już zrobiłeś? Z czym jest problem? Jeśli nie wiesz jak użyć składni ALTER to trzeba przeczytać dokumentację.

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Nie za bardzo rozumiem to polecenie ---Ma on przyjmować wartości C2: 06, E1: 01 itd .-----

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

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

LD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 115
0

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ć.

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
1

dla 1 przykładu użyj funkcji:
regexp_replace
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm

Kopiuj
select  
     REGEXP_REPLACE('12345678901234567890', '(\d{5})(\d{5})(\d{5})(\d{5})', '\1-\2-\3-\4') 
from dual;

dla 2 przykładu:

Kopiuj
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

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Kasia Kasia mam jedno pytanie bo komenda ma stworzyc kolumne przez Alter. Czy możesz mi pomóc jak to przerobić

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Ja używam navicat for mysql czy możesz powiedzieć mi jak ma wyglądać ten kod bo trochę jesyem już załamany.

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
1

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 :

Kopiuj
create table RowA (
      rowaa char(5)   );

następnie ograniczenie:

Kopiuj
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 :

Kopiuj
 insert into RowA VALUES  ('c2:05');

komunikat :
1 rows inserted.

dodajemy :

Kopiuj
 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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.