Pomoc z tworzeniem pierwszej bazy danych |
Pomoc z tworzeniem pierwszej bazy danych |
12.01.2012, 00:15:10
Post
#1
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 10.11.2010 Skąd: Warszawa Ostrzeżenie: (10%) |
Witam serdecznie,
jestem studentem informatyki i jako temat zaliczenia (dopuszczenie do egzaminów) muszę wykonać bazę danych. Zadanie jakie muszę wykonać to: muszę napisać program do obsługi danych magazynowych. Baza danych musi składać się z trzech tabel: tab1, tab2, tab3. Pola formularza nazwa i jednostka mają być polami wyboru typu select. Program powinien posiadać menu oraz uniwersalny formularz. Muszę sprawdzać poprawność wprowadzanych i edytowanych danych. Nie chcę aby ktoś napisał mi gotowca (chociaż to nie jest zły pomysł ), ale chciałbym aby ktoś pomógłby mi załapać o co w tym chodzi i wspólnymi siłami coś napisać... Czy znajdą się tutaj osoby, które pomogą w rozwiązaniu problemu? Ja na samym początku wyskrobałem coś takiego:
Po wysłaniu zapytania mam: BŁĄD: tabela "stany_mag" nie istnieje ********** Błąd ********** BŁĄD: tabela "stany_mag" nie istnieje Stan SQL: 42P01 Proszę o pomoc jeżeli to możliwe... proszę pamiętać, że dla niektóry to co jest banalnie proste dla innych całkowicie zielone... |
|
|
12.01.2012, 01:10:18
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) |
W postreSql nie robiłem,nie wiem czy trzeba określac silnik przy tworzeniu tabel czy jakieś collation, ale polecenie insert chyba nie odbiega tak znaczącą od innych baz.
Jedna kolumna "jednostka" do której jednocześnie chcesz wrzucić cztery wartości.Może baza ma sobie wybrać którąś z nich? Spójrz jak to poprawnie powinno wyglądać: http://www.w3schools.com/sql/sql_insert.asp stany_mag tworzysz kolumnę: Cytat nr serial NOT NULL, i zostawiasz ją sobie na pastwę losu ,a przecież NOT NULL ,mówi Ci ,że nie może być pusta. Nazwy tabel,kolumn nie powinny być dwuczłonowe:rób nr_serial. I to by było na tyle,może ktoś jeszcze inny coś zauważy.Na razie to miernie wygląda u Ciebie. Ten post edytował Niktoś 12.01.2012, 01:14:56 |
|
|
12.01.2012, 07:52:38
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
DROP TABLE stany_mag;
DROP TABLE nazwy_towarow; DROP TABLE jednostki; Kasujesz tabele, które dopiero później zamierzasz utworzyć - czyli kasujesz coś, co jeszcze nie istnieje. To dostajesz jak wół komunikat: "Tabela xyz nie istnieje" logiczne.
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.01.2012, 08:53:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Użyj:
Nie wiem jak na postgree ale na MySQL działa. -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
12.01.2012, 12:44:50
Post
#5
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 10.11.2010 Skąd: Warszawa Ostrzeżenie: (10%) |
@Niktoś
Czyli jak mogę to rozwiązać? Nie zabardzo wiem jak to rozwiązać, aby było dobrze... Czytałem to co podałeś, ale nic z tego mi nie przychodzi do rozumu... Nawiązując do treści zadania jakie mam wykonać, to z tej tabeli chcę, aby rekord był wybierany z listy w formularzu, który zrobię za jakichś czas (jak zrobię bazę) @Sephirus Chyba działa... Jak połączyłem nr serial tym znakiem _ to wywala mi komunikat: BŁĄD: błąd składni w lub blisko "nr_serial" LINE 1: nr_serial NOT NULL, Ogólnie mam pytanie, czy w dobrym kierunku myślę, aby baza spełaniała wymagania zadania? |
|
|
12.01.2012, 12:50:14
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Nie słuchaj się niktosia, bo on nie wie że "serial" to taki typ pola który jest autoincrementowany.
wiec nr_serial jest źle a: nr serial jest dobrze Swoją drogą ty jako student informatyki powininieneś takie rzeczy wiedziec, wiedziec co piszesz i czemu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.01.2012, 13:09:34
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) |
Cytat Nie słuchaj się niktosia, bo on nie wie że "serial" to taki typ pola który jest autoincrementowany. wiec nr_serial jest źle a: nr serial jest dobrze Faktycznie serial jest typem,właśnie doczytałem -powiem ,że pierwszy raz spotkałem się z tym typem-myślałem ,że to nazwa kolumny.Nie używam postreSQl,jednak uważam ,że inserty i selecty- są żle zbudowane,ale niech doradzają mądrzejsi. Ten post edytował Niktoś 12.01.2012, 13:13:06 |
|
|
12.01.2012, 13:23:36
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
A co ci się nie podoba w insertach i w których?
Bo już ustaliliśmy, że nr nie musi podawać bo to autoincrement. Jeszcze coś? Cytat Jedna kolumna "jednostka" do której jednocześnie chcesz wrzucić cztery wartości.Może baza ma sobie wybrać którąś z nich? rety.... w insert można na raz wkłądać wiecej niż jeden rekord...Błąd jaki się rzuca w oczy to ostatni insert z selectami. W selectach zawsze pobierasz nr, a przecież tam wkładasz to jako nazwa i jednostka edit: a nie, tam to jest niby jako klucz obcy.... no to nie varchar a int, bo przecież nr to int cena zresztą to też nie varchar a liczba... czego teraz na tych studiach uczą :/
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.01.2012, 13:40:15
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) |
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( value [, ...] ) | query } One can insert a single row specified by value expressions, or several rows as a result of a query. Może ja źle rozumie manuale, podam przykłądy: Insert pojedynczego wiersza:
Insert wielu wierszy jednocześnie:
SELECT * FROM persons=query Ten post edytował Niktoś 12.01.2012, 13:42:17 |
|
|
12.01.2012, 13:43:34
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Chyba wyciąłeś coś z tego cytatu. Ja znalazłem taką wersję
" One can insert one or more rows specified by value expressions, or zero or more rows resulting from a query." -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.01.2012, 13:45:05
Post
#11
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 10.11.2010 Skąd: Warszawa Ostrzeżenie: (10%) |
Mało uczęszczałem na wykłady i z tego powodu mogę mieć braki... Puki co mam takie coś:
Jak wchodzę na local i wykonuje zapytanie do bazy to tworzą się tabele i wypełnionymi krotkami... Czy coś jeszcze brakuje mi w tej bazie, aby przejść do pisania uniwersalnego formularza z poziomu którego będę mógł wykorzystać te funckje?
|
|
|
12.01.2012, 13:48:31
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) |
Nie ,patrz-przecież nie robiłbym tak perfidnych manipulacji:
http://www.postgresql.org/docs/8.1/static/sql-insert.html Patrz pierwsza linijka po Description. Chyba jakieś inne manuale czytamy Zresztą, jak Mu pójdzie tzn ,że masz racje-Jesteś bardziej doświadczony niż ja. Mam nadzieje ,że autor da odpowiedź -to się czegoś też nauczę. Ten post edytował Niktoś 12.01.2012, 13:51:04 |
|
|
12.01.2012, 13:51:17
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
http://www.postgresql.org/docs/8.2/static/sql-insert.html
poza tym w mysql od lat tak można pisać, a mysql ponoć znasz.
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.01.2012, 13:55:08
Post
#14
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 10.11.2010 Skąd: Warszawa Ostrzeżenie: (10%) |
Nie ,patrz-przecież nie robiłbym tak perfidnych manipulacji: http://www.postgresql.org/docs/8.1/static/sql-insert.html Patrz pierwsza linijka po Description. Chyba jakieś inne manuale czytamy Zresztą, jak Mu pójdzie tzn ,że masz racje-Jesteś bardziej doświadczony niż ja. Mam nadzieje ,że autor da odpowiedź -to się czegoś też nauczę. Ciesze się, że pomagacie mi... ale jak ta odpowiedź miała mi w czymś pomóc, to na prawdę nie mam zielonego pojęcia o co chodzi w tej podpowiedzi... Nie wiem, po prostu nie mam pojęcia... |
|
|
12.01.2012, 13:59:09
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) |
Nie, piszę w MSSQL ,choć zapytania znacznie się nie różnią, te podstawowe przynajmniej.
Ja nie miałem okazji wpychać wiele wartości do jednej kolumny przy jednokrotnym zapytaniu. Kiedyś spróbuje -sam jestem ciekaw czy się uda. No faktycznie przeszkadzamy ar4 w zrozumieniu,zostawiam te poletko Tobie Nospor , bo się lepiej znasz na tej Bazie Danych. Tłumacz,już nie przeszkadzam. Ten post edytował Niktoś 12.01.2012, 13:56:10 |
|
|
12.01.2012, 23:28:37
Post
#16
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 10.11.2010 Skąd: Warszawa Ostrzeżenie: (10%) |
@Niktoś
myślę, że nie przeszkadzasz, tym bardziej jak nie mam odpowiedzi od nikogo, to w takim przypadku każda wypowiedź jest dobra... Ps. prosze o pomoc... |
|
|
14.01.2012, 11:26:16
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Co ja tu widzę bez sensu to że z tabeli nazwy_towarow wybierasz nazwa i wstawiasz to do stany_mag. Powiąż to kluczem po numerze bo inaczej nazwy_towarow nie ma racji bytu. To samo z jednostkami. Poczytaj też jakiś poradnik o kluczach obcych i normalizacji BD.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 19:37 |