Hantera databaser i MySQL

En kort översikt över de enklaste kommandona för att hantera databaser i MySQL.

Jag förutsätter att du kan skapa databaser och tabeller, om inte se: SQL create db.

Göra backup (dump) på databas

mysqldump -u user -p db_name > db_dump.sql;


Visa databaser

SHOW DATABASES;


Importera databas

Se till att navigera till mappen där sql-filen ligger.

mysql -u user -p < db_dump.sql;


Döpa om databas

Enklaste sättet att ”döpa om” en databas är att dumpa den, importera den i en ny samt radera den gamla databasen.

Radera databas

DROP DATABASE db_name;


Visa tabeller

SHOW TABLES;


Beskriv en tabells schema

DESCRIBE table_name;


Döpa om tabeller

ALTER TABLE table_name RENAME table_new_name;


Döpa om kolumn

Kolla först vilken datatyp kolumnen har (för att skriva samma men du kan givetvis ändra datatyp också)

DESCRIBE table_name;

Döp sedan om kolumnen så här:

ALTER TABLE table_name CHANGE old_column_name new_column_name data_type;

Ändra kolumn till not null constraint (OBS! fungerar bara om det inte finns några rader med null-värden):

ALTER TABLE table_name CHANGE column_name column_name data_type NOT NULL;


Lägga till kolumn i tabell

På liknande sätt som att döpa om kolumn, lägger man till en ny kolumn. Givetvis är det alltid bäst om databasen är väl designad innan man skapar den :)

ALTER TABLE table_name ADD column_name data_type;

Vill du ändra datatyp på existerande kolumn gör så här:

ALTER TABLE table_name ALTER COLUMN column_name new_datatype;

Uppdatera kolumn med unik nyckel:

ALTER TABLE table_name ADD UNIQUE (column_name);

Lägga till främmande nyckel (namngiven eller inte):

ALTER TABLE table_name ADD CONSTRAINT fk_name FOREIGN KEY (column_name) REFERENCES table2_name(column2_name)
ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES table2_name(column2_name)


Uppdatera främmande nyckel

Behöver du uppdatera en främmande nyckel, måste du först ta bort den och lägga till den igen:

ALTER TABLE table_name DROP FOREIGN KEY fk_name;
ALTER TABLE table_name ADD CONSTRAINT fk_name FOREIGN KEY (column_name) REFERENCES table2_name(column2_name);


Uppdatera värde i tabell

UPDATE table_name SET column_name = new_value WHERE column_name = existing_value;


Ta bort rad i tabell

DELETE FROM table_name WHERE column_name = value;

Ta bort rader med id mellan x och y:

DELETE FROM table_name WHERE column_name BETWEEN x_value AND y_value


Radera tabell

DROP TABLE table_name;


Radera kolumn i tabell

ALTER TABLE table_name DROP COLUMN column_name;


Töm tabell

TRUNCATE TABLE table_name

Publicerad i Linux, MySQL den 01 jun, 2016