Suche Datenbanksystem
-
Lese mir gerade paar nette SQL-Tuts durch. Die erklären da zwar, welche Bedeutung die einzelnen Befehle haben und wie man eine Tabelle erstellt aber WO gebe ich das ganze ein?
Wenn man z.B. per CREATE_TABLE seine erste Tabelle erstellen will?!
-
Ich denke sqlite ist die beste Wahl, speziell für kleine Programme, wo nicht mit großen Datenmengen gerechnet werden muss.
Falls es größer wird, kann ein besseres DB-System nicht schaden - was nicht heißt, dass da ein Server laufen muss!
Schau mal nach "MySQL embedded" und "virtuoso". Sind beides Open-Source-Systeme, die ohne einem laufenden Server auskommen.
-
Wenn du nur ein paar Daten speichern möchtest, schau dir mal boost serialization an.
-
l'abra d'or schrieb:
Ich denke sqlite ist die beste Wahl, speziell für kleine Programme, wo nicht mit großen Datenmengen gerechnet werden muss.
Falls es größer wird, kann ein besseres DB-System nicht schaden - was nicht heißt, dass da ein Server laufen muss!
Schau mal nach "MySQL embedded" und "virtuoso". Sind beides Open-Source-Systeme, die ohne einem laufenden Server auskommen.Danke. Hat mir aber noch nciht meine Frage beantwortet, wo ich genau die Datenbank erstelle, also wo ich die Befehle eingebe. Braucht man dafür nen sql editor oder was?
-
klaudiiii schrieb:
WO gebe ich das ganze ein?
Wenn man z.B. per CREATE_TABLE seine erste Tabelle erstellen will?!
In der Funktion (->API für C/C++, bindings für python oder was auch), mit der du auf die DB zugreifst?
Wenn du nur testen willst, gibt es meistens auch eine Console. Da kannst du dich mit nem MySQL-Server verbinden oder eine sqlite-Datei öffnen.Ein schneller Google-Fund (gibt deutlich mehr unter "sqlite tutorial"):
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html
-
Also erstmal unabhängig von mein Vorhaben, möchte ich erstmal ne kleine (serverless) SQL Datenbank mit einer Tabelle erstellen.
Bin mit den Befehlen ein wenig vertraut und weiß halt nur nicht, wo ich die Eingeben soll:
Tabelle Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
-
sicher gibts irgendwie 1000 Editoren aber es muss doch auch ne Möglichkeit geben ohne Schnick schnack ne normale Datanbankdatei zu erstellen
-
l'abra d'or schrieb:
Ein schneller Google-Fund (gibt deutlich mehr unter "sqlite tutorial"):
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.htmlZitat daraus:
Getting Started
Common CommandsTo create a database file, run the command "sqlite3", followed by the database name. For example, to create the database "test.db", run the sqlite3 command as follows:
Was also willst du noch? Und nein, es gibt keine Möglichkeit eine "allgemeine" Datenbankdatei anzulegen. Das Dateiformat ist abhängig vom DB-System. Punkt.
Also mach deine ersten Erfahrungen mit SQLITE, ist das schnellste und einfachste, um mit SQL vertraut zu werden.
-
Ok dazu muss ich mir ja erstmal sqlite runterladen:
http://www.sqlite.org/download.htmlAber welches? Gibt da vieles. Was is das normale standard sqlite, welches ich runterladen muss.
-
Klaudiii schrieb:
Aber welches? Gibt da vieles. Was is das normale standard sqlite, welches ich runterladen muss.
Sag uns, auf welchem System du arbeitest. Wenn es ein Linux ist, hat deine Distribution wahrscheinlich eh schon passende Pakete parat. Wenn du unter Windows bist, installier einfach das erste gelistete Binary ("A command-line program for accessing and modifying SQLite databases.").
Wenn du das dann später einbinden willst, holst du dir eine der source-Pakete (steht doch groß daneben, für was es empfohlen ist) und kompilierst es in dein Programm ein.
-
Anscheinend bin ich irgendwie zu dumm dafür.
In PHP hau ich den SQL Code einfach in nem Query und zack wurde die Tabelle angelegt.
In C++ schaff ich es nicht.
-
Klaudiii schrieb:
Anscheinend bin ich irgendwie zu dumm dafür.
Eher zu hektisch...
In PHP hau ich den SQL Code einfach in nem Query und zack wurde die Tabelle angelegt.
In C++ schaff ich es nicht.
Hast du denn schon Erfahrung mit SQL? Das klang bisher nicht so...
Die sqlite.org-Seite hält alle Infos, die du brauchst.Und BITTE schreib in deinem nächsten Post konkret, was du versucht hast! Eine Diskussion ohne Fakten kostet nur unnötige Energie...
-
Ich möchte einfach nur ne SQL Datenbank mit paar Zeilen/Spalten erstellen ohne 10000 Tools/Clients/Sourcecode etc. runterzuladen. Dürfte doch nicht so schwer sein?
Mal ne andere Frage:
Wenn du nun eine SQL DB mit den Spalten "Vorname" + "Nachname" hast, wie stellst du das am schnellsten an?
-
Klaudiii schrieb:
Anscheinend bin ich irgendwie zu dumm dafür.
In PHP hau ich den SQL Code einfach in nem Query und zack wurde die Tabelle angelegt.
In C++ schaff ich es nicht.Schau Dir das Tutorial an: http://www.sqlite.org/quickstart.html
Und lies das: http://www.sqlite.org/cintro.html
-
Klaudiii schrieb:
Ich möchte einfach nur ne SQL Datenbank mit paar Zeilen/Spalten erstellen ohne 10000 Tools/Clients/Sourcecode etc. runterzuladen. Dürfte doch nicht so schwer sein?
Mal ne andere Frage:
Wenn du nun eine SQL DB mit den Spalten "Vorname" + "Nachname" hast, wie stellst du das am schnellsten an?Nein, ist es auch nicht. Wenn du nur halb soviel Zeit mit der SQLite Doku wie mit Fragenstellen verbringen würdest wärst du längst fertig.
-
DocShoe schrieb:
Wenn du nur halb soviel Zeit mit der SQLite Doku wie mit Fragenstellen verbringen würdest wärst du längst fertig.
-
Jaa ja jaa habt ja Recht.
Das Tut ist echt gut und auch wenns auf englisch ist, gut zu verstehen.Ps.
Hab übriegends ne .db hinbekommen War ja easy going^^Aber ich würde mich freuen, wenn mir jemand kurz auf Deutsch erklärt was es mit der "SQL Master Table" auf sich hat. Das habe ich nicht ganz verstanden:
Aside: Querying the SQLITE_MASTER table
The database schema in an SQLite database is stored in a special table named "sqlite_master". You can execute "SELECT" statements against the special sqlite_master table just like any other table in an SQLite database. For example:
$ sqlite3 ex1
SQLite vresion 3.6.11
Enter ".help" for instructions
sqlite> select * from sqlite_master;
type = table
name = tbl1
tbl_name = tbl1
rootpage = 3
sql = create table tbl1(one varchar(10), two smallint)
sqlite>But you cannot execute DROP TABLE, UPDATE, INSERT or DELETE against the sqlite_master table. The sqlite_master table is updated automatically as you create or drop tables and indices from the database. You can not make manual changes to the sqlite_master table.
The schema for TEMPORARY tables is not stored in the "sqlite_master" table since TEMPORARY tables are not visible to applications other than the application that created the table. The schema for TEMPORARY tables is stored in another special table named "sqlite_temp_master". The "sqlite_temp_master" table is temporary itself.
Danke
-
Hab grad keine SQLite Db zur Hand, aber die Master Tabelle enthält alle Tabellenschemata der Datenbank. Du kannst auf diese Tabelle nur lesend zugreifen.
Die Schemata von temporären Tabellen (Views) stehen NICHT in der Master Tabelle und stehen nur der Anwendung zur Verfügung, die sie erzeugt haben (meine Vermutung: liegen komplett im RAM und nicht in der .db Datei). Die Tabellenschemata der temporären Tabellen liegen in der Tabelle sqlite_temp_master.
-
Bist du sicher, dass du überhaupt ein richtiges Datenbanksystem benötigst?
Für mich klang es so als möchtest Du beim Beenden des Programms Daten in eine Datei schreiben und diese beim Start wieder in den Arbeistspeicher laden.Hast du dir mal das weiter vorne verlinkte boost serialization angesehen? Das ist ziemlich simpel. Etwa so
void save() { ofstream ofs(...); boost::archive::text_oarchive oa(ofs); oa << mein_daten_objekt; } void load() { ifstream ifs(...); boost::archive::text_iarchive ia(ifs); ia >> mein_daten_objekt; }
-
Naja wenn ich z.B. ein kleines Addressbuch schreibe ist so ein Tabellen-Datenbank System schon schöner. Benutze ich bei PHP-Scripten auch immer.
Ich gehe nun davon aus, dass es nicht so einfach ist, sein kleines c++ Programm einfach mal eben so mit einer .db zu verbinden und die auszulesen?
Hätte jetzt eigentlich gedacht ich binde einfach nur ne bestimmte .h ein, benutze eine Funktion(".../mydata.db") und kann die halt mit weiteren funktionen auswerten oder wie bei php direkt SQL Code durch Query oder so benutzen.
Aber anscheinend ist es bei c++ komplizierter. Hab nach paar Beispiele gegoogelt und da kommen immer seitenlange Quelltexte raus. Schade.
Bin ich auf den falschen Seiten gelandet oder ist es wirklich so?