Creați un tabel în baza de date mysql

În acest articol, vă vom arăta cum să creați noi baze de date și tabele folosind comenzi SQL în clientul mysql. Se presupune că acest instrument rulează și este conectat la un server de baze de date MySQL.

Crearea unei noi baze de date MySQL

O nouă bază de date este creată folosind instrucțiunea SQL CREATE DATABASE urmată de numele bazei de date care urmează să fie creată. În acest scop este folosită și instrucțiunea CREATE SCHEMA. De exemplu, pentru a crea o nouă bază de date numită MySampleDB, ar trebui să introduceți următoarea interogare la linia de comandă mysql:

CREAȚI BAZĂ DE DATE MySampleDB;

Dacă totul a mers bine, comanda va genera următoarea ieșire:

Interogare OK, 1 rând afectat (0,00 sec)

Dacă numele specificat al bazei de date intră în conflict cu o bază de date MySQL existentă, va fi afișat un mesaj de eroare:

EROARE 1007 (HY000): Nu se poate crea baza de date „MySampleDB”;

În această situație, ar trebui să alegeți un alt nume de bază de date sau să utilizați opțiunea DACĂ NU EXISTĂ. Acesta creează baza de date doar dacă aceasta nu există deja:

CREAȚI BAZĂ DE DATE DACĂ NU EXISTĂ MySampleDB;

Crearea de tabele folosind SQL

Tabelele noi sunt adăugate la o bază de date existentă folosind instrucțiunea SQL CREATE TABLE. Instrucțiunea CREATE TABLE este urmată de numele tabelului creat și apoi de o listă de nume și definiții separate prin virgulă pentru fiecare coloană de tabel:

CREATE TABLE table_name (definiția numelui_coloanei, definiția numelui_tabelului..., PRIMARY KEY = (nume_coloană)) ENGINE = tip_motor;

Definiția coloanei specifică tipul de date, dacă coloana poate fi NULL, AUTO_INCREMENT. Instrucțiunea CREATE TABLE vă permite, de asemenea, să specificați o coloană (sau un grup de coloane) ca cheie primară.
Înainte de a crea un tabel, trebuie să selectați o bază de date. Acest lucru se face folosind instrucțiunea SQL USE:

Să creăm un tabel format din trei coloane: customer_id, customer_name și customer_address. Coloanele customer_id și customer_name nu trebuie să fie goale (adică NU NULL). customer_id conține o valoare întreagă care va fi incrementată automat pe măsură ce sunt adăugate rânduri noi. Coloanele rămase vor conține șiruri de până la 20 de caractere. Cheia primară este definită ca customer_id.

CREATE TABLE client (customer_id int NOT NULL AUTO_INCREMENT, customer_name char(20) NOT NULL, customer_address char(20) NULL, PRIMARY KEY (customer_id)) ENGINE=InnoDB;

Valori NULL și NOT NULL

Dacă o coloană este setată la NULL, atunci rândurile goale vor fi adăugate la tabel. În schimb, dacă coloana este definită ca NOT NULL, atunci rândurile goale nu vor fi adăugate.

Chei primare

O cheie primară este o coloană utilizată pentru a identifica înregistrările dintr-un tabel. Valoarea coloanei cheii primare trebuie să fie unică. Dacă mai multe coloane sunt combinate într-o cheie primară, atunci combinația de valori cheie trebuie să fie unică pentru fiecare rând.

Cheia primară este definită folosind instrucțiunea PRIMARY KEY în timpul creării tabelului. Dacă sunt folosite mai multe coloane, acestea sunt separate prin virgulă:

CHEIE PRIMARĂ (nume_coloană, nume_coloană...)

Următorul exemplu creează un tabel folosind două coloane ca cheie primară:

CREATE TABLE produs (prod_code INT NOT NULL AUTO_INCREMENT, prod_name char(30) NOT NULL, prod_desc char(60) NULL, PRIMARY KEY (prod_code, prod_name)) ENGINE=InnoDB;

AUTO_INCREMENT

Când o coloană este definită cu AUTO_INCREMENT, valoarea acesteia este incrementată automat de fiecare dată când o nouă înregistrare este adăugată la tabel. Acest lucru este util atunci când utilizați o coloană ca cheie primară. Cu AUTO_INCREMENT, nu trebuie să scrieți instrucțiuni SQL pentru a calcula un identificator unic pentru fiecare rând.

