mysql create table tutorial with examples
У овом упутству истражићемо употребу наредбе МиСКЛ ЦРЕАТЕ ТАБЛЕ са синтаксом и примерима програмирања:
Израз ЦРЕАТЕ ТАБЛЕ је део ДДЛ-а (језик дефиниције података) СКЛ-а.
Разговараћемо о начинима на које можете креирати табелу у датој бази података, споменути имена колона и ДБ механизам док креирате табелу, заједно са правилима око конвенција именовања за СКЛ табеле.
Шта ћете научити:
- Предуслови
- МиСКЛ наредба ЦРЕАТЕ ТАБЛЕ
- Закључак
Предуслови
Предуслов за покретање било које СКЛ наредбе био би преузимање МиСКЛ сервера. Бесплатно издање заједнице може се преузети овде.
Такође ћемо користити МиСКЛ Воркбенцх СКЛ клијент за све примере и дискусије у овом упутству. Бесплатно издање МиСКЛ Воркбенцх заједнице може се преузети овде (верзију можете одабрати у зависности од ОС-а на којем радите).
У случају да не желите да користите МиСКЛ Воркбенцх - такође можете да користите клијент МиСКЛ наредбене линије који долази са подразумеваном инсталацијом МиСКЛ сервера.
МиСКЛ наредба ЦРЕАТЕ ТАБЛЕ
Наредба ЦРЕАТЕ ТАБЛЕ је део ДДЛ-а (Дата Дефинитион Лангуаге) скупа наредби у МиСКЛ-у и омогућава кориснику да креира нову табелу за дату базу података.
Белешка: Команда ЦРЕАТЕ ТАБЛЕ постоји за готово све релационе базе података - попут МиСКЛ, Постгрес, СКЛ Сервер итд.
МиСКЛ ЦРЕАТЕ ТАБЛЕ Синтакса
У најједноставнијем облику можете користити команду ЦРЕАТЕ ТАБЛЕ са само основним опцијама, тј. Именом табеле и дефиницијама колона.
CREATE TABLE [IF NOT EXISTS] tableName ( column1 datatype, column2 datatype, .... );
Хајде да детаљно разумемо аргументе синтаксе:
- таблеНаме: Ово би требало да буде назив табеле коју покушавате да направите. То би требало да буде потпуно квалификовано име (у случају да немате подразумевани скуп база података). На пример, датабасеНаме.таблеНаме
Назив табеле може се навести без наводника или са симболом за повратни знак, попут `таблеНаме` и` датабасеНаме`.`таблеНаме` - Дефиниција колоне: Табела у СКЛ-у мора се састојати од најмање једне колоне. Све дефиниције колона морају се састојати од име_колоне као и тип података колоне. По жељи можете да укључите и друга својства колоне као што су примарни кључ, нула, не нула итд.
Погледајмо пример коришћења горње синтаксе за креирање табеле.
Направићемо табелу под називом ЕМПЛОИЕЕ_ДЕТАИЛС (у бази података - САМПЛЕ_ДБ) са колонама
- име: варцхар (100)
- старост: инт
- адреса: варцхар (100)
CREATE TABLE SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) );
Дати доле ће бити резултат стварања табеле:
Белешка:
# 1) Обратите пажњу на употребу [АКО НЕ ПОСТОЈИ] опционалне наредбе у горњој синтакси.
Генерално се препоручује употреба ове наредбе јер би се избегло генерисање грешке ако је табела коју покушавамо да направимо већ присутна у бази података.
Ево примера коришћења са и без АКО НЕ ПОСТОЈИ.
- Без ИФ НОТ ЕКСИСТС генерисало би грешку ако табела већ постоји.
- Ако ИФ НОТ ЕКСИСТС неће генерисати грешку. Међутим, приказаће се упозорење да табела већ постоји.
# 2) „таблеНаме“ док користите наредбу ЦРЕАТЕ ТАБЛЕ треба да буде потпуно квалификовано са именом базе података, тј. Начином на који смо га користили је САМПЛЕ_ДБ.емплоиее_детаилс
Други начини одређивања имена табеле су подешавање тренутне базе података помоћу команде ‘УСЕ’. На пример. УСЕ САМПЛЕ_ДБ; а затим покретање / коришћење само имена табеле уместо потпуно квалификованог имена табеле.
СТВАРИ ТАБЕЛУ са опцијама табеле
Опције табеле се користе да би се оптимизовало понашање МиСКЛ табела. Они се могу применити током креирања табеле помоћу команде МиСКЛ ЦРЕАТЕ ТАБЛЕ (или касније преко наредбе АЛТЕР ТАБЛЕ).
Синтакса остаје иста са додатним опцијама табеле које се могу навести.
CREATE TABLE [IF NOT EXISTS] tableName ( column1 datatype, column2 datatype, .... ) [table “” not found /]
;
У наставку ћемо размотрити најчешће коришћене опције (може се наћи комплетна листа опција табела овде ).
# 1) МОТОР
Користи се за специфицирање механизма за складиштење за табелу, тј. Подразумевана вредност је ИнноДБ. Ово се не мора мењати уколико не постоје потребе за било којим специфичним механизмом за складиштење. Остале важеће вредности за механизме за складиштење су МЕМОРИ, ЦСВ, ХЕАП итд.
Синтакса за спецификацију ЕНГИНЕ као дела МиСКЛ ЦРЕАТЕ ТАБЛЕ дата је у наставку.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )ENGINE='MEMORY';
# 2) АУТО_ИНЦРЕМЕНТ
Ова опција се користи за постављање почетне вредности АУТО_ИНЦРЕМЕНТ табеле, тј. Подразумевана вредност је 1, али можете је заменити било којом другом позитивном целобројном вредношћу.
Белешка: АУТО_ИНЦРЕМЕНТ се може навести за само једну колону на табели и то би требао бити примарни кључ. Погледајмо пример одређивања аутоматског повећања као 10 и уметања записа за потврду ако је аутоматско повећање подешено правилно.
Користимо исту табелу воркер_детаилс (осигурајте да испустите постојећу табелу пре покретања ове наредбе) са додатним пољем ид означеним као примарни кључ.
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;
Убацимо ред без икакве вредности за ИД и уверите се да се вредности убацују из вредности која почиње са 10.
INSERT INTO SAMPLE_DB.employee_details(name,age,address) values ('aman kumar',20,'mumbai'); select * from SAMPLE_DB.employee_details;
# 3) КОНТРОЛА
Ово треба поставити на 1 ако желите да имате контролну суму за целу сачувану табелу. Обично се користи да би се осигурало да нема оштећених табела.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )CHECKSUM=1;
ЦХЕЦКСУМ чува активну контролну суму целе табеле током било каквих уметања или ажурирања
ИЗРАДИ ТАБЕЛУ са детаљима партиционирања
Такође можемо споменути кориснички дефинисану партицију ако је потребна користећи опције партиционирања.
Партиционирање као концепт широко се користи за дистрибуцију садржаја табела по систему датотека како би се осигурало брже време приступа и оптимизовани упити. Партиционирањем се велика таблица дели на мање табеле, овисно о наведеним стратегијама или партицијским кључевима.
Погледајмо како можемо одредити детаље партиционирања помоћу команде МиСКЛ ЦРЕАТЕ ТАБЛЕ.
Користићемо узорке табеле запослени_детаили и додати нову целобројну колону названу департмент_ид која би се користила као партициони хеш кључ за равномерну расподелу података.
Такође специфицирање броја партиција указује на то колико ће стварних партиција бити створено (у овом случају 4). Ако није наведено, тада би по дефаулту постојала само 1 партиција.
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;
Белешка: Генерално, кључ који ће се користити за креирање партиција зависиће од очекиваних образаца приступа који ће се користити за табелу. У овом случају, претпоставимо да бисмо већину времена испитивали табелу на основу ИД одељења, онда има смисла имати департмент_ид као део хасх кључа.
Клонирање и копирање табеле МиСКЛ
Понекад ћете можда желети да направите клон постојеће табеле или да копирате садржај из једне табеле у другу. МиСКЛ подржава 2 начина да се то постигне, као што је приказано доле.
- Коришћење команде ЛИКЕ
- Коришћење наредбе СЕЛЕЦТ
Клонирање столова помоћу ЛИКЕ ЦОММАНД
Командом ЛИКЕ можете да креирате нову табелу са потпуно истим именима и својствима колона као постојеће табеле.
Ево синтаксе помоћу команде ЛИКЕ.
како додати елементе у низ Јава
CREATE TABLE tableName1 LIKE tableName2
Помоћу горње наредбе креирала би се нова табела тј. ТаблеНаме1 са истом структуром и својствима таблеНаме2.
Имајте на уму да се код овог приступа клонирају само имена и својства колона, а не и стварни подаци табеле.
Покушајмо да направимо табелу која се зове воркер_детаилс и помоћу ове табеле направимо нову табелу која се зове студент_детаилс помоћу опције ЛИКЕ.
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;
Доље је дат исход горње наредбе.
Клонирање табеле помоћу СЕЛЕЦТ ЦОММАНД
Овај приступ користи наредбу СЕЛЕЦТ за креирање копије постојеће табеле у нову табелу.
Овим приступом подаци из табеле се такође копирају у нову табелу.
CREATE TABLE tableName1 AS SELECT * FROM tableName2;
Покушајмо да направимо табелу названу воркер_детаилс и помоћу ове табеле направимо нову табелу која се зове студент_детаилс помоћу опције СЕЛЕЦТ.
CREATE TABLE SAMPLE_DB.student_details AS SELECT * FROM SAMPLE_DB.employee_details;
Конвенције о именовању табела МиСКЛ
У претходним одељцима смо научили о стварању табела МиСКЛ. Сада да видимо нека правила која треба имати на уму приликом именовања табела заједно са ограничењима која се примењују на МиСКЛ.
Ове конвенције / правила важе за обе СКЛ табеле, као и за базе података.
# 1) Правни знакови у именима
до) Ненаведена имена могу се састојати од било којих знакова у подразумеваном скупу знакова СКЛ Сервера, с изузетком да сви знакови не могу бити цифре. На пример, „23тест“ је важеће име табеле, али не и „2345“.
Доље је дата листа знакова која се могу користити за имена без цитата:
АСЦИИ: [0-9, а-з, А-З $ _] (основна латинична слова, цифре 0-9, долар, доња црта)
Проширено: У + 0080 .. У + ФФФФ
Сазнајте више о АСЦИИ кодовима овде
б) Имена табела и базе података могу се наводити са знаком за повратни знак (`) и могу садржати било које слово / знак осим самог знака за повратни знак. Са наведеним именима можете чак имати и имена табела / база података која имају све цифре.
Имајте на уму да бисте за такве табеле морали користити повратне знакове око табеле и / или име базе података за приступ подацима унутар таквих табела.
ц) Имена табела и база података не могу садржати тачку „.“, Јер се она користи као база података и сепаратор табеле.
д) Називи базе података и табеле могу садржати - специјалне знакове „$“ и „_“.
# 2) Дужина имена
Максимална дозвољена дужина за име базе података или табеле у МиСКЛ је 64 ликова.
# 3) Квалификације имена
Као што је разматрано у претходним одељцима, у МиСКЛ табела је увек у контексту са базом података чији је део. Стога, да бисте приступили табели, можете да користите потпуно квалификовано име табеле - што је ништа друго до комбинација имена базе података одвојених тачком, а затим именом колоне.
На пример, да бисте из базе података САМПЛЕ_ДБ изабрали све елементе из табеле „ЕМПЛОИЕЕ_ДЕТАИЛС“, можете да користите потпуно квалификовано име као у наставку.
SELECT * from SAMPLE_DB.EMPLOYEE_DETAILS;
Имена ДБ-а и табеле такође се могу навести као цитирани са повратним плочицама одвојено, као што је приказано у наставку.
SELECT * from `SAMPLE_DB`.`EMPLOYEE_DETAILS`;
Конвенције и најбоље праксе које се препоручују у индустрији око именовања табела и база података дате су у наставку.
- Именујте табеле и базе података малим словима - Ово генерално убрзава куцање и постављање упита у ДБ, посебно за оне који су укључени у свакодневно постављање упита у ДБ.
- Користите доње црте („_“) уместо размака у именима табела и дб - Ово чини имена читљивијим.
- Користите саморазумљива имена за табеле и базе података - На пример, табела која садржи детаље о запосленом може се именовати на различите начине, као што су запослени_информације, подаци_запосленика, запосленик, детаљи_запосленика, име_запосленика_ и адреса. Било би логично одабрати име које највише објашњава саму себе. На пример, можемо да изаберемо име табеле које ће бити запослени_детаљи или запослени_инфо. Иако је ово субјективна дискусија, око ње би се требало сложити више чланова тима који ће користити и створити ове целине.
- Избегавајте употребу бројева у именима база података и табела - Као сампле_дб_2, тест_табле_1 итд.
Често постављана питања и одговори
П # 1) Како створити табелу у МиСКЛ-у помоћу индекса?
отварање кмл датотеке у екцелу
Одговор: ИНДЕКС можете додати било којој колони (или комбинацији колона) током самог стварања табеле.
Погледајмо пример додавања индекса према колони_ид_одсека за табелу детаљи_детаила.
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) );
П # 2) Како направити табелу са датумом у МиСКЛ-у?
Одговор: Датум је тип података који треба да буде повезан са било којим ступцем приликом креирања табеле.
Погледајте доњу узорак наредбе ЦРЕАТЕ ТАБЛЕ са колоном јоининг_дате која има ДАТЕТИМЕ као тип података за узорак табеле воркер_детаилс.
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 );
П # 3) Како могу да видим структуру табеле у МиСКЛ-у?
Одговор: Након креирања табеле, ако желите да се упутите на структуру табеле попут колона, индекса итд., Можете користити наредбу ДЕСЦРИБЕ да бисте преузели детаље.
Синтакса:
DESCRIBE tableName;
Направимо табелу и видимо излаз за наредбу ДЕСЦРИБЕ.
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;
Доље је дат испис наредбе ДЕСЦРИБЕ.
П # 4) Како да додам СТРАНИ КЉУЧ табели у МиСКЛ?
Одговор: Страни кључ се користи за повезивање две табеле у МиСКЛ. Да бисте користили ограничење страног кључа, требало је да сте већ креирали табелу на коју се позивате.
>> Сазнајте више о Ограничење страног кључа МиСКЛ
Покушајмо ово да разумемо на примеру. Рецимо да имамо 2 табеле, тј. Одељење (које садржи детаље о различитим одељењима које колеџ има) и детаље о студентима (сви детаљи који се односе на студенте).
Одељење има колоне - ид (примарни кључ) и име.
Детаљи о студенту - ид (примарни кључ), старост, адреса и одељење_ид (страни кључ наведен из табеле одељења).
Доље је дата синтакса наредбе ЦРЕАТЕ ТАБЛЕ за обе ове табеле.
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 );
Погледајте синтаксу референци СТРАНИ КЉУЧ у табели студент_детаилс где смо поменули однос између колона и одсека_ид треба се референцирати ИД-ом колоне из табеле одељења.
Закључак
Овде је детаљно објашњено наредба ЦРЕАТЕ ТАБЛЕ у МиСКЛ која припада наредбама у категорији Језик за дефинисање података.
Сазнали смо о различитим опцијама табеле попут ЕНГИНЕ, ЦХЕЦКСУМ итд. Које се могу поменути заједно са наредбом ЦРЕАТЕ ТАБЛЕ да би се за табелу поставила додатна својства.
Прошли смо начине за стварање клона постојеће табеле у МиСКЛ-у. На крају, разговарали смо о конвенцијама именовања имена табела заједно са најбољим праксама које препоручује индустрија.
Срећно читање !!
Препоручено читање
- МиСКЛ Водич за креирање погледа са примерима кода
- Типови података МиСКЛ | Који су различити типови података у МиСКЛ-у
- МиСКЛ Убаци у табелу - Убаци синтаксу и примере изјаве
- МиСКЛ ЈОИН Туториал: Унутрашњи, спољашњи, попречни, леви, десни и сопствени
- Разлика између СКЛ Вс МиСКЛ Вс СКЛ Сервер (са примерима)
- Како се користи изјава ПЛ СКЛ за уметање, ажурирање, брисање и одабир
- МонгоДБ Водич за креирање базе података
- МонгоДБ Стварање корисника и додељивање улога са примерима