mysql create table tutorial with examples
V tej vadnici bomo raziskali uporabo ukaza MySQL CREATE TABLE s sintakso in primeri programiranja:
Stavek CREATE TABLE je del DDL (jezik definicije podatkov) SQL.
Razpravljali bomo o načinih, na katere lahko Ustvarite tabelo v dani zbirki podatkov, med ustvarjanjem tabele omenite imena stolpcev in mehanizem DB, skupaj s pravili glede pravil poimenovanja tabel SQL.
Kaj se boste naučili:
- Predpogoji
- Ukaz MySQL CREATE TABLE
- Zaključek
Predpogoji
Predpogoj za zagon katerega koli ukaza SQL bi bil prenos strežnika MySQL. Brezplačno različico skupnosti lahko prenesete tukaj.
Za vse primere in razprave v tej vadnici bomo uporabili tudi odjemalca MySQL Workbench SQL. Prenesete lahko brezplačno skupnostno različico MySQL Workbench tukaj (različico lahko izberete glede na operacijski sistem, na katerem delate).
Če ne želite uporabljati MySQL Workbench - lahko uporabite tudi odjemalca ukazne vrstice MySQL, ki je priložen privzeti namestitvi strežnika MySQL.
Ukaz MySQL CREATE TABLE
Ukaz CREATE TABLE je del nabora ukazov DDL (jezik za določanje podatkov) v MySQL in uporabniku omogoča, da ustvari novo tabelo za dano bazo podatkov.
Opomba: Ukaz CREATE TABLE obstaja za skoraj vse relacijske zbirke podatkov - na primer MySQL, Postgres, SQL Server itd.
Sintaksa USTVARI TABELO MySQL
V najpreprostejši obliki lahko uporabite ukaz CREATE TABLE s samo osnovnimi možnostmi, tj.ime tabele in definicije stolpcev.
CREATE TABLE (IF NOT EXISTS) tableName ( column1 datatype, column2 datatype, .... ); Podrobno razumemo argumente skladnje:
- tableName: To bi moralo biti ime tabele, ki jo poskušate ustvariti. Ime bi moralo biti popolnoma kvalificirano (v primeru, da nimate nastavljene privzete baze podatkov). Na primer databaseName.tableName
Ime tabele je mogoče določiti brez narekovajev ali s simbolom povratne kljukice, na primer `tableName` in` databaseName`.`tableName` - Opredelitev stolpca: Tabela v SQL mora vsebovati vsaj en stolpec. Vse definicije stolpcev morajo vsebovati ime_ stolpca in podatkovni tip stolpca. Po želji lahko vključite tudi druge lastnosti stolpca, kot so primarni ključ, null, ne null itd.
Poglejmo primer uporabe zgornje skladnje za ustvarjanje tabele.
Ustvarili bomo tabelo z imenom EMPLOYEE_DETAILS (v zbirki podatkov - SAMPLE_DB) s stolpci
- ime: varchar (100)
- starost: int
- naslov: varchar (100)
CREATE TABLE SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) ); Spodaj bo rezultat ustvarjanja tabele:

Opomba:
# 1) Upoštevajte uporabo (IF NOT EXISTS) neobveznega ukaza v zgornji sintaksi.
Običajno je priporočljivo uporabiti ta ukaz, saj bi se izognili ustvarjanju napake, če je tabela, ki jo poskušamo ustvariti, že prisotna v bazi podatkov.
Tu je primer uporabe z ali brez, ČE NE OBSTAJA.
- Brez IF NOT EXISTS bi ustvarila napako, če tabela že obstaja.

- Če IF NOT EXISTS ne bo povzročil napake. Vendar pa bo prikazano opozorilo, da tabela že obstaja.