AUTO_INCREMENT poate fi atribuit numai unei coloane dintr-un tabel. Și trebuie să fie indexat (de exemplu, declarat ca o cheie primară).

Valoarea AUTO_INCREMENT pentru o coloană poate fi suprascrisă prin specificarea uneia noi la executarea unei instrucțiuni INSERT.

Puteți interoga MySQL pentru cea mai recentă valoare AUTO_INCREMENT folosind funcția last_insert_id() astfel:

SELECTARE ultima_inserare_valoare();

Definirea valorilor implicite la crearea unui tabel

Valorile implicite sunt folosite atunci când valoarea nu este definită la inserarea în baza de date.
Valorile implicite sunt specificate folosind cuvântul cheie DEFAULT din instrucțiunea CREATE TABLE. De exemplu, următoarea interogare SQL setează valoarea implicită pentru coloana sales_quantity:

CREATE TABLE sales (număr_vânzări int NOT_NULL, vânzări_cantitate int NOT_NULL DEFAULT 1, sales_desc char(20) NOT_NULL, PRIMARY KEY (număr_vânzări)) ENGINE=MyISAM;

Tipuri de motoare de baze de date MySQL

Fiecare dintre exemplele de creare a tabelelor din acest articol până în acest punct a inclus o definiție ENGINE=. MySQL vine cu mai multe motoare de baze de date diferite, fiecare cu propriile avantaje. Folosind directiva ENGINE =, puteți alege ce motor să utilizați pentru fiecare tabel. Următoarele motoare de baze de date MySQL sunt disponibile în prezent:

  • InnoDB a fost introdus în versiunea MySQL 4.0 și este clasificat ca un mediu de tranzacții securizat. Mecanismul său asigură că toate tranzacțiile sunt 100%. Cu toate acestea, tranzacțiile finalizate parțial (de exemplu, ca urmare a unei defecțiuni a serverului sau a unei căderi de curent) nu vor fi înregistrate. Dezavantajul InnoDB este că nu acceptă căutarea full-text.
  • MyISAM este un motor de înaltă performanță cu suport de căutare full-text. Această performanță și funcționalitate vine în detrimentul securității tranzacțiilor.
  • MEMORIE - echivalent din punct de vedere funcțional cu MyISAM, cu excepția faptului că toate datele sunt stocate mai degrabă în RAM decât pe hard disk. Acest lucru asigură o viteză mare de procesare. Natura temporară a datelor stocate în RAM face ca motorul MEMORY să fie mai potrivit pentru stocarea temporară a tabelelor.

Motoarele de diferite tipuri pot fi combinate într-o singură bază de date. De exemplu, unele tabele pot folosi motorul InnoDB, în timp ce altele pot folosi motorul MyISAM. Dacă nu este specificat niciun motor în timpul creării tabelului, MySQL va fi implicit MyISAM.

Pentru a specifica tipul de motor de utilizat pentru un tabel, plasați definiția corespunzătoare ENGINE= după definiția coloanei tabelului:

CREATE TABLE tmp_orders (tmp_number int NOT_NULL, tmp_quantity int NOT_NULL, tmp_desc char(20) NOT_NULL, PRIMARY KEY (tmp_number)) ENGINE=MEMORY;

Traducerea articolului „Crearea bazelor de date și a tabelelor folosind comenzi SQL” a fost pregătit de echipa prietenoasă de proiect

În lecția anterioară, am învățat cum să creăm o conexiune la un server de baze de date. Următorul pas este crearea bazei de date și a tabelelor.

Să ne uităm la două moduri de a crea o bază de date și tabele. Primul este modul în care se face în PHP, al doilea este utilizarea utilitarului PhpMyAdmin mai prietenos, care este standard pe majoritatea gazdelor web și în XAMPP.

Dacă găzduiți un site cu suport PHP și MySQL, este posibil ca baza de date să fi fost deja creată pentru dvs. și puteți sări peste această secțiune a tutorialului și să începeți să creați tabele. Nu uitați să consultați paginile de ajutor ale gazdei.

Crearea de baze de date și tabele folosind PHP

Funcția mysql_query este utilizată pentru a interoga baza de date MySQL. Cererile sunt scrise în limbaj S structurat Q uery L unghi (SQL). SQL este cel mai utilizat limbaj de interogare a bazelor de date - nu doar pentru bazele de date MySQL - este foarte logic și ușor de învățat. În aceasta și în următoarele lecții veți învăța tot ce este important despre interogările SQL.

