Skapa en tabell i mysql-databasen. Skapa en ny MySQL-databas

Lektionen kommer att täcka ett exempel på att skapa en mySQL-databas och dess tabeller på en lokal maskin; DENWER installation

Denwer-paketet kan hittas och laddas ner från den officiella webbplatsen.

För att arbeta med mySql-databaser finns det ett populärt verktyg med ett bekvämt webbgränssnitt - phpMyAdmin.

När du har installerat Denwer-paketet, följ dessa steg för att starta verktyget phpMyAdmin:

  • Starta genväg till Denwer
  • i webbläsarens adressfält: http://localhost/tools/phpmyadmin/
  • * vid ändring av porten som används, för att undvika konflikter vid installation av denwer, kan verktygsadressen vara annorlunda, till exempel:
    http://localhost:8080/tools/phpmyadmin

    Skapa en mySQL-databas lokalt (institute)

    Låt oss skapa en databas med namnet institution:

    Skapa tabeller i phpMyAdmin

    Nu i den färdiga databasen kan du skapa tabeller med fält:

    Datatyper i mySQL

    Datatyper för MySQL kan delas in i tre kategorier: numeriska data, datum- och tidsdata och strängdata.
    Tabellfält kan alltså ha följande datatyper:

    Data typ Användande Avstånd
    TINYINT Mycket litet heltal Intervallet för ett tecken med tecken är från –128 till 127. Intervallet för ett tal utan tecken är från 0 till 255.
    SMALLINT Litet heltal Intervallet för ett tal med tecken är från –32768 till 32767. Intervallet för ett tal utan tecken är från 0 till 65535.
    MEDIUMINT Genomsnittligt heltal Intervallet för ett signerat nummer är från –8388608 till 8388607. Intervallet för ett osignerat nummer är från 0 till 16777215.
    INT eller INTEGER Heltal Intervallet för ett signerat nummer är från –2147483648 till 2147483647. Intervallet för ett osignerat nummer är från 0 till 4294967295.
    STORT Stort heltal Intervallet för ett signerat nummer är från –9223372036854775808 till 9223372036854775807. Intervallet för ett osignerat nummer är från 0 till 18446744073709551615.
    FLYTA Ett litet flyttal (enkel precision). Kan inte vara ett osignerat nummer Spänner från –3,402823466E+38 till –1,175494351E-38, 0 och 1,175494351E-38 till 3,402823466E+38. Om antalet decimaler inte är inställt eller<= 24 это число с плавающей запятой одинарной точности.
    DUBBEL
    DUBBEL PRECISION
    VERKLIG
    Ett normalt flyttal (dubbel precision). Kan inte vara ett osignerat nummer Spänner från -1,7976931348623157E+308 till -2,2250738585072014E-308, 0 och 2,2250738585072014E-308 till 1,797693135487+3014E-308. Om antalet decimaler inte anges eller 25<= количество знаков <= 53 означает числоа с плавающей запятой двойной точности.
    DECIMAL
    NUMERISK
    Uppackat flyttalnummer Fungerar liknande CHAR-datatypen: "uppackad" betyder att numret lagras som en sträng, med ett tecken för varje siffervärde. Decimaltecknet och det negativa talet "-" räknas inte med i längden. Om decimalvärdet är 0, kommer värdet inte att ha någon decimalpunkt eller bråkdel. Den maximala storleken för DECIMAL är densamma som för DUBBEL, men det faktiska intervallet för en viss DECIMAL-kolumn kan vara begränsat i valet av längd och decimaler.
    DATUM datum Datumet sträcker sig från "1000-01-01" till "9999-12-31". MySQL lagrar ett DATUM-fält som "ÅÅÅÅ-MM-DD" (ÅÅÅÅ-MM-DD).
    DATUM TID datum och tid Giltiga intervall är från "1000-01-01 00:00:00" till "9999-12-31 23:59:59". MySQL lagrar ett DATETIME-fält som "ÅÅÅÅ-MM-DD TT:MM:SS" (ÅÅÅÅ-MM-DD HH-MM-SS).
    TIDSSTÄMPEL datum och tid Spänner från "1970-01-01 00:00:00" till ungefär 2037. MySQL kan lagra ett fält av typen TIMESTAMP i formerna "ÅÅÅÅMMDDHHMMSS" (TIMESTAMP(14)), "YYMMDDHHMMSS" (TIMESTAMP(12)), "ÅÅÅÅMMDD" (TIMESTAMP(8)), etc.
    TID Tid Spänner från "-838:59:59" till "838:59:59". MySQL lagrar TIME-fältet som "HH:MM:SS", men tillåter värden att tilldelas till TIME-kolumner med antingen en sträng eller ett nummer.
    ÅR År med 2 eller 4 siffror (4 siffror som standard) Om du använder 4 siffror är giltiga värden 1901-2155 och 0000. Om 2 siffror, då 1970-2069 (70-69). MySQL lagrar YEAR-fältvärden i "ÅÅÅÅ"-format.
    RÖDING En fast längd sträng som är vadderad till höger med mellanslag till angiven längd när den lagras Längden sträcker sig från 1 till 255 tecken. Efterföljande mellanslag tas bort när värdet hämtas. CHAR-värden sorteras och jämförs skiftlägesokänsligt baserat på standardkodningen om inte BINÄR-flaggan är inställd.
    VARCHAR Snöre med variabel längd. Obs: efterföljande mellanslag tas bort vid spara (till skillnad från ANSI SQL-specifikationen). Längden sträcker sig från 1 till 255 tecken. VARCHAR-värden sorteras och jämförs på ett skiftlägesokänsligt sätt om inte BINÄR-flaggan är inställd.
    LITENKLAPP
    TINYTEXT
    BLOB eller TEXT med en maximal längd på 255 (2^8 - 1) tecken.
    KLICK
    TEXT
    BLOB eller TEXT med en maximal längd på 65535 (2^16 - 1) tecken.
    MEDELBLÅTT
    MEDELTEXT
    BLOB eller TEXT med en maximal längd på 16777215 (2^24 - 1) tecken.
    LÅNGBLOB
    LÅNGTEXT
    BLOB eller TEXT med en maximal längd på 4294967295 (2^32 - 1) tecken.
    ENUM Överföra Ett strängobjekt som bara kan ta ett värde väljs från värdelistan "värde 1", "värde 2" eller NULL. ENUM kan ha maximalt 65535 olika värden.
    UPPSÄTTNING Utrustning Ett strängobjekt som kan ta noll eller fler värden, som vart och ett måste väljas från värdelistan "värde 1", "värde 2", ... SET-fältet kan ha maximalt 64 möjliga värden.

    mysql uppgift 1. På din dator skapar du en databas med namnet Institute and tables:
    — lektioner med fält:

    • tid – för kommunikation med lärare (int)
    • kurs - varchar
    • datum - datumtyp

    — kurser med fält:

    • id – unikt fält, nyckel (A_I – räknare)
    • tid – för kommunikation med lärare
    • titel - varchar
    • längd (längd i timmar)

    — lärare med fält:



    Viktig:
    * AUTO_INCREMENT-attribut används för att generera en unik identifierare för nya rader

    * Primärnyckel används för att unikt identifiera tabellposter (fält). Inga två tabellposter kan ha samma primärnyckelvärden. I relationella (tabellformiga) databaser är olika tabeller nästan alltid logiskt relaterade till varandra. Primära nycklar används för att unikt organisera en given relation.

    mysql jobb 2. Fyll tabellerna med data som visas i bilderna nedan för lärartabellen. Fyll på samma sätt i posterna i kurs- och lektionstabellerna

    Anteckningen: Den adaptiva versionen av webbplatsen aktiveras, som automatiskt anpassar sig till din webbläsares ringa storlek och döljer vissa detaljer om webbplatsen för att underlätta läsningen. Njut av att titta!

    Hej kära bloggläsare Webbplats på!

    I den förra artikeln tittade vi på allt om PHP, men för att konsolidera det teoretiska materialet som mottagits, föreslår jag att utföra en praktisk uppgift, vilket är ganska vanligt i det dagliga livet för en webbplatsutvecklare.

    I vårt favorit-CMS används loopar för att rendera vilken HTML-tabell som helst, det finns inget annat sätt. Till exempel har en produkt (smarttelefon) egenskaper: bredd, höjd, djup, färg, displaystorlek, minneskapacitet, etc. Alla dessa egenskaper renderas vanligtvis i form av en HTML-tabell, det är väldigt bekvämt och bra, det ser smidigt ut.

    För att förstå hur detta görs kommer vi idag att lösa ett så enkelt problem som att skapa en multiplikationstabell:

    Låt oss börja

    Som vi kan se av figuren förekommer tabelltaggen endast 1 gång, så den måste tydligt ligga utanför slingan. Vi upprepar bara raden (tr) och cellerna inuti den, även känd som kolumner (td). Det är det, ingenting händer igen med oss.

    Nu måste du bestämma vilken slinga som är bäst att använda för denna uppgift. Detta är ett klassiskt alternativ och den bästa lösningen är en for loop, även om du kan använda ett tag om du är mer van vid det. Men vi behöver inte en slinga, utan två: den första kommer att rita och räkna rader (tr), och den andra kolumnen (td).

    // antal rader, tr$cols = 20; // antal kolumner, td eka"

    "; för ($tr=1; $tr<=$rows; $tr++){ // i denna slinga håller räknaren $tr // reda på antalet rader och är alltid lika med det aktuella radnumret. // Det vill säga i början $tr=1, eftersom vi i början har 1 rad, sedan // lägger vi till en varje gång tills vi når det angivna antalet // $rader. eka" "; för ($td=1; $td<=$cols; $td++){ // i denna loop liknar räknaren $td // räknaren $tr. eka" "; ) echo ""; ) echo "
    ". $tr*$td ."
    "; ?>

    Redo! Resultat:

    I den första slingan ritar vi st, med td inuti den. Den här koden kan kallas den idealiska mallen för att rendera vilken tabell som helst, men jag vet hur man gör det ännu bättre. Det finns ingen anledning att anstränga PHP varje gång och skriva ut till skärmen (eko) efter varje iteration, det är mycket bättre att lägga allt på ett ställe (variabelt) och eka i slutet, en enda gång:

    // antal rader, tr$cols = 20; // antal kolumner, td$tabell = "

    "; för ($tr=1; $tr<=$rows; $tr++){ $table .= ""; för ($td=1; $td<=$cols; $td++){ $table .= ""; ) $tabell .= ""; ) $tabell .= "
    ". $tr*$td ."
    "; echo $tabell; // ekade bara 1 gång ?>

    För detta använde vi operatören .= uppdrag via . Resultatet blir exakt detsamma. Men det är inte allt. Vi måste få vårt bord att se ut som den allra första bilden i den här artikeln. Det vill säga, gör den första raden och kolumnen fetstil och lägg en grön bakgrund. Detta resultat kan uppnås på två sätt:

    • Använda CSS3 (på rätt sätt);
    • Använder PHP (fel metod, men vi kommer att använda den eftersom vi lär oss PHP i det här avsnittet);

    Så låt oss göra det med PHP:

    // antal rader, tr$cols = 20; // antal kolumner, td$tabell = "

    "; för ($tr=1; $tr<=$rows; $tr++){ $table .= ""; för ($td=1; $td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= ""; // beräknade den första raden eller kolumnen)else( $table .= " "; // alla celler utom celler från den första kolumnen och första raden) ) $tabell .= ""; ) $tabell .= "
    ". $tr*$td ."". $tr*$td ."
    "; echo $tabell; // ekade bara 1 gång ?>

    Skönhet:) Du kan visa ett bord på minst 100 gånger 100. Spela som du vill, det är användbart för upplevelsen. Tack för din uppmärksamhet och ha en trevlig helg!

    I form av ett bord. Till exempel alla varor i din prislista i butiken, priser, produktnamn och så vidare. Ja, och en massa saker. För detta behövs nästan varje dag. Nu kommer vi inte att prata om det faktum att för proffs är detta redan ett gammalt hacket ämne. Den här artikeln är endast för nybörjare webbprogrammerare.

    Så hur? göra ett bord webbplatssida använder php?

    Tabellen visas vanligtvis med den välkända while eller för funktion. Proffs använder färdiga skript eller funktioner där de helt enkelt ändrar flera variabler och filer som ansvarar för designen. För nybörjare kommer jag att säga att för att förstå hur allt fungerar ska vi titta på ett litet manus precis nedan. Och nu en liten teori om hur allt fungerar.

    ORDER by `id` DESC-attributet betyder att vi sorterar alla användare i fallande ordning efter användar-id. Det vill säga det maximala id-värdet kommer att vara överst. Och om du i slutet anger asc istället för desc-attributet. Då blir sortering efter id i motsatt riktning, det vill säga i stigande ordning och överst kommer det att finnas det minsta värdet efter id.

    Den mottagna begäran behandlas av funktionen mysql_fetch_array. Det är ganska universellt eftersom det returnerar en associativ array med två index med numeriska index och index efter tabellvärden.
    Istället för den här funktionen använder många människor mysql_fetch_assoc-frågan, som returnerar en array med endast index på värdet på tabellerna i databasen.

    Därefter lägger vi allt i en array $mass och visar tabellvärdena i en stund loop för index. Och eftersom vi matar ut alla värden i form av en tabell, skriver vi en funktion för att mata ut värden eko '(radens början)(cell, kvadrat)$mass['id'](variabel med index för tabellvärde-id)(stängande celltagg)(nästa cell, kvadrat) $mass['mail'](cellstängningstagg)... (radstängande tagg).

    Efter det avslutande lockiga stag, som indikerar stängningen av while-slingan, trycker vi bordets stängningstagg.

    Och här är exemplet på själva manuset

    Exempel på auktoriseringsskript

    `; eko ` `; } ?>
    IDLOGGA IN POSTRegistrerings datum
    `.$id.``.$logga in.``.$mail.``.$reg_time.`

    Och här kan du ladda ner och se tydligt hur allt fungerar på sidan. Du bör komma ihåg att sökvägen till konfigurationsfilen i din version kan vara annorlunda. Detta beror direkt på var du placerar konfigurationsfilen för hela webbplatsen. För tydlighetens skull hittar du konfigurationsfilen i zip-arkivet.

    Idag har vi tittat på hur ett skript för att visa en tabell i PHP fungerar. Jag kommer genast att säga att detta bara är ett exempel för att få en uppfattning om hur allt fungerar. Vi övervägde inte hur vi skulle designa tabellen, skriva ner den eller ändra tabelltiteln. Jag tror att om du har studerat eller ska studera CSS i framtiden kommer det inte att vara svårt för dig att göra det själv.

    Här är den allmänna SQL-syntaxen för att skapa MySQL-tabeller:

    CREATE TABLE tabellnamn(kolumnnamn kolumntyp);

    Nu kommer vi att skapa följande tabell i databasens handledningar.

    Tutorials_tbl(tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY (tutorial_id));

    Här är några punkter som behöver förtydligas:

    • Attributfältet är inte NULL, används eftersom vi inte vill att det ska vara null. Därför, om användaren försöker skapa en post med ett NULL-värde, kommer ett fel att kastas av MySQL.
    • Attributfältet auto_increment i MySQL säger inte att man ska gå vidare och lägga till nästa tillgängliga nummer i ID-fältet.
    • Nyckelordet för primärnyckel används för att ange en kolumn som primärnyckel. Du kan använda flera kolumner separerade med kommatecken för att definiera en primärnyckel.

    Skapa tabeller från kommandoraden:

    Det är enkelt att skapa en MySQL-tabell från MySQL>prompt. Du kommer att använda SQL skapa tabellkommandon för att skapa tabellen.

    Exempel:

    Här är ett exempel som tutorials_tbl skapar:

    Root@host# mysql -u root -p Ange lösenord:******* mysql> använd TUTORIALS; Databas ändrad mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE_)KEY -> PRIMARY ); Fråga OK, 0 rader påverkade (0,16 sek) mysql>

    Skapa tabeller med ett PHP-skript:

    För att skapa en ny tabell i en befintlig databas måste du använda PHP-funktionerna mysql_query(). Du skickar ditt andra argument till rätt SQL-kommando för att skapa tabellen.

    Exempel:

    Här är ett exempel på hur du skapar en tabell med ett PHP-skript:

    Skapa MySQL-tabeller "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, "." "tutorial_title VARCHAR(100) NOT NULL, "." "tutorial_author VARCHAR(40) NOT NULL, "." submission_date DATE, ". "PRIMÄRNYCKEL (tutorial_id)); "; mysql_select_db("TUTORIALS"); $retval = mysql_query($sql, $conn); if(! $retval) (die("Kunde inte skapa tabell: ". mysql_error()); ) echo "Tabell skapad framgångsriktlyn" ; mysql_close($conn);

    Fler exempel:

    SKAPA TABELL OM INTE FINNS `users` (`id` int(11) NOT NULL auto_increment, `rolle_id` int(11) NOT NULL standard "1", `username` varchar(25) collate utf8_bin NOT NULL, `password` varchar (34) sortera utf8_bin NOT NULL, `email` varchar(100) sortera utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL standard "0", `ban_reason` varchar(255) collate utf8_bin default NULL, `newpass` varchar (34) sortera utf8_bin default NULL, `newpass_key` varchar(32) collate utf8_bin default NULL, `newpass_time` datetime default NULL, `last_ip` varchar(40) collate utf8_bin NOT NULL, `last_login` datetime NOT NULL default "0000-000" -00 00:00:00", "skapad" datumtid NOT NULL standard "0000-00-00 00:00:00", "modifierad" tidsstämpel NOT NULL standard CURRENT_TIMESTAMP på uppdatering CURRENT_TIMESTAMP, PRIMÄRNYCKEL (`id`)) MOTOR =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //Med två nycklar: CREATE TABLE IF NOT EXISTS `ci_sessions` (session_id varchar(40) DEFAULT "0" NOT NULL, ip_address varchar(16) DEFAULT "0" NOT NULL, user_agent varchar(120) NOT NULL, last_activity int( 10) osignerad DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id), KEY `last_activity_idx` (`last_activity`));