# 2) 'tableName' med uporabo ukaza CREATE TABLE mora biti popolnoma kvalificiran z imenom baze podatkov, tj način, kot smo ga uporabili SAMPLE_DB.employee_details
Drugi načini določanja imena tabele so nastavitev trenutne baze podatkov z ukazom 'USE'. Npr. UPORABI SAMPLE_DB; in nato zagon / uporaba samo imena tabele namesto popolnoma kvalificiranega imena tabele.
USTVARI TABELO z možnostmi tabele
Možnosti tabel se uporabljajo za optimizacijo vedenja tabel MySQL. Te lahko uporabite med ustvarjanjem tabele z ukazom MySQL CREATE TABLE (ali kasneje z ukazom ALTER TABLE).
Sintaksa ostaja nespremenjena z dodatnimi možnostmi tabele, ki jih je mogoče določiti.
CREATE TABLE (IF NOT EXISTS) tableName ( column1 datatype, column2 datatype, .... ) (table “” not found /)
; Spodaj bomo razpravljali o najpogosteje uporabljenih možnostih (Popoln seznam možnosti tabel je na voljo tukaj ).
# 1) MOTOR
Uporablja se za določanje mehanizma za shranjevanje tabele, tj. Privzeta vrednost je InnoDB. Tega ni treba spreminjati, razen če obstajajo potrebe po katerem koli posebnem mehanizmu za shranjevanje. Druge veljavne vrednosti za pomnilniške mehanizme so MEMORY, CSV, HEAP itd.
Sintaksa za določanje ENGINE kot dela MySQL CREATE TABLE je podana spodaj.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )ENGINE='MEMORY';# 2) AUTO_INCREMENT
Ta možnost se uporablja za nastavitev začetne vrednosti AUTO_INCREMENT tabele, tj. Privzeta vrednost je 1, vendar lahko preglasite katero koli drugo pozitivno celoštevilčno vrednost.
Opomba: AUTO_INCREMENT lahko določite samo za en stolpec v tabeli in bi moral biti primarni ključ. Oglejmo si primer določanja samodejnega prirastka kot 10 in vstavitve zapisa za potrditev, če je samodejni prirastek pravilno nastavljen.
Uporabljamo isto tabelo worker_details (pred zagonom tega ukaza obvezno spustite obstoječo tabelo) z dodatnim poljem id, označenim kot 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; Vstavimo vrstico brez vrednosti za ID in zagotovimo, da se vrednosti vstavljajo od vrednosti, ki se začne z 10.
INSERT INTO SAMPLE_DB.employee_details(name,age,address) values ('aman kumar',20,'mumbai'); select * from SAMPLE_DB.employee_details; 
# 3) KONTROLA
Ta mora biti nastavljena na 1, če želite imeti kontrolno vsoto za celotno shranjeno tabelo. Običajno se uporablja za zagotovitev, da ni poškodovanih tabel.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )CHECKSUM=1; CHECKSUM med vsakim vstavljanjem ali posodabljanjem hrani kontrolno vsoto celotne tabele
USTVARI TABELO s podrobnostmi particioniranja
Po potrebi lahko omenimo tudi uporabniško določeno particioniranje z uporabo možnosti particioniranja.
Delitev kot koncept se na splošno uporablja za distribucijo vsebine tabel po datotečnem sistemu, da se zagotovijo hitrejši časi dostopa in optimizirane poizvedbe. Particioniranje razdeli veliko tabelo na manjše tabele, odvisno od določenih strategij ali particijskih ključev.
Poglejmo, kako lahko z ukazom MySQL CREATE TABLE določimo podrobnosti particioniranja.
Uporabili bomo vzorčno tabelo worker_details in dodali nov celoštevilčni stolpec z imenom department_id, ki bi bil uporabljen kot particijski hash-ključ za enakomerno porazdelitev podatkov.
Tudi določanje števila particij bi pomenilo, koliko dejanskih particij bi bilo ustvarjenih (v tem primeru 4). Če ni določeno, bi bila privzeto 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; Opomba: Na splošno je ključ, ki bi ga uporabili za ustvarjanje particij, odvisen od predvidenih vzorcev dostopa, ki bi se uporabili za tabelo. Predpostavimo, da bi v večini primerov tabelo poizvedovali na podlagi ID-ja oddelka, potem je smiselno, da je odsek_id vključen kot del hash ključa.
Kloniranje in kopiranje tabel MySQL
Včasih boste morda želeli ustvariti klon obstoječe tabele ali kopirati vsebino iz ene tabele v drugo. MySQL podpira dva načina za dosego tega, kot je prikazano spodaj.
- Uporaba ukaza LIKE
- Uporaba ukaza SELECT
Kloniranje tabele z uporabo LIKE COMMAND
Z ukazom LIKE lahko ustvarite novo tabelo s popolnoma enakimi imeni in lastnostmi stolpcev kot obstoječe tabele.
Tu je sintaksa z uporabo ukaza LIKE.
kako kopirati DVD-je brezplačno
CREATE TABLE tableName1 LIKE tableName2Z zgornjim ukazom bi bila ustvarjena nova tabela, tj. TableName1 z enako strukturo in lastnostmi tableName2.
Upoštevajte, da se pri tem pristopu klonirajo samo imena stolpcev in lastnosti, ne pa tudi dejanski podatki tabele.
Poskusimo ustvariti tabelo z imenom staff_details in s to tabelo z možnostjo LIKE ustvarite novo tabelo z imenom student_details.
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;Spodaj je rezultat zgornjega ukaza.

