MySQL

**MySQL** er et databaseadministrasjonssystem som er lisensiert som åpen kildekode (GPL-lisens) og som kjører på de fleste vanlige operativsystem. MySQL brukes av privatpersoner og bedrifter som et IT-system for å lagre, hente, sortere og filtrere data.  

Denne databasetjeneren er veldig mye brukt, og er en vesentlig del av LAMP-systemer, hvor M-en står for nettopp MySQL. Mange webpubliseringssystem som WordPress, Drupal, Joomla, phpBB, og MediaWiki lagrer innhold i MySQL-databaser. Nettsteder som blant annet Facebook, Flickr, MediaWiki, Twitter, og YouTube bruker MySQL for å lagre brukerkontoer.  

Selskapet som utviklet MySQL ble i 2008 kjøpt opp av Sun Microsystems, som igjen ble kjøpt opp av Oracle i 2010. Per 2015 vedlikeholdes MySQL av Oracle og utvikles av ca 150 personer verden over hvor 35 sitter i Trondheim. Ved overdragelsen til Oracle ble kodegrunnlaget til MySQL tatt med videre til MariaDB fordi det ble stilt spørsmål om lisensiering av programvaren. 

## Bruksområder
MySQL kan kjøres på mange operativsystemer – inkludert Unix-liknende, FreeBSD Linux, Mac OS X, NetBSD, Netware, OpenBSD, QNX, SGI IRIX, SunOS og Windows.

### Plattformer
MySQL er populært for webapplikasjoner som Wikipedia, PHP-Nuke, Wordpress m.fl. Populariteten skyldes først og fremst at MySQL er lett å bruke, gratis, og holder en høy ytelse i forhold til både pris og krav til maskinvare.

## Grensesnitt
De fleste programmeringsspråk kan koble til MySQL-databaser, bl.a. C, C++, Eiffel, Smalltalk, Java, Lisp, Perl, PHP, Python, Ruby, og Tcl; hver av dem bruker et spesifikt API. Et ODBC-grensesnitt (MyODBC) gjør det mulig for alle programmeringsspråk som støtter ODBC-grensesnittet å kommunisere med en MySQL-database. MySQL bruker ANSI C som sitt hovedspråk.

Man kan også kommunisere med en MySQL base via kommandolinje, eller MySQL Workbench som er en GUI applikasjon. Det fins også andre grafiske grensesnitt som LibreOffice, OpenOffice, eller phpMyAdmin som tilbyr administrasjon av databasen uten å måtte kunne programmere.

## Kritikk av MySQL
Tidlige versjoner av MySQL manglet viktige funksjoner som de aller fleste RDBMS-systemene har hatt lenge, og selv den nyeste versjonen mangler fremdeles en del av disse. Dette har fått noen kjente databaseeksperter, som Chris Date og Fabian Pascal til å kritisere MySQL for å ikke være noen RDBMS.

Tidligere fikk også MySQL masse kritikk for mangel på transaksjoner og ACID-kompatibilitet, som er viktig for å sikre integriteten til dataene. I samme kategori får MySQL masse kritikk for hvordan den behandler NULL-verdier, standardverdier og verdier som ikke passer med kolonnetypen den settes inn i.

## Eksempel

```sql
-- Lage tabell:
CREATE TABLE tabell navn (
    Navn på kolone1 data_type,
    Navn på kolone2 data_type,
    Navn på kolone3 data_type,
....
);

-- Legge til Infomasjon:
INSERT INTO tabell_navn (kolone1, kolone2, kolone3, ...)
VALUES (info1, info2, info3,...);

--  Hente informasjon :
SELECT * FROM tabell_navn
ORDER BY id DESC
LIMIT 10;

-- Oppdatere infomasjon:
UPDATE tabell_navn
SET kolone1=info, kolone2=info2,...
WHERE en_kolone='en_info';

-- Slette en rad:
DELETE FROM tabell_navn 
WHERE en_kolone='en_info';
```


### Utfylling:

```mysql
-- Lage tabel:
CREATE TABLE brukere (
    id int(9) NOT NULL AUTO_INCREMENT,
    brukernavn varchar(255) NOT NULL,
    passord varchar(255) NOT NULL,
....
);

-- Legge til informasjon:
INSERT INTO brukere (brukernavn, passord, email,...)
VALUES ('Testern', '*********', 'minepost@gmail.com',...)

--  Hente informasjon:
SELECT * FROM brukere
ORDER BY id DESC
LIMIT 10;

-- Oppdatere informasjon:
UPDATE brukere
SET brukernavn='Tewstern', passord='*****',...
WHERE id=2;

-- Slette en rad:
DELETE FROM brukere
WHERE id=2;
-- ''Resultatet vil bli at bruker med ID 2 vil bli slettet''
```


## Lisensiering
Både MySQL-serverprogramvare og klientbibliotek er distribuert under en dobbellisens.  Brukere kan velge mellom GNU General Public License og en kommersiell lisens.

## Andre SQL-baserte databasetjenere
* Apache Derby
* Firebird
* IBM DB2
* Oracle
* PostgreSQL
* SQLite

## Referanser


## Eksterne lenker
* 
* 
* MySQL Gotchas&mdash;Beskrivelse av mange egenskaper som kan fungere på uventede måter
* PHP MySQL Tutorial En innføring om MySQL mot PHP. Eksempler på gjestebøker, kontaktskjema, filopplasting til database, osv.