mysql create table tutorial with examples
U ovom uputstvu istražit ćemo upotrebu naredbe MySQL CREATE TABLE sa sintaksom i primjerima programiranja:
Izraz CREATE TABLE dio je DDL-a (jezika definicije podataka) SQL-a.
Razgovarat ćemo o načinima na koje možete kreirati tablicu u datoj bazi podataka, spomenuti imena stupaca i DB mehanizam tijekom stvaranja tablice, zajedno s pravilima oko konvencija imenovanja za SQL tablice.
Što ćete naučiti:
- Preduvjeti
- Naredba Stvaranje tablice MySQL
- Zaključak
Preduvjeti
Preduvjet za pokretanje bilo koje SQL naredbe bio bi preuzimanje MySQL poslužitelja. Besplatno izdanje zajednice može se preuzeti ovdje.
Također ćemo koristiti MySQL Workbench SQL klijent za sve primjere i rasprave u ovom vodiču. Besplatno izdanje MySQL Workbencha u zajednici može se preuzeti ovdje (verziju možete odabrati ovisno o OS-u na kojem radite).
U slučaju da ne želite koristiti MySQL Workbench - možete koristiti i klijent MySQL naredbenog retka koji dolazi sa zadanom instalacijom MySQL poslužitelja.
Naredba Stvaranje tablice MySQL
Naredba CREATE TABLE dio je skupa naredbi DDL (jezik definicije podataka) u MySQL-u i omogućuje korisniku stvaranje nove tablice za datu bazu podataka.
Bilješka: Naredba CREATE TABLE postoji za gotovo sve relacijske baze podataka - poput MySQL, Postgres, SQL Server itd.
Sintaksa STVARANJE TABELE MySQL
U najjednostavnijem obliku možete koristiti naredbu CREATE TABLE sa samo osnovnim opcijama, tj. Nazivom tablice i definicijama stupaca.
CREATE TABLE [IF NOT EXISTS] tableName ( column1 datatype, column2 datatype, .... );
Razumimo detaljno argumente sintakse:
- tableName: Ovo bi trebalo biti ime tablice koju pokušavate stvoriti. To bi trebalo biti potpuno kvalificirano ime (u slučaju da nemate zadani skup podataka). Na primjer, databaseName.tableName
Naziv tablice može se navesti bez navodnika ili sa simbolom za povratni znak, poput `tableName` i` databaseName`.`tableName` - Definicija stupca: Tablica u SQL-u mora se sastojati od najmanje jednog stupca. Sve definicije stupaca moraju se sastojati od ime_stupca, kao i vrsta podataka stupca. Po želji možete uključiti i druga svojstva stupca poput primarnog ključa, nule, ne nule itd.
Pogledajmo primjer korištenja gornje sintakse za stvaranje tablice.
Stvorit ćemo tablicu EMPLOYEE_DETAILS (u bazi podataka - SAMPLE_DB) sa stupcima
- Ime: varchar (100)
- dob: int
- adresa: varchar (100)
CREATE TABLE SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) );
Dano u nastavku bit će rezultat stvaranja tablice:
Bilješka:
# 1) Primijetite upotrebu neobavezne naredbe [IF NOT EXISTS] u gornjoj sintaksi.
Općenito se preporučuje korištenje ove naredbe jer bi se izbjeglo generiranje pogreške ako je tablica koju pokušavamo stvoriti već prisutna u bazi podataka.
Evo primjera upotrebe sa i bez AKO NE POSTOJI.
- Bez IF NOT EXISTS generiralo bi pogrešku ako tablica već postoji.
- Ako IF NOT EXISTS neće generirati pogrešku. Međutim, prikazat će se upozorenje da tablica već postoji.
# 2) 'tableName' tijekom upotrebe naredbe CREATE TABLE trebao bi biti u potpunosti kvalificiran s imenom baze podataka, tj. Načinom na koji smo ga koristili je SAMPLE_DB.employee_details
Ostali načini određivanja naziva tablice su postavljanje trenutne baze podataka pomoću naredbe ‘USE’. Npr. KORISTI SAMPLE_DB; a zatim pokretanje / korištenje samo naziva tablice umjesto potpuno kvalificiranog naziva tablice.
STVARI TABELU s opcijama tablice
Opcije tablice koriste se kako bi se optimiziralo ponašanje MySQL tablica. Oni se mogu primijeniti tijekom stvaranja tablice pomoću naredbe MySQL CREATE TABLE (ili kasnije putem naredbe ALTER TABLE).
Sintaksa ostaje ista s dodatnim opcijama tablice koje se mogu specificirati.
CREATE TABLE [IF NOT EXISTS] tableName ( column1 datatype, column2 datatype, .... ) [table “” not found /]
;
U nastavku ćemo razmotriti najčešće korištene opcije (možete pronaći cjelovit popis opcija tablice ovdje ).
# 1) MOTOR
Koristi se za specificiranje mehanizma za pohranu tablice, tj. Zadana vrijednost je InnoDB. To se ne mora mijenjati ako nema potrebe za nekim posebnim mehanizmom za pohranu. Ostale valjane vrijednosti za mehanizme za pohranu su MEMORY, CSV, HEAP itd.
Sintaksa za specificiranje ENGINE kao dijela MySQL CREATE TABLE data je u nastavku.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )ENGINE='MEMORY';
# 2) AUTO_INCREMENT
Ova se opcija koristi za postavljanje početne vrijednosti AUTO_INCREMENT tablice, tj. Zadana vrijednost je 1, ali možete nadjačati bilo koju drugu pozitivnu cijelu vrijednost.
Bilješka: AUTO_INCREMENT se može odrediti za samo jedan stupac na tablici i to bi trebao biti primarni ključ. Pogledajmo primjer određivanja automatskog povećanja kao 10 i umetanja zapisa za potvrdu ako je automatsko povećanje pravilno postavljeno.
Koristimo istu tablicu worker_details (osigurajte ispuštanje postojeće tablice prije pokretanja ove naredbe) s dodatnim ID poljem označenim kao primarni ključ.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details( id int not null AUTO_INCREMENT primary key, name varchar(100), age int, address varchar(100) )AUTO_INCREMENT=10;
Umetnimo red bez ikakve vrijednosti za ID i osigurajmo da se vrijednosti ubacuju od vrijednosti koja počinje s 10.
INSERT INTO SAMPLE_DB.employee_details(name,age,address) values ('aman kumar',20,'mumbai'); select * from SAMPLE_DB.employee_details;
# 3) KONTROLA
Ovo bi trebalo biti postavljeno na 1 ako želite imati kontrolnu sumu za cijelu pohranjenu tablicu. Obično se koristi kako bi se osiguralo da nema oštećenih tablica.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )CHECKSUM=1;
CHECKSUM čuva aktivnu kontrolnu sumu cijele tablice tijekom bilo kakvih umetanja ili ažuriranja
IZRADI TABELU s pojedinostima particioniranja
Ako je potrebno, možemo spomenuti i korisnički definiranu particiju koristeći opcije particioniranja.
Particioniranje kao koncept široko se koristi za distribuciju sadržaja tablica po datotečnom sustavu kako bi se osiguralo brže vrijeme pristupa i optimizirani upiti. Particioniranje dijeli veliku tablicu na manje tablice, ovisno o navedenim strategijama ili particijskim ključevima.
Pogledajmo kako možemo odrediti detalje particioniranja pomoću naredbe MySQL CREATE TABLE.
Upotrijebit ćemo uzorku tablice worker_details i dodati ćemo novi cjelobrojni stupac nazvan department_id koji će se koristiti kao particijski hash ključ za ravnomjernu raspodjelu podataka.
Također specificiranje broja particija značilo bi koliko će stvarnih particija biti stvoreno (u ovom slučaju 4). Ako nije navedeno, tada bi prema zadanim postavkama postojala samo 1 particija.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100), department_id int )PARTITION BY HASH (department_id) PARTITIONS 4;
Bilješka: Općenito, ključ koji će se koristiti za stvaranje particija ovisit će o predviđenim obrascima pristupa koji će se koristiti za tablicu. U ovom slučaju, pretpostavimo da bismo većinu vremena ispitivali tablicu na temelju ID-a odjela, tada ima smisla imati odjeljak_id kao dio hash ključa.
Kloniranje i kopiranje tablice MySQL
Ponekad ćete možda htjeti stvoriti klon postojeće tablice ili kopirati sadržaj iz jedne tablice u drugu tablicu. MySQL podržava 2 načina da se to postigne, kao što je prikazano u nastavku.
- Korištenje naredbe LIKE
- Korištenje naredbe SELECT
Kloniranje tablice pomoću LIKE COMMAND
Pomoću naredbe LIKE možete stvoriti novu tablicu s potpuno istim imenima i svojstvima stupaca kao postojeće tablice.
Evo sintakse pomoću naredbe LIKE.
razlika između jediničnog i integracijskog testa
CREATE TABLE tableName1 LIKE tableName2
S gornjom naredbom stvorila bi se nova tablica tj. TableName1 s istom strukturom i svojstvima tableName2.
Imajte na umu da se kod ovog pristupa kloniraju samo imena i svojstva stupaca, a ne i stvarni podaci tablice.
Pokušajmo stvoriti tablicu nazvanu_pojedinosti_detaila i upotrijebite ovu tablicu za izradu nove tablice imena_detajlovi učenika pomoću opcije LIKE.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100), department_id int ); CREATE TABLE SAMPLE_DB.student_details LIKE SAMPLE_DB.employee_details;
Dolje je prikazan rezultat gornje naredbe.
Kloniranje tablice pomoću SELECT COMMAND
Ovaj pristup koristi naredbu SELECT za stvaranje kopije postojeće tablice u novu tablicu.
Ovim pristupom podaci iz tablice također se kopiraju u novu tablicu.
CREATE TABLE tableName1 AS SELECT * FROM tableName2;
Pokušajmo stvoriti tablicu s imenom worker_details i pomoću ove tablice stvorimo novu tablicu s imenom student_details pomoću opcije SELECT.
CREATE TABLE SAMPLE_DB.student_details AS SELECT * FROM SAMPLE_DB.employee_details;
Konvencije o imenovanju tablica MySQL
U prethodnim smo odjeljcima naučili o stvaranju tablica MySQL. Sada ćemo vidjeti neka pravila koja treba imati na umu prilikom imenovanja tablica zajedno s ograničenjima koja vrijede u odnosu na MySQL.
Ova se pravila / pravila primjenjuju na obje SQL tablice kao i na baze podataka.
# 1) Pravni znakovi u imenima
do) Nenavedena imena mogu se sastojati od bilo kojih znakova u zadanom skupu znakova SQL Servera, s iznimkom da svi znakovi ne mogu biti znamenke. Na primjer, '23test' je važeći naziv tablice, ali ne i '2345'.
Slijedi popis znakova koji se mogu koristiti za nenavedena imena:
ASCII: [0-9, a-z, A-Z $ _] (osnovna latinična slova, znamenke 0-9, dolar, donja crta)
Prošireno: U + 0080 .. U + FFFF
Saznajte više o ASCII kodovima ovdje
b) Nazivi tablice i baze podataka mogu se navoditi znakom backtick (`) i mogu sadržavati bilo koje slovo / znak osim samog znaka backtick. Uz navedena imena možete čak imati i nazive tablica / baza podataka koji imaju sve znamenke.
Napominjemo da biste za takve tablice morali koristiti povratne znakove oko tablice i / ili naziv baze podataka za pristup podacima unutar takvih tablica.
c) Nazivi tablice i baze podataka ne mogu sadržavati razdoblje '.' Jer se to koristi kao baza podataka i razdvajač tablice.
d) Nazivi baze podataka i tablice mogu sadržavati - specijalne znakove '$' i '_'.
# 2) Duljina imena
Maksimalna dopuštena duljina naziva baze podataka ili tablice u MySQL je 64 likova.
# 3) Kvalifikacije imena
Kao što je raspravljeno u prethodnim odjeljcima, u MySQL-u je tablica uvijek u kontekstu s bazom podataka čiji je dio. Stoga, da biste pristupili tablici, možete koristiti potpuno kvalificirano ime tablice - što je ništa drugo nego kombinacija naziva baze podataka odvojena točkom, a zatim nazivom stupca.
Na primjer, da biste iz baze podataka SAMPLE_DB odabrali sve elemente iz tablice ‘EMPLOYEE_DETAILS’, možete koristiti potpuno kvalificirano ime kao u nastavku.
SELECT * from SAMPLE_DB.EMPLOYEE_DETAILS;
Nazivi DB-a i tablice također se mogu navesti kao citirani sa zaokretima odvojeno kao što je prikazano u nastavku.
SELECT * from `SAMPLE_DB`.`EMPLOYEE_DETAILS`;
Konvencije i najbolje prakse koje se preporučuju u industriji oko imenovanja tablica i baza podataka dane su u nastavku.
- Tablice i baze podataka imenujte malim slovima - To općenito ubrzava tipkanje i postavljanje upita u DB, posebno za one koji su uključeni u svakodnevno postavljanje upita u DB.
- Upotrijebite donje crte ('_') umjesto razmaka u imenima tablice i db-a - To čini imena čitljivijima.
- Upotrijebite samorazumljiva imena za tablice i baze podataka - Na primjer, tablica koja sadrži detalje o zaposleniku može se imenovati na različite načine kao što su_informacije o zaposleniku, podaci o zaposleniku, zaposlenik, detalji_zaposlenika, ime_uposlenika_ i adresa. Bilo bi logično odabrati ime koje najviše objašnjava samu sebe. Na primjer, možemo odabrati naziv tablice koji će biti zaposlenik_detalji ili zaposlenik_info. Iako je ovo subjektivna rasprava, oko nje bi se trebalo složiti više članova tima koji će koristiti i stvoriti te cjeline.
- Izbjegavajte upotrebu brojeva u imenima baze podataka i tablica - Kao sample_db_2, test_table_1 itd.
Često postavljana pitanja i odgovori
P # 1) Kako stvoriti tablicu u MySQL-u pomoću indeksa?
Odgovor: INDEX možete dodati bilo kojem stupcu (ili kombinaciji stupaca) tijekom samog stvaranja tablice.
Pogledajmo primjer dodavanja indeksa prema stupcu odjel_id za tablicu detalji_detalji.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int, age int, address varchar(100), department_id int, index(department_id) );
P # 2) Kako stvoriti tablicu s datumom u MySQL-u?
Odgovor: Datum je vrsta podataka koja bi trebala biti pridružena bilo kojem stupcu tijekom stvaranja tablice.
Pogledajte donju uzorak naredbe CREATE TABLE sa stupcem joining_date koji ima DATETIME kao tip podataka za oglednu tablicu worker_details.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int primary key, age int, address varchar(100), joining_date datetime, department_id int );
P # 3) Kako mogu vidjeti strukturu tablice u MySQL-u?
Odgovor: Nakon izrade tablice, ako se želite pozvati na strukturu tablice poput stupaca, indeksa itd., Možete upotrijebiti naredbu DESCRIBE za dohvaćanje detalja.
Sintaksa:
DESCRIBE tableName;
Stvorimo tablicu i pogledajte izlaz za naredbu DESCRIBE.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int primary key, age int, address varchar(100), department_id int ); DESCRIBE sample_db.employee_details;
Dolje je dat ispis naredbe DESCRIBE.
P # 4) Kako mogu dodati STRANI KLJUČ u tablicu u MySQL?
Odgovor: Strani ključ koristi se za povezivanje dvije tablice u MySQL. Da biste koristili ograničenje stranog ključa, trebali ste već stvoriti tablicu na koju se pozivate.
>> Saznajte više o Ograničenje stranog ključa MySQL
Pokušajmo to razumjeti na primjeru. Recimo da imamo 2 tablice, tj. Odjel (koji sadrži detalje o raznim odjelima koje fakultet ima) i Pojedinosti o studentima (svi detalji koji se odnose na studente).
Odjel ima stupce - id (primarni ključ) i ime.
Pojedinosti o studentu - id (primarni ključ), dob, adresa i odjel_id (strani ključ naveden iz tablice odjela).
Dolje je data sintaksa naredbe CREATE TABLE za obje ove tablice.
CREATE TABLE department ( name varchar(100), id INT NOT NULL, PRIMARY KEY (id) ); CREATE TABLE student_details ( name varchar(100), id int not null, age int, address varchar(100), department_id int, PRIMARY KEY (id), FOREIGN KEY (department_id) references department(id) ON DELETE CASCADE );
Pogledajte sintaksu referencije STRANI KLJUČ u tablici student_details gdje smo spomenuli odnos između stupaca i id_odjela treba se referencirati ID-om stupca iz tablice odjela.
Zaključak
Ovdje je detaljno objašnjena naredba CREATE TABLE u MySQL koja pripada naredbama u kategoriji Data Definition Language.
Saznali smo o različitim opcijama tablice poput ENGINE, CHECKSUM itd. Koje se mogu spomenuti zajedno s naredbom CREATE TABLE kako bi se za tablicu postavila dodatna svojstva.
trebam novog davatelja usluga e-pošte
Prošli smo načine za stvaranje klona postojeće tablice u MySQL-u. Na kraju smo razgovarali o konvencijama imenovanja imena tablica zajedno s najboljim praksama koje preporučuju djelatnosti.
Sretno čitanje !!
Preporučena literatura
- MySQL Vodič za stvaranje pogleda s primjerima koda
- Vrste podataka MySQL | Koje su različite vrste podataka u MySQL-u
- MySQL Umetni u tablicu - Umetni sintaksu i primjere izjave
- MySQL JOIN Vodič: Unutarnji, vanjski, križni, lijevi, desni i ja
- Razlika između SQL Vs MySQL Vs SQL Server (s primjerima)
- Kako se koristi PL SQL umetanje, ažuriranje, brisanje i odabir izjave
- MongoDB Vodič za izradu baze podataka
- MongoDB Stvori korisnika i dodijeli uloge s primjerima