Wie schnell Einstieg in Datenbanken finden?



  • Hi Leute,
    ich habe mich für eine Hiwi-Stelle in der Uni als C++-Programmierer bei einem Datenbankprojekt beworben und habe nun demnächst ein Gespräch mit dem Hauptprogrammierer und dem Leiter des Projekts. Wie ich aber auch in meiner Bewerbungs-Mail angegeben habe, ist mein Datenbankwissen mickrig.

    Wie kann ich mir in 2-3 Tagen ein maximales (d.h. maximal auf den knappen Zeitraum bezogen) Datenbank-Wissen aneignen?

    P.S. Ich habe noch keine Ahnung was für ein Datenbank-Typ oder wie auch immer das heißen mag verwendet werden soll, also sollte das was ich lerne möglichst Allgemeingültigkeit haben



  • hallo

    hattest du schon einen datenbankkurs in der uni?

    hmm wenn nicht...

    ich würde mehrgleisig fahren.

    einmal einen minimalüberblick über normalformen nehmen..
    http://www.e-technik.fh-kiel.de/~samberg/Datenbank_Internet/le-2.htm
    um mitreden zu können, also zumindest zu wissen, was die begriffe bedeuten

    sql lernen.
    ist nicht so viel... zumindest die grundbegriffe wie insert, select... update... und auch create database, etc müssen dir geläufig sein.
    zum beispiel hier
    http://www.little-idiot.de/mysql/
    findest du eine übersicht und gute erklärung.

    du solltest über die gängigen datenbanken bescheid wissen.
    mysql, access,(sql-server)
    was ist odbc...
    solche sachen ein wenig nachforschen.

    etwas über die unterschiedlichen apis wissen.
    mysql bietet eine c-api und für borland und studio eine c++ api zum andbinden an die datenbank. du kannst aber auch einen mysql-odbc treiber nutzen, den es auf www.mysql.com zum download gibt.
    access wird entweder über odbc treiber angesprochen (macht man gut und gerne in mfc, weil einfach zu handhaben), kann aber auch selber über programmierung genutzt werden.

    so, ich denke, der mensch will einfach über odbc eine db ansprechen... aber wenn nicht, hier noch zwei minimalstbeispiele.. eins für zum bleistift eine access db, eins für mysql mit c-api

    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <sql.h>
    #include <sqlext.h>
    
    #define ID_LEN 35
    
    void main(void)
    {
    
    	SQLHANDLE henv;
    	SQLHANDLE hdbc;
    	SQLHANDLE hstmt;
    	RETCODE rc;
    
        SQLCHAR   m_Id[ID_LEN]; 
        SQLCHAR   name[ID_LEN]; 
    	char Statement[50] = {"select * from adressen"};		
    	char dsn[10] = {"test"};
    	char user[5] = {""};
    	char pass[5] = {""};
    
    	long m_bytesRet = SQL_NTS;
    
    	rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    
    	rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, 
    			(SQLPOINTER) SQL_OV_ODBC3, SQL_IS_UINTEGER);
    
    	rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    
    	rc = SQLConnect(hdbc, (SQLCHAR *)dsn, SQL_NTS, (SQLCHAR *) user, SQL_NTS, 
    			(SQLCHAR *) pass, SQL_NTS);
    
    	rc = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
    
    	rc = SQLPrepare(hstmt, (SQLCHAR *)Statement, SQL_NTS);
    
    	rc = SQLExecute(hstmt);
    
    	rc = SQLFetch(hstmt);
    
    	if (rc == SQL_NO_DATA_FOUND)
    	{
    		printf("keine daten gefunden");
    		SQLFreeStmt(hstmt, SQL_DROP);
    		SQLDisconnect(hdbc);
    		SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    		SQLFreeHandle(SQL_HANDLE_ENV, henv);
    		exit(0);
    	}
    	else
    	{
            printf ("daten gefunden");
    	    SQLGetData(hstmt, 1, SQL_C_CHAR, m_Id, 10, &m_bytesRet);
            printf ("%s", m_Id);
            SQLGetData(hstmt, 1, SQL_C_CHAR, name,10, &m_bytesRet);
            printf ("%s", name);
    
        }
    	rc = SQLFreeStmt(hstmt, SQL_CLOSE);
    	rc = SQLDisconnect(hdbc);
    	SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    	SQLFreeHandle(SQL_HANDLE_ENV, henv);
    }
    
    #include <time.h>
    #include <stdio.h>
    #include <windows.h>
    #include "mysql.h"
    
    int main ()  {
        MYSQL_RES *mTabelle;
        MYSQL_ROW mRecord;
        MYSQL *mConnection, mDB;
        int mError;
        mysql_init(&mDB);
        mConnection =mysql_real_connect(&mDB,"localhost","root","","test",0,0,0);
        if (mConnection == NULL)  {
            printf("Es konnte keine Verbindung zur Datenbank hergestellt werden");
            return 1;
        } else {
     printf("Es wurde erfolgreich eine Verbindung hergestellt!");
        }
        mysql_close(mConnection);
        return 0;
    }
    

    ohne gewähr auf richigkeit, nur mal um die datentypen zu sehen, die api etc...
    mal nur zur ansicht

    auf www.mysql.com findest du übrigens ein gutest tutorial, solltest du die c-api nutzen wollen und mysql machen.

    so long erstmal



  • Herzlichen Dank Elise für diesen hilfreichen Beitrag.



  • Nach eigenen Erfahrungen und meinem recht mühsamen Einstieg in die Thematik würde ich sagen, das sich dieser Beitrag durchaus für die FAQ qualifiziert hat, oder?


Anmelden zum Antworten