Kloniranje tabele z uporabo SELECT COMMAND
Ta pristop uporablja ukaz SELECT za ustvarjanje kopije obstoječe tabele v novo tabelo.
S tem pristopom se podatki iz tabele kopirajo tudi v novo tabelo.
CREATE TABLE tableName1 AS SELECT * FROM tableName2;Poskusimo ustvariti tabelo z imenom staff_details in s to tabelo z možnostjo SELECT ustvarite novo tabelo z imenom student_details.
CREATE TABLE SAMPLE_DB.student_details AS SELECT * FROM SAMPLE_DB.employee_details;Konvencije o poimenovanju tabel MySQL
V prejšnjih razdelkih smo spoznali ustvarjanje tabel MySQL. Zdaj pa si oglejmo nekaj pravil, ki jih je treba upoštevati pri poimenovanju tabel, skupaj z omejitvami, ki veljajo za MySQL.
Te konvencije / pravila veljajo tako za tabele SQL kot za podatkovne baze.
# 1) Pravni znaki v imenih
do) Imena brez navedb so lahko sestavljena iz poljubnih znakov v privzetem naboru znakov SQL Server, z izjemo, da niso vsi znaki lahko števke. Na primer „23test“ je veljavno ime tabele, ne pa „2345“.
Spodaj je seznam znakov, ki bi jih lahko uporabili za imena brez navedb:
ASCII: (0-9, a-z, A-Z $ _) (osnovne latinske črke, številke 0-9, dolar, podčrtaj)
Razširjeno: U + 0080 .. U + FFFF
Preberite več o kodah ASCII tukaj
b) Imena tabel in baz podatkov lahko citirate z znakom za nazaj (`) in lahko vsebuje katero koli črko / znak, razen samega znaka za povratno kljukico. Z navedenimi imeni lahko celo imena tabel / baz podatkov vsebujejo vse številke.
Upoštevajte, da bi za takšne tabele morali uporabljati povratne znake okrog tabele in / ali ime baze podatkov za dostop do podatkov znotraj tabel.
c) Imena tabel in baz podatkov ne smejo vsebovati pike '.', Ker se uporablja kot ločilo baze podatkov in tabele.
d) Imena baz podatkov in tabele lahko vsebujejo - posebni znaki '$' in '_'.
# 2) Dolžina imena
Največja dovoljena dolžina imena baze podatkov ali tabele v MySQL je 64 znakov.
# 3) Kvalifikacije za imena
Kot smo že omenili v prejšnjih razdelkih, je tabela v MySQL vedno v kontekstu z bazo podatkov, katere del je. Zato lahko za dostop do tabele uporabite popolnoma kvalificirano ime tabele - kar ni nič drugega kot kombinacija imena baze podatkov, ločena s piko in nato imenom stolpca.
vprašanja in odgovori na testu za avtomatizacijo java
Na primer če želite iz baze podatkov SAMPLE_DB izbrati vse elemente iz tabele ‘EMPLOYEE_DETAILS’, lahko uporabite popolnoma kvalificirano ime, kot je prikazano spodaj.
SELECT * from SAMPLE_DB.EMPLOYEE_DETAILS;Imena DB in tabel lahko prav tako določite kot citirane z ločenimi tipkami, kot je prikazano spodaj.
SELECT * from `SAMPLE_DB`.`EMPLOYEE_DETAILS`;Spodaj so navedeni priporočila in najboljše prakse glede poimenovanja tabel in baz podatkov.
- Tabele in baze podatkov poimenujte z malimi črkami - To na splošno pospeši tipkanje in poizvedovanje po DB, zlasti za tiste, ki sodelujejo pri vsakodnevnem poizvedovanju po DB.
- Namesto presledkov v imenih tabel in db uporabite podčrtaje ('_') - Zaradi tega so imena bolj berljiva.
- Za tabele in zbirke podatkov uporabite samoumevna imena - Na primer tabelo, ki vsebuje podrobnosti o zaposlenem, lahko poimenujemo na različne načine, kot so zaposleni_informacije, podatki_zaposlenih, zaposleni, podrobnosti_zaposlenih, ime_zaposlenega_in_adres. Smiselno bi bilo izbrati ime, ki je najbolj samoumevno. Na primer lahko izberemo ime tabele, da bo »zaposleni_podroki« ali »zaposleni_info«. Čeprav gre za subjektivno razpravo, se mora z njo strinjati več članov ekipe, ki bodo uporabili in ustvarili te entitete.
- Izogibajte se uporabi števil v imenih zbirk podatkov in tabel - Tako kot sample_db_2, test_table_1 itd.
Pogosta vprašanja in odgovori
V # 1) Kako ustvariti tabelo v MySQL z uporabo indeksa?
Odgovor: INDEX lahko dodate v kateri koli stolpec (ali kombinacijo stolpcev) med samim ustvarjanjem tabele.
Oglejmo si primer dodajanja indeksa v stolpec department_id za tabelo staff_details.
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) ); V # 2) Kako ustvariti tabelo z datumom v MySQL?
Odgovor: Datum je podatkovni tip, ki ga je treba med ustvarjanjem tabele povezati s katerim koli stolpcem.
Glejte spodnji vzorčni ukaz CREATE TABLE s stolpcem joining_date, ki ima kot podatkovni tip DATETIME za vzorčno tabelo 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 ); V # 3) Kako lahko vidim strukturo tabele v MySQL?
Odgovor: Če se želite po ustvarjanju tabele sklicevati na strukturo tabele, kot so stolpci, indeksi itd., Lahko z ukazom DESCRIBE pridobite podrobnosti.
Sintaksa:
DESCRIBE tableName;Ustvarimo tabelo in si oglejmo izhod za ukaz 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; Spodaj je rezultat ukaza DESCRIBE.

V # 4) Kako v tabelo v MySQL dodam TUJI KLJUČ?
Odgovor: Tuji ključ se uporablja za povezovanje dveh tabel v MySQL. Če želite uporabiti omejitev tujega ključa, bi morali že ustvariti tabelo, na katero se sklicujete.
>> Več o tem Omejitev tujega ključa MySQL
Poskusimo to razumeti s primerom. Recimo, da imamo 2 tabeli, tj. Oddelek (ki vsebuje podrobnosti o različnih oddelkih, ki jih ima šola) in Podrobnosti o študentu (vse podrobnosti, ki se nanašajo na študente).
Oddelek ima stolpce - id (primarni ključ) in ime.
Podrobnosti o študentu - id (primarni ključ), starost, naslov in oddelek_id (tuji ključ je naveden v tabeli oddelka).
Spodaj je sintaksa ukaza CREATE TABLE za obe tabeli.
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 );Glejte sintakso sklica FOREIGN KEY v tabeli student_details, kjer smo omenili, da je treba razmerje med stolpci in oddelkom_id sklicevati na ID stolpca iz tabele oddelkov.
Zaključek
Ukaz CREATE TABLE v MySQL, ki spada med ukaze v kategoriji Data Definition Language, je bil tukaj podrobno razložen.
Spoznali smo različne možnosti tabele, kot so ENGINE, CHECKSUM itd., Ki bi jih lahko omenjali skupaj z ukazom CREATE TABLE, da bi za tabelo nastavili dodatne lastnosti.
Šli smo skozi načine, kako ustvariti klon obstoječe tabele v MySQL. Na koncu smo se pogovarjali o pravilih poimenovanja imen tabel in najboljših praksah, ki jih priporoča industrija.
Veselo branje !!
Priporočeno branje
- Vadnica za ustvarjanje pogleda MySQL s primeri kode
- Vrste podatkov MySQL | Katere so različne vrste podatkov v MySQL
- MySQL Vstavi v tabelo - Vstavi sintakso in primere izjave
- Vadnica za MySQL JOIN: Notranja, zunanja, križna, leva, desna in lastna
- Razlika med SQL Vs MySQL Vs SQL Server (s primeri)
- Kako uporabljati izjavo PL SQL za vstavljanje, posodabljanje, brisanje in izbiro
- MongoDB Vadnica za ustvarjanje zbirke podatkov
- MongoDB Ustvari uporabnika in dodeli vloge s primeri