Felhasználói eszközök

Eszközök a webhelyen


mysql:my-4

Зміна структури таблиць. Режими взаємодії клієнта з сервером

Команда ALTER TABLE
Добавлення нового стовпця:

     ALTER TABLE <Ім’я таблиці> ADD <Ім’я стовпця> <Тип стовпця> [<Властивості стовпця>] 
     [FIRST або AFTER <Ім’я попереднього стовпця>]; 

Новий стовпець записується останнім у списку стовпців. Але його місце можна задати опцією:
FIRST – новий стовпець буде першим
AFTER – буде розміщений після вказаного попереднього стовпця.

Добавлення в таблицю типу MyISAM повнотекстового індексу командою:

  ALTER TABLE <Ім’я таблиці> ADD FULLTEXT [<Ім’я индексу>]
 (<Список стовпців>); 

Зміна властивостей таблиці:
Зміна (або задання) опціональних властивостей таблиці

  ALTER TABLE <Ім’я таблиці> <властивість таблиці>; 
  ALTER TABLE <Ім’я таблиці> ENGINE <Новий тип таблиці>;

Зміна кодування і правила порівняння символьних стовпців, які будуть створені після цієї команди

  ALTER TABLE <Ім’я таблиці> CHARACTER SET <Ім’я кодування> [COLLATE <Ім’я правила порівняння>]; 

Нове кодування для вже існуючих символьних стовпців таблиці

   ALTER TABLE <Ім’я таблиці>  CONVERT TO CHARACTER SET <Ім’я кодування>   [COLLATE <Ім’я правила порівняння>]; 

Зміна властивостей стовпців
Повна зміна опису стовпця:

  ALTER TABLE <Ім’я таблиці>  CHANGE <Ім’я стовпця >  <Нове ім’я стовпця>  <Новий тип > [<Властивості стовпця>]  
   [FIRST або AFTER < Ім’я попереднього стовпця>]; 

Зміна опису стовпця без перейменування:

   ALTER TABLE <Ім’я таблиці>  MODIFY <Ім’я стовпця> <Новий тип стовпця> [<Властивості стовпця>] [FIRST або AFTER 
    < Ім’я попереднього стовпця>]; Встановлення значення по замовчуванню для стовпця: 
    ALTER TABLE <ім’я таблиці> ALTER <Ім’я стовпця> SET DEFAULT <Значення по замовчуванню>; 

Видалення значення по замовчуванню:

         ALTER TABLE <Ім’я таблиці> 
	ALTER <Ім’я стовпця> DROP DEFAULT; 

Видалення стовпця таблиці:

ALTER TABLE <Ім’я таблиці> DROP <Ім’я стовпця>; 

Крім того, стовпець одночасно видаляється з усіх індексів.
Видалення первинного ключа таблиці:

ALTER TABLE <Ім’я таблиці> DROP PRIMARY KEY; 

Видалення зовнішнього ключа таблиці:

ALTER TABLE <Ім’я таблиці> DROP FOREIGN KEY <Ім’я зовнішнього ключа>; 

Якщо при створенні зовнішнього ключа не було задане його ім’я, то воно формується автоматично. Отримати його можна командою

  SHOW CREATE TABLE.

Видалення індексу

ALTER TABLE <Ім’я таблиці> DROP INDEX <Ім’я індексу>; 

<Ім’я індексу> можна отримати за допомогою команди SHOW CREATE TABLE.

Додаткові можливості команди ALTER TABLE
Відключення (тимчасове) індексів

   ALTER TABLE <Ім’я таблиці> DISABLE KEYS;  

Відновлення індексів

   ALTER TABLE <Ім’я таблиці> ENABLE KEYS;  

Перейменування таблиці

    ALTER TABLE <Ім’я таблиці> RENAME <Нове ім’я таблиці>;

Упорядкування рядків таблиці (нова цікава можливість!!!)

    ALTER TABLE <Ім’я таблиці> ORDER BY <Ім’я стовпця 1> [ASC або DESC], [<Ім’я стовпця 2> [ASC або DESC],...];