La crearea unei baze de date, interogarea SQL CREATE DATABASE este utilizată cu următoarea sintaxă:

CREAȚI BAZĂ DE DATE nume db

Ușor și simplu, nu-i așa!? Să încercăm să inserăm asta într-un script PHP:

Mysql_connect("mysql.myhost.com", "user", "sesame") sau die(mysql_error());

mysql_query("CREATE DATABASE mydatabase") sau die(mysql_error());

mysql_close();

Mai întâi ne conectăm la serverul MySQL. Apoi creăm baza de date „mydatabase”. Și în sfârșit, închideți conexiunea la serverul MySQL. Până acum, e bine... dar lucrurile devin puțin mai complicate când vrem să creăm tabele în PHP. Când creăm tabele, folosim interogarea SQL CREATE TABLE cu următoarea sintaxă: (CREAȚI TABEL numele tabelului column_name1 DATA_TYPE, ...)

column_name2 DATA_TYPE, column_name3 DATA_TYPE, table_nameŞi nume_coloană acestea sunt, desigur, nume potrivite.

DATA_TYPE

folosit pentru a specifica tipul de date introduse într-o coloană. Iată cele mai comune tipuri:

Numere întregi Numere zecimale Text scurt de până la 255 de caractere Text simplu de până la 65.535 de caractere Text lung de până la 4.294.967.295 de caractere Date în format AAAA-LL-ZZ Ora în format HH:MM:SS Ora și data în format AAAA-LL- DD HH:MM :SS

În general, este logic și relativ simplu. Să încercăm să inserăm asta în exemplul nostru:

Mysql_connect("mysql.myhost.com", "user", "sesame") sau die(mysql_error());

mysql_select_db(„oameni”) sau die(mysql_error());

Crearea unei baze de date și a tabelelor folosind phpMyAdmin

Poate fi util să poți crea baze de date și tabele direct în PHP. Dar este adesea mai ușor să utilizați phpMyAdmin (sau orice alt utilitar de administrare MySQL), care este standard pe majoritatea gazdelor web și XAMPP. Captura de ecran de mai jos arată cum să creați o bază de date și tabele folosind phpMyAdmin.

Iată sintaxa SQL generică pentru crearea tabelelor MySQL:

CREATE TABLE nume_tabel(nume_coloană tip_coloană);

Acum, vom crea următorul tabel în tutorialele bazei de date.

Tutorials_tbl(tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATA, PRIMARY KEY (tutorial_id));

Iată câteva puncte care necesită clarificări:

  • Câmpul de atribut nu este NULL, folosit pentru că nu vrem să fie nul. Prin urmare, dacă utilizatorul încearcă să creeze o înregistrare cu o valoare NULL, MySQL va genera o eroare.
  • Câmpul de atribut auto_increment din MySQL nu spune să mergeți mai departe și să adăugați următorul număr disponibil la câmpul ID.
  • Cuvântul cheie cheie primară este folosit pentru a desemna o coloană ca cheie primară. Puteți utiliza mai multe coloane separate prin virgule pentru a defini o cheie primară.

Crearea tabelelor din linia de comandă:

Este ușor să creezi un tabel MySQL din MySQL>prompt. Veți folosi comenzile SQL create table pentru a crea tabelul.

Exemplu:

Iată un exemplu pe care tutorials_tbl îl creează:

Root@host# mysql -u root -p Introduceți parola:******* mysql> use TUTORIALS; Baza de date schimbată mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY (tutorial_id) -> ); Interogare OK, 0 rânduri afectate (0,16 sec) mysql>

Crearea tabelelor folosind un script PHP:

Pentru a crea un tabel nou în orice bază de date existentă trebuie să utilizați funcțiile PHP mysql_query(). Veți transmite al doilea argument la comanda SQL corectă pentru a crea tabelul.

Exemplu:

Iată un exemplu de creare a unui tabel folosind un script PHP:

Crearea tabelelor MySQL "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, "." "tutorial_title VARCHAR(100) NOT NULL, "." "tutorial_author VARCHAR(40) NOT NULL, "." submission_date DATA, "." CHEIA PRIMARĂ (tutorial_id)); "; mysql_select_db("TUTORIALE"); $retval = mysql_query($sql, $conn); if(! $retval) ( die("Nu s-a putut crea tabelul: " . mysql_error()); ) echo "Tabelul a fost creat cu succesn" ; mysql_close($conn);

