Lite off-topic kanske, men jag kan garantera att du max behöver känna till en handfull fälttyper
typ
CHAR
VARCHAR
DATE
TEXT
INT
Dom klarar man sig rätt bra med
27 svar · 743 visningar · startad av Eclipse
Mina erfarenheter av andra databaser verkar det inte som jag har så mycket nytta av i MySQL.
Finns det någon webbplats som förklarar alla de 20(?) olika typer av "fälttyper" som man kan välja i MySQL? Jag tvivlar inte en sekund på att det står i dokumentationen... men den är ju som ett mindre uppslagsverk och verkligen HELTÄCKANDE med betoning på tung.
Lite off-topic kanske, men jag kan garantera att du max behöver känna till en handfull fälttyper
typ
CHAR
VARCHAR
DATE
TEXT
INT
Dom klarar man sig rätt bra med
Hela manualen finns här
http://www.mysql.com/doc/
Nej det är verkligen inte off-topic, det är precis det svar jag vill se! :-)
Kan du beskriva dom fem lite? Finns det ingen boolean? Vad är skillnaden på CHAR och VARCHAR?
När jag hackade C fick jag lära mig att en variabel av typen CHAR bara innehöll ett tecken...?
printf("Ålder. %s", $value[1]);
När man skriver så (typ) ska man inte skriva %i om fältet i databasen är av typ INT? Jag har för mig det var nåt liknande i C...?
Tack Vetgirig! :-)
Jag har precis avslutat denna php/mysql tutorial, http://hotwired.lycos.com/webmonkey/99/21/index2a.html och ska fortsätta att plöja dokumentationen för PHP.
Jag har försökt att plöja manualen för mysql också men den var ju så jävulskt omfattande...
Du glömde ENUM. Den kan du nog också behöva.
Om vi säger att du har en community där du vill hålla koll på vilka som är inloggade så kan du använda ett fält som heter t.ex. inloggad. Med hjälp av ENUM så kan värdet i inloggad bara anta något av de värden som du har förbestämt (t.ex. Y om personen är inloggad eller N om personen inte är inloggad)
T.ex. ENUM('Y','N')
I det här fallet så är värdet antingen Y eller N.
Kolla nannes script för hans community. Det finns nog under någon av sessions-trådarna.
CHAR
VARCHAR
Två datatyper för att lagra text med <256 tecken.
Använder man VARCHAR lagras längden på strängen i en byte, och sålunda tar ett varcharfält som kan lagra femtio tecken bara upp nio bytes om man har åtta tecken i det (åtta tecken + en byte för att lagra längden på strängen). CHAR lagrar alltid maxlängden för strängen (om ett femtioteckens CHAR-fält innehåller åtta tecken tar det lik förbannat upp femtio bytes).
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
Olika datatyper för att lagra långa texter.
TINYINT
SMALLINT
MEDIUMINT
INTEGER eller INT
BIGINT
Olika datatyper för att lagra heltal.
FLOAT
DOUBLE
Lagrar flyttal.
TIME
Lagrar ett klockslag.
DATE
Lagrar ett datum.
DATETIME
Lagrar klockslag och datum.
TIMESTAMP
En tidsstämpel (lagrar en tidpunkt i antal sekunder förflutna sen 00:00:00 1/1 1970).
Några av de viktigaste...
Wow, spango... Vilket inlägg! Nu vet jag var i manualen jag ska kolla och efter vad.
---
I ett annat inlägg sa jag att hakarna var skillnaden mellan korrekt och felaktig kod i PHP:
ASP -> SELECT * FROM [users] ...
PHP -> SELECT * FROM users ...
Jag avslutade med att "jag som trodde att hakarna var en del av SQL standarden!" vavid någon svarade att hakarna är en del av SQL...
Betyder detta att MySQL har gått ifrån en uppsatt standard? Det måste i så fall vara första gången i världshistorien som Microsoft för en gångs skull inte sjappar en (del av en) standard... ?? Eller??
Min fråga är egentligen, finns det fler hakar med MySQL?
Jag avslutade med att "jag som trodde att hakarna var en del av SQL standarden!" vavid någon svarade att hakarna är en del av SQL...
Hakarna ingår inte i SQL-standard, det är ett påhitt som finns i Sybase, SQL server och Access och kanske några till.
Det som finns i standarden är att man kan ange namn inom "" om man har namn som är reserverade ord eller innehåller udda tecken.
SQL server innehåller en hel del som inte är enligt standard, date och time t.ex.
OK, jag förstår. jag har inte så där jättemycket kunskaper om SQL Server. Jag har gått nån kurs, har en 3 månaders demo med "SQL Server 7.0 system Administration Kit" och den medföljande boken.
Jag har använt Access för webben men det programmet / databasen behövde man ju aldrig iktigt lära sig! Det fungerade ju i alla fall...
Men för att återgå till tråden, likheterna mellan MySQL och Access är inte direkt mäktigt många, om ens någon!
---
I mitt första projekt är det framförallt en nyhetsdel och en faq del som ska ligga i databasen. Det rör sig inte om speciellt många poster och jag tror inte att "en optimering av databasen" i praktiken gör någon större skillnad.
Kommer tid kommer råd.
På den här sidan så kan man jämföra olika databaser och se vilka funktioner dom stöder.
http://www.mysql.com/information/crash-me.php
Den kanske är lite orättvis då en del funktioner som finns i Access inte är med
Intressant läsnig och väldigt fullständig. Till och med jag fattade litegrann! :-)
Hakarna ingår inte i SQL-standard, det är ett påhitt som finns i Sybase, SQL server och Access och kanske några till.
Då är det alltså Sybase som är boven i detta fall för visst köpte Microsoft Sybase databasmotor och döpte den till SQL Server?
pepper: såvitt jag vet är var det till största delen sybase i sql server till och med version 6.5. 7 är alltså en microsoftprodukt, som har behållt hakarna.
Ytterligare en upptäckt i mappen MySQL:
Där finns tre filer för varje tabell. Jag testade att dubblicera kod och filer för tabellen "users" och det fungerade direkt!
Det betyder att jag kan utveckla hela systemet hos mig och sen även kopiera filerna i mappen "data" och ta med mig dom till kunden och då fungerar allt!?
En anna grej som jag funderat på är det där programmet WinMySQLadmin som man sköter hela databasen med. Jag har win 98, ska jag använda "mysqld" eller "mysqld-opt"? Den senare är markerad. Vad är skillnaden?
Det betyder att jag kan utveckla hela systemet hos mig och sen även kopiera filerna i mappen "data" och ta med mig dom till kunden och då fungerar allt!?
Det är enklare om du gör en mysqldump på hela databasen till en fil (mysqldump databasnamn > filnamn) och sedan kör in den i din kunds mysqlserver med kommandot mysql databasnamn < filnamn