Tag Archive for MySQL5

MySQL – Easy way to insert rows from one table into a secound

If you are one of the persons there can rip your hair of your head when customers asking you to adding a lot of rows from your MySQL table to another table based on certain requirements.

Then take this little tip possibly helping you to a fun business day

INSERT INTO
   table1 (field1,field2)
 
SELECT
   t2.field1, 
   t2.field2 
 
FROM 
   table2 t2;

I hope you enjoyed this little tip to make your workday more fun.

Basic MySQL connect i PHP5 – Video

PHP5 – Basic MySQL5 connect from Paris Nakita Kejser on Vimeo.

Learn howto connect to MySQL5 database, this its a basic tutorial for you if you will laern how to use define to username, password,hostname and databasename.

tanks for you visit.

Hent indhold ud mellem et tids intaval

Til tider er der at man har brug for at kunne hente nået data ud eks. fra et enkle døgn fra en bestemt dato, jeg har en remlig simple løsning til dette som jeg syndes jeg vil dele med jer der ude.

SELECT
    *

FROM
    table1 t1

WHERE
    t1.push_date >= '2009-07-09 00:00:00' AND
    t1.push_date <= '2009-07-09 23:59:59'

Jeg håber i kan bruge dette eks. til nået, og post gerne hvis i har andre måder man via SQL kan hente dette ud, dette er et eks. som jeg har testet i MySQL 5.1

Limit af en select

MySQL understøtter LIMIT inde i en SELECT, det  gør at du kan fortælle MySQL hvor meget der må kommer med ud af et row.

LIMIT kan inde holde 1 eller 2 værdier.

LIMIT row_count
LIMIT skip_count, row_count

Hver værdig skal være en int ( heltal ) og ikke en variable ( string ) værdi.

Når du indtastter et tal tager den row nummer 1 fra din table og retuerene så X antal rækker som du har bedt om

SELECT * FROM Country LIMIT 10;

Hvis du gerne vil have vil have fra nummer 20 og de nsæste 10 udtrukket vil det se sådan her ud.

SELECT * FROM Country LIMTI 20, 10;

Det er tit en fordel at benytte ORDRE BY funktionen til at udskefeisere dine udvalg nået mere så de også bliver mere presise.

SELECT * FROM Country ORDER BY Id DESC LIMIT 1;

Eks. Når der skal laves et søge felt med flere sider på kan og vil en SQL tit se ud i stil med denne

SELECT * FROM t ORDER BY Id DESC LIMTI 0, 20;
SELECT * FROM t ORDER BY Id DESC LIMTI 20, 20;
SELECT * FROM t ORDER BY Id DESC LIMTI 40, 20;
SELECT * FROM t ORDER BY Id DESC LIMTI 60, 20;
…..

Du skal huske selv om du bruger LIMIT og har 1.000.000 rækker i MySQL og vil have fat i de 10 sidste skal den løbe hele databasen igennem for at få de sidste 10, derfor er det en god ide at benytte WHERE statement for at reducere databasens udtræk.

Drop indexes

For at slette et index man har lavet i MySQL kan man benytte ALTER TABLE  eller DROP INDEX.

Ved at bruge ALTER TABLE skal der bruges DROP funktionen og det navn på det index der skal slettes, slette en PRIMARY KEY er meget simplet.

ALTER TABLE kontakt_personer DROP PRIMARY KEY;

for at droppe andre index må man spefikere det navn som skal slettes fra indexet, hvis du ikke kender navnet kan du bruge SHOW CREATE TABLE og får en liste over table struktueren og der ved finde alle de index du har til denne table.

Navnet på det valgte index kunne være NameIndex og for at slette dette index kan du udføre føglene.

ALTER TABLE kontakt_personer DROP INDEX NameIndex;

efter du har slettet dette index kan du oprette det igen ved at skrive

ALTER TABLE kontakt_personer ADD INDEX NameIndex( LastName , FirstName );

Når du slettere et index kan du ikke fortryde det så sikkere dig at du har taget en backup af din database inden du bevæger dig ud i at slette disse index.

Hvis du vælger at bruge DROP INDEX kan det gøres på denne måde

DROP INDEX NameIndex ON t;

For at slette en PRIMARY KEY skal du blot skrive

DROP INDEX PRIMARY KEY ON t;

Tilføj indexes til nuværdene table

MySQLHvis der skal tilføjes et index til en table kan du benytte ALTER TABLE eller CREATE INDEX af disse 2 satements er det ALTER TABLE der er mest flexible.For at tilføje et index til en table skal du skrive ADD foran dit statement, eks. hvis vi har en table der hedder kontakt_personer med følge felter.

CREATE TABLE kontakt_personer
(
Id INT NOT NULL,
LastName CHAR(30) NOT NULL,
FirstName CHAR(30) NOT NULL,
Email CHAR(200) NOT NULL
);

for at skabe en PRIMARY KEY på feltet Id og kombinere felterene LastName og FirstName som index skal jeg udføre følge statements. ALTER TABLE kontakt_personer ADD PRIMARY KEY (Id);
ALTER TABLE kontakt_personer ADD INDEX ( LastName , FirstName );

For et perfome MySQL bædre kan du kobinere disse 2 statement sådan du kun skal lave et kald til MySQL du kan se følge statements her.

ALTER TABLE kontakt_personer ADD PRIMARY KEY( Id ), AD INDEX ( LastName , FirstName );

Syntaxen for CRREATE INDEX er følgene hvor en statements oprettes enkle rækker

CREATE UNIQUE INDEX IdIndex ON kontakt_personer ( Id );
CREATE INDEX NameIndex ON kontakt_personer ( LastName , FirstName );

Ved brug af CREATE INDEX er det nød vendigt at skrive et navn hvor imod hvis du benytter ALTER TABLE udfylder MySQL indexet med et navn.

CREATE INDEX kan kun oprette en række pr statement og ikke flere af gangen lige som ALTER TABLE kan gøre, derfor er ALTER TABLE mere flexible at benytte.