Mai multe exemple:

CREATE TABLE IF NU EXIST `users` (`id` int(11) NOT NULL auto_increment, `role_id` int(11) NOT NULL implicit „1”, `username` varchar(25) collate utf8_bin NOT NULL, `parola` varchar (34) colate utf8_bin NOT NULL, `email` varchar(100) collate utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL implicit „0”, `ban_reason` varchar(255) collate utf8_bin default NULL, `newpass` varchar (34) colate utf8_bin default NULL, `newpass_key` varchar(32) collate utf8_bin default NULL, `newpass_time` datetime default NULL, `last_ip` varchar(40) collate utf8_bin NOT NULL, `last_login` datetime NU NULL implicit "000 -00 00:00:00", `created` datetime NOT NULL implicit "0000-00-00 00:00:00", `modified` timestamp NOT NULL implicit CURRENT_TIMESTAMP la actualizare CURRENT_TIMESTAMP, CHEIE PRIMARĂ (`id`)) MOTOR =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //Cu două chei: CREATE TABLE IF NOT EXISTS `ci_sessions` (session_id varchar(40) DEFAULT "0" NOT NULL, ip_address varchar(16) DEFAULT "0" NOT NULL, user_agent varchar(120) NOT NULL, last_activity int( 10) nesemnat DEFAULT 0 NOT NULL, text_date_utilizator NU NULL, CHEIE PRIMARĂ (session_id), KEY `last_activity_idx` (`last_activity`));

Crearea tabelelor de date MySQL necesită următoarele informații:

  • numele tabelului
  • Numele câmpului tabelului
  • Definiția fiecărui câmp de tabel

gramatică

Mai jos este un tabel de date SQL pentru a crea sintaxa generală MySQL:

CREATE TABLE nume_tabel(nume_coloană tip_coloană);

În următorul exemplu, vom crea un tabel de date în baza de date w3big w3big_tbl:

W3big_tbl(w3big_id INT NOT NULL AUTO_INCREMENT, w3big_title VARCHAR(100) NOT NULL, w3big_author VARCHAR(40) NOT NULL, submission_date DATA, PRIMARY KEY (w3big_id));

Exemple de analize:

  • Dacă nu vrei câmpul NUL poate seta un câmp de atribut NU NUL, când operațiunea bazei de date, dacă câmpul de date de intrare este NUL, eroare.
  • AUTO_INCREMENT este definit ca o proprietate cu auto-incrementare utilizată de obicei pentru ca cheia primară să crească automat cu unu.
  • Cuvântul cheie PRIMARY KEY este folosit pentru a defini o coloană a cheii primare. Puteți utiliza mai multe coloane pentru a defini coloanele cheii primare, separate prin virgulă între ele.

Crearea unui tabel din linia de comandă

Prin MySQL> fereastra promptului de comandă, poate fi foarte simplu să creați un tabel MySQL. Puteți folosi SQL MASĂ operator CREA pentru a crea un tabel de date.

exemple

Root@host# mysql -u root -p Introduceți parola:******* mysql> use w3big; Baza de date a fost schimbată mysql> CREATE TABLE w3big_tbl(-> w3big_id INT NOT NULL AUTO_INCREMENT, -> w3big_title VARCHAR(100) NOT NULL, -> w3big_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY_ (w3big_id_) ); Interogare OK, 0 rânduri afectate (0,16 sec) mysql>

Notă: MySQL Comanda de terminare este punct și virgulă (;).

Crearea unui tabel de date folosind un script PHP

Puteți utiliza funcția din PHP mysql_query() pentru a crea un tabel de bază de date care există deja.

Această funcție are doi parametri, în implementare cu succes returnează TRUE, în caz contrar returnează FALSE.

gramatică

bool mysql_query(sql, conexiune);

exemple

Următorul exemplu utilizează un script PHP pentru a crea un tabel de date:

创建 MySQL 数据表 "; $sql = "CREATE TABLE w3big_tbl(". "w3big_id INT NOT NULL AUTO_INCREMENT, "." "w3big_title VARCHAR(100) NOT NULL, "." w3big_author VARCHAR(40) NOT NULL, "." "submission_date DATE, " ." CHEIE PRIMARĂ (w3big_id)); "; mysql_select_db("w3big"); $retval = mysql_query($sql, $conn); if(! $retval) ( die("数据表创建失败: " . mysql_error()); ) echo "数据戨捺\n"; mysql_close($conn); ?>