Отримання інформації про таблиці

Список таблиць активної БД

    SHOW TABLES; 

Характеристики стовпців таблиці

    DESCRIBE <Ім’я таблиці>; 

Field – ім’я стовпця; Type – тип стовпця;
Null – YES – допускаються значення NULL:, NO – ні;
Key – стовпець міститься в ключі або індекси;
Default – значення по замовчуванню; Extra – додаткова інформація.

  SHOW CREATE TABLE <Ім’я таблиці>; 

Видає повну інформацію про таблицю у вигляді команди CREATE TABLE.
Розташування деяких основних компонентів MySQL

 C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe
 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini  

Режими взаємодії клієнта з сервером MySQL

  • строгий режим
  • нестрогий режим

Режим можна отримати за допомогою команди

  SHOW VARIABLES LIKE  'sql_mode'; 

При значенні STRICT_TRANS_TABLES або STRICT_ALL_TABLES сервер працює в строгому режимі, інакше – у нестрогому режимі.
Зміна режиму взаємодії для даного з'єднання

  • Встановлення нестрогого режиму SET SQL_MODE = '';
  • Встановлення строгого режиму SET SQL_MODE = 'STRICT_TRANS_TABLES'; або SET SQL_MODE = 'STRICT_ALL_TABLES';
  • SET GLOBAL SQL_MODE = '<Режим>'; – глобальний режим для всіх клієнтських додатків (до моменту перезапуску сервера).

Режими при команді INSERT

  INSERT [INTO] <Ім’я таблиці> [(<Список стовпців>)] VALUES 
   (<Список значень 1>), (<Список значень 2>), ... (<Список значень N>); 

Обробка некоректного значення залежить від режиму взаємодії клієнта з сервером MySQL. Виконання INSERT в обох режимах відміняється, якщо –

  • в первинний ключ або в унікальний індекс добавляється дублююче значення;
  • у зовнішній ключ добавляється значення, якого немає у первинному ключі батьківської таблиці.
  • дробові числа для стовпців цілого типу заокруглюються.

У строгому режимі для NOT NULL необхідно задати значення.
Виключення: стовпці з TIMESTAMP, ENUM і АUTO_INCREMENT (використовуються такі ж значення, що і в нестрогому режимі).

Виконання INSERT у нестрогому режимі

  • некоректна дата заміняється на (0000-00-00 00:00:00);
  • «зайві» символи відсікаються (Пр. для типу CHAR(3) ‘abcde’ перетвориться у ‘abс’);
  • велике число, яке не можна розмістити в полі, буде замінено на максимально можливе (!!!);
  • якщо не задано значення для NOT NULL, то вводиться:
для числових стовпців –  0, 
для AUTO_INCREMENT – наступний порядковий номер; 
для стовпців з типом дати і часу  (0000–0000 00:00:00),
для типу TIMESTAMP – системна дата і час; 
для символьних стовпців – порожній рядок,
для стовпця з типом ENUM – перший елемент списку.

Операція завершується успішно, але генерується відповідне попередження (див. команду SHOW WARNINGS).

Редагування даних в таблиці

Зміна даних в існуючих рядках таблиці:

  UPDATE <Ім’я таблиці>  SET <Ім’я стовпця 1> = <Значення 1>, 
    ...,  <Ім’я стовпця N> = <Значення N>  [WHERE <Умова відбору>] ; 

Зміна існуючих даних або добавлення рядків:

  REPLACE  [INTO] <Ім’я таблиці>  [(<Список стовпців>)]
    VALUES  (<Список значень 1>),  (<Список значень 2>), 
    ...  (<Список значень N>); 

Якщо в даних, які вставляються в таблицю командою REPLACE, первинний ключ (унікальний індекс) співпадає з одним з вже існуючим значенням, то має місце заміна цього рядка (UPDATE). Інакше команда REPLACE виконується, як INSERT.

        REPLACE = {INSERT or UPDATE} 
mysql/my-4.txt · Utolsó módosítás: 2021/08/09 16:10 szerkesztette: holovacs