СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Теоретический материал для выполнения лабораторных работ по МДК 5.2 «Разработка кода информационных систем» специальности 09.02.07

Категория: Информатика

Нажмите, чтобы узнать подробности

Данный материал содержит теорию, необходимую для выполнения лабораторных работ по МДК 5.2 «Разработка кода информационных систем» профессионального модуля – 05 «Проектирование и разработка информационных систем» специальности СПО 09.02.07 "Информационные системы и программирование ", раздел "Разработка и администрирование БД".

Просмотр содержимого документа
«Теоретический материал для выполнения лабораторных работ по МДК 5.2 «Разработка кода информационных систем» специальности 09.02.07»

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

МУРМАНСКОЙ ОБЛАСТИ

Государственное автономное ПРОФЕССИОНАЛЬНОЕ образовательное учреждение

«Мурманский колледж экономики и информационных технологий»




ПРОФЕССИОНАЛЬНЫЙ МОДУЛЬ - 05

ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ИНФОРМАЦИОННЫХ СИСТЕМ


по специальности СПО 09.02.07

" Информационные системы и программирование "


МДК 5.2 РАЗРАБОТКА КОДА ИНФОРМАЦИОННЫХ СИСТЕМ


Раздел "Разработка и администрирование БД"




Теория

для выполнения лабораторных работ













Содержание


Введение

п.1 Операторы и команды MySQL для работы с Базой данных

п.2 Операторы и команды MySQL для работы с таблицей БД

п.3 Операторы MySQL для работы с записями таблицы БД

п.4 Оператор SELECT для извлечения записей из таблиц БД. Оператор для построения запросов

п.5 Создание представлений

п.6 Управляющие функции MySQL

п.7 Создание и вызов хранимых на сервере MySQL процедур и функций

п.8 Создание триггеров в MySQL

п.9 Транзакции в MySQL

п.10 Администрирование MySQL


Введение


СУБД MySQL является превосходным сервером БД. Основная причина её популярности – это быстрота (производительность) и стабильность. Система MySQL хорошо проверена и надёжна. MySQL является прекрасным инструментом изучения УБД, благодаря простоте использования, а также исключительно скромными требованиями к дисковому пространству и памяти. В MySQL используется двойная схема лицензирования: бесплатная и коммерческая.

Пользовательский интерфейс представляет собой «интерфейс командной строки», который называется «монитор MySQL». При установке MySQL по умолчанию устанавливается и Монитор MySQL.

Язык SQL (structured query language – язык структурированных запросов) разработан фирмой IBM в 1974 году и был принят Американским Национальным институтом стандартов (ANSI) в качестве национального стандарта США в 1992 году. Операторы SQL поддерживаются большинством СУБД. Язык SQL ориентирован на текст. Т.к. он был разработан задолго до появления графических интерфейсов пользователя, то для работы с ним требуется лишь текстовый редактор.

Этот язык представляет собой настолько удачную программную разработку для манипулирования данными реляционной модели, что в настоящее время он является наиболее распространенным программным продуктом такого рода.


Правила:

  1. Ключевые слова SQL не зависят от регистра

  2. [ ] не обязательный элемент в операторе или команде

  3. а | b надо понимать как «а или

  4. каждый оператор или команда заканчивается символом «;» (точка с запятой)

  5. любой оператор или команду можно записывать в одной строке или разместить на нескольких строках. Пока Вы не поставили «;» MySQL будет «думать» что Вы еще не закончили писать оператор и начнёт выполнять его только после того, как Вы поставите «;» и нажмёте Enter.



п.1 Операторы и команды для работы с Базой данных



  1. Создание базы данных

    CREATE DATABASE Имя_БД ;

  2. Вывод на экран всех имеющихся на сервере баз данных

    SHOW DATABASES ;

  3. Выбор БД для работы в ней

    USE Имя_БД ;

  4. Удаление БД

    DROP DATABASE Имя_БД ;



п.2 Операторы и команды для работы с таблицей БД




  1. Вывод на экран перечня имён существующих в БД таблиц

    SHOW Tables ;

  2. Создание таблицы БД

CREATE TABLE Имя_таблицы_БД ( Имя_поля Тип_поля
[
not nuLL | nuLL] [auto_increment] [primary key] , ... );


Типы полей таблицы:

Intцелые числа

auto_increment
floatдробные числа

dateзначение даты имеет тип «строка» (формат ГГ-ММ-ДД)

time (формат ЧЧ:ММ:СС)
varchar(кол-во_символов) – строки переменной длины

[
not null] – столбец не должен быть пустым
[
auto_increment] – при добавлении новой записи значение этого
поля автоматически увеличивается на 1

[primary key] – признак ключевого поля

Пример: Создадим таблицу Sport, в которой четыре поля

CREATE TABLE Sport (id Int not null auto_increment primary key , Fio varchar(40) , DMY date , Rost float );

  1. Вывод на экран структуры таблицы

    DESCRiBE Имя_таблицы_БД ;

  2. Изменение структуры таблицы, добавлением в неё нового поля

    ALTER TABLE Имя_таблицы ADD COLUMN Имя_нового_поля Тип_поля ;

    Пример:


ALTER TABLE SPORT ADD COLUMN VES FLOAT ;

  1. Изменение структуры таблицы, добавлением в неё индекса (индекс необходим для связи таблиц в базе данных)

    ALTER TABLE Имя_таблицы ADD INDEX Имя_индекса (Имя_поля по которому строится индекс) ;

    Пример:

    ALTER TABLE Sport ADD INDEX Ind_Fam(FIO) ;

  2. Изменение структуры таблицы, удалением из неё поля

    ALTER TABLE Имя_таблицы DROP COLUMN Имя_поля ;

  3. Изменение структуры таблицы, удалением из неё индекса

    ALTER TABLE Имя_таблицы DROP INDEX Имя_индекса ;


  1. Удаление всей информации из таблицы

    TRUNCATE TABLE Имя_таблицы ;



  1. Удаление таблицы

    DROP TABLE Имя_таблицы ;




п.3 Операторы для работы с записями таблицы БД



  1. Заполнение таблицы записями

    INSERT INTO Имя_таблицы VALUES
    ( значение_поля1 , значение_поля2, . . .),
    ( значение_поля1 , значение_поля2, . . .),
    . . . ;

    Пример:

    INSERT INTO Sport VALUES
    ( NULL, ’Сидоров’,'1992-07-23', 182.5, 82.2 ),
    ( NULL, ’Петров’, '1993-11-07', 179.5, 75.8 ) ;

  2. Изменение записи/записей в таблице

    UPDATE Имя_таблицы SET Имя_поля = значение WHERE условие ;

    Пример:

    UPDATE Sport SET Rost = 183 WHERE id = 2 ;

  3. Удаление записи/записей из таблицы

    DELETE FROM Имя_таблицы Where условие ;

    Пример:

    DELETE FROM Sport WHERE id = 2 ;





п.4 Оператор извлечения записей из таблиц БД.

Оператор SELECT для построения запросов


Для извлечения записей из таблиц БД используется оператор SELECT, с помощью которого строятся запросы. Запросы могут быть построены на основании одной таблицы БД или нескольких таблиц.

Чтобы построить запрос на основании нескольких таблиц, необходимо установить связь между этими таблицами.

Чтобы установить связь между таблицами БД, необходимо:

  1. Чтобы поля связи были названы одинаково;

  2. Чтобы типы полей связи были одинаковыми;

  3. Проиндексировать поле связи в ТОЙ таблице БД, в которой поле связи НЕ является ключевым.



  1. Вывод на экран ВСЕЙ информации из таблицы

    SELECT * FROM Имя_таблицы ;

  2. Вывод на экран информации из НЕКОТОРЫХ ПОЛЕЙ таблицы

    SELECT Имя_поля1, Имя_поля2, ... FROM Имя_таблицы ;

  3. Вывода на экран записей таблицы, удовлетворяющих условию

    SELECT Имя_поля1, Имя_поля2, ... FROM Имя_таблицы WHERE условие;

    ПРИ ЗАПИСИ УСЛОВИЯ МОЖНО ИСПОЛЬЗОВАТЬ:

    а) операции сравнения ( = , , , = , is not NULL )
    б) логические операции ( and , or , not)
    в) встроенные функции


ВСТРОЕННЫЕ ФУНКЦИИ

1)Числовые

ABS(n) – модуль числа N
N Mod m – остаток от деления

N div m – деление на цело

Power(n , m) – возводит n в степень М

Sqrt(n) – квадратный корень


2) функции обработки строк

СONCAT( s1, s2, ...) – объединение строк

Length(S) – длина строки

Like ‘%текст_для_поиска%’ – частичное вхождение в строку

RLike ‘^ текст_для_поиска’ – строка, которая начинается с
«текста для поиска»
RLike ‘текст_для_поиска$’ – строка, которая заканчивается
«текстом для поиска»

3) Функции даты

EXTRACT( YEAR FROM Имя_поля) – возвращает из даты год
EXTRACT( MONTH FROM Имя_поля) – возвращает из даты месяц
EXTRACT( DAY FROM Имя_поля) – возвращает из даты день

4) Группирующие Функции (МОГУТ использоваться с выражением
GROUP BY)

COUNT(поле) - количество записей
MiN(поле) – наименьшее значение в поле

MAX(поле) – наибольшее значение в поле

SUM(поле) – сумма значений в поле

AVG(поле) – среднее значение в поле


Замечание: Будьте внимательны, между Именем функции и её параметрами НЕ должно быть пробела!


Примеры:


а) вывести всех спортсменов, фамилия которых начинается с «Ан»: Антонов, Андреев, Анохин и т.д.

SELECT * FROM Sport WHERE fio RLike ‘^Aн’ ;

б) вывести всех спортсменов, фамилия которых заканчивается на «о»: Ильченко, Сусько, Михайличенко и т.д.

SELECT * FROM Sport WHERE fio RLike ‘о$’ ;

в) вывести всех спортсменов, фамилия которых содержит «ро»: Комаров, Сорокин, Воронин и т.д.

SELECT * FROM Sport WHERE fio Like ‘%ро%’ ;

г) вывести всех спортсменов, у которых не заполнено поле «рост»

SELECT * FROM Sport WHERE Rost is NULL ;

д) вывести всех спортсменов 1992 года рождения, фамилия которых начинается с «А»

SELECT * FROM Sport WHERE fio RLike ‘^A’ and
EXTRACT(YEAR FROM YMD)= 1992 ;

е) вывести на экран количество спортсменов, рост которых больше 180

SELECT COUNT(FiO) from Sport WHERE Rost 180;

ж) вывести на экран средний рост спортсменов

SELECT AVG(ROST) FROM Sport;

з) вывести на экран количество сотрудников


SELECT COUNT ( FiO ) FROM Sotrudniki ;


и) вывести на экран количество сотрудников каждой должности


SELECT Doljnost, COUNT ( FiO ) FROM Sotrudniki

GROUP BY Doljnost;


  1. При наличии группирующих функций можно использовать HAViNG

это аналогично WHERE но, применяется только для столбца созданного GROUP BY и записывается строго после него


Пример: SELECT gruppa, Sum(stip) FROM STUDENT Group by gruppa
HAViNG Sum(stip) 10000;


  1. Запрос, обеспечивающий сортировку записей в таблице по возрастанию

    SELECT * FROM Имя_таблицы ORDER BY Имя_поля_сортировки ASC;

    Пример:

    SELECT * FROM Sport ORDER BY Rost ASC;


  2. Запрос, обеспечивающий сортировку записей в таблице по убыванию

    SELECT * FROM Имя_таблицы ORDER BY Имя_поля_сортировки DESC;

    Пример:

    SELECT * FROM Sport ORDER BY Rost DESC;


  3. Ограничение числа записей, возвращаемых запросом
    SELECTFROM Имя_таблицы [WHERE условие] Limit число_строк ;

Пример: надо вывести первые пять записей из таблицы Sport


SELECT * FROM sport LiMiT 5 ;


Пример: надо пропустить 7 первых записей и вывести три следующие, т.е. 8, 9 и 10-ую записи из таблицы Sport



SELECT * FROM sport LiMiT 7, 3 ;



  1. Запрос без повторений значений

    SELECT DiSTiNCT Имя_поля FROM Имя_таблицы [WHERE условие] ;

Пример: вывести количество неповторяющихся фамилий

SELECT count(DiSTiNCT fio) FROM sport ;


  1. Использование подзапросов

SELECT FROM

WHERE … (SELECT FROM WHERE ) ;


Пример: Вывести все даты, в которые была максимальная прибыль
от продажи товаров


SELECT Data_prod FROM MebeLMarket

WHERE Viruchka = (SELECT Max(Viruchka) FROM MebeLMarket) ;


  1. Запрос для вывода на экран информации из нескольких таблиц

    SELECT Имя_таблицы1.Имя_поля1, Имя_таблицы1.Имя_поля2,
    Имя_таблицы2.Имя_поля1, Имя_таблицы2.Имя_поля2, ...
    FROM Имя_таблицы1, Имя_таблицы2
    WHERE Имя_таблицы1.Поле_связи = Имя_таблицы2.Поле_связи
    [
    and условие ] ;


Пример:

SELECT Sotrudniki.Fio, Spravki.Nomer, Spravki.Data_vidachi
FROM
Sotrudniki , Spravki

WHERE Sotrudniki.Tab_N = Spravki.Tab_N ;



п.5 Создание представлений



Представление – это именованный объект базы данных, который хранится в базе данных и является результатом выполнения какого-то запроса.

Представления называют "виртуальными таблицами", т.к. представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему.

Используются представления для экономии времени (после создания представления отпадает необходимость опять строить какой-нибудь запрос, его можно выполнить любое количество раз в любое время, обратившись к представлению).


Оператор создания представления
CREATE VIEW Имя_представления AS

SELECT * FROM Имя_таблицы WHERE условие ;

Пример:

CREATE VIEW V1 AS SELECT * FROM Sport WHERE Ves 65 ;


Вывод представления
SELECT * FROM Имя_представления ;


Удаление представления
DROP VIEW Имя_представления ;




п.6 Управляющие функции MySQL


Управляющие функции MySQL можно использовать при построении запросов.


1) iF(условие, значение если условие true, значение если условие false)

Пример:


SELECT FiO,

iF (Rost 185,'основной состав', 'запасной состав') FROM SPORT;



2) CASE
WHEN условие1 THEN значение1

WHEN условие2 THEN значение2

...

ELSE значение

END


Пример:

SELECT FiO, CASE
WHEN (VES 50) and (VES лёгкий вес’

WHEN (VES 60) and (VES средний вес’

WHEN (VES 70) and (VES тяжёлый вес’

ELSE 'не участвует'

END

FROM SPORT ;


п.7 Создание и вызов хранимых на сервере MySQL

процедур и функций


Хранимая процедура - это процедура хранящаяся в базе данных на сервере.

Вывести список всех хранимых процедур в БД

SHOW PROCEDURE STATUS Where DB = ‘имя БД‘ ;

Создание простой процедуры

CREATE PROCEDURE Имя ([параметр тип, параметр тип, ...])оператор_SQL;

Примеры создания поцедур:

1) CREATE PROCEDURE Primer1(N float) SELECT * FROM SPORT
WHERE ROST N ;

2) CREATE PROCEDURE Primer2(N float, M float) SELECT * FROM SPORT
WHERE ROST N and VES

3) CREATE PROCEDURE Primer3(N int, M float ) UPDATE SPORT
SET ROST = M WHERE id = N ;

Вызов процедуры на выполнение


CALL Имя_процедуры ( значения );




Примеры вызова процедур:

1) CALL PRimer1(180.5);

2) CALL Primer2(180 , 80.5);

3) CALL Primer3(2, 190);


Хранимые процедуры, конечно, не очень полезны, если они содержат одно действие.

Если тело процедуры состоит БОЛЕЕ чем из одного действия, то необходимо:

  1. Выполнить команду DELIMITER которая меняет признак «конец оператора» с символа «точка с запятой» на любой другой символ.

  2. Тело процедуры должно быть заключено между ключевыми словами BEGIN и END.


Создание нового признака конца оператора

DELIMITER символ


!!! Обратите внимание на то, что в конце нет точки с запятой.

Пример: DELIMITER #


В хранимых процедурах можно определить локальные переменные оператором

DECLARE имя_переменной тип_переменной ;



Общий вид создания процедуры

CREATE PROCEDURE Имя ( [параметр тип, параметр тип, ... ])

BEGIN

[ DECLARE имя_переменной тип_переменной ] ;

[ DECLARE имя_переменной тип_переменной ] ;

. . .

оператор SQL ;

оператор SQL ;

. . .

END символ


Пример:


Mysql DELIMITER #

Mysql CREATE PROCEDURE primer4(P int)

BEGIN

DECLARE x INT ;

DECLARE y INT ;

SET y = 10 ;

SET x = P + y;

select x;

END #

Mysql CALL primer4 (5)#


На экран будет выведен результат 15.



Создание простой функции

CREATE FUNCTiON Имя([ параметр тип, параметр тип , ... ]) RETURNS тип_результата RETURN значение ;


Пример:


CREATE FUNCTiON Primer5( N Date ) RETURNS int

RETURN EXTRACT(DAY FROM N );


Вызов функции на выполнение


SELECT Имя_функции ( значения );


Пример: SELECT Primer5(‘1993-09-21’);


На экран будет выведен результат 21.



Общий вид создания функции

CREATE FUNCTiON Имя ([параметр тип, параметр тип , ...]) RETURNS тип

BEGIN

[ DECLARE имя_переменной тип_переменной ] ;

[ DECLARE имя_переменной тип_переменной ] ;

. . .

Оператор_SQL ;

Оператор_SQL ;

. . .

RETURN значение ;

END символ


Пример:


Mysql DELIMITER #

Mysql CREATE FUNCTiON primer6 (P Date) RETURNS VarChar(10)

BEGIN

DECLARE Y INT ;

DECLARE M INT ;

DECLARE D INT ;

DECLARE S VarChar(10) ;

SET y = EXTRACT( YEAR FROM P );

SET M = EXTRACT( MONTH FROM P );

SET D = EXTRACT( DAY FROM P );

SET S = CONCAT( D, ‘.’, M, ‘.’, Y );

RETURN S ;

END #

Mysql SELECT primer6 (‘1993-09-21’)#


На экран будет выведен результат 21.09.1993



Замечание: Если функция должна вернуть результат какого-то запроса к базе данных, то надо использовать переменную, в которую предварительно необходимо поместить результат запроса, с помощью оператора SET, а потом значение этой переменной вернуть из функции с помощью оператора RETURN.


Пример:


Mysql DELIMITER #

Mysql CREATE FUNCTiON primer7(P Float, N int) RETURNS FLOAT

BEGIN

SET @A = (SELECT AVG(ROST) FROM SPORT WHERE VES P and
EXTRACT(YEAR FROM DMY) = N);


RETURN @A ;

END #


Mysql SELECT primer7(70, 1992) #


На экран будет выведен средний рост спортсменов 1992 года рождения, вес которых превышает 70 кг



п.8 Создание триггеров в MySQL


Триггер – именованный объект БД (процедура), которая автоматически вызывается SQL-сервером при обновлении, удалении или добавлении новой записи в таблицу БД.

Общий вид создания триггера

CREATE TRIGGER имя_триггера время_триггера событие_срабатывания_триггера ON имя_таблицы FOR EACH ROW тело_триггера ;


ВРЕМЯ_ТРИГГЕРА


Определяет время свершения действия триггера. BEFORE означает, что триггер выполнится до события срабатывания триггера, а AFTER означает, что после.


СОБЫТИЕ_СРАБАТЫВАНИЯ_ТРИГГЕРА

INSERT при добавлении новой записи в таблицу

UPDATE при изменении записи

DELETE при удалении записи

!!! Для каждой таблицы в БД MySQL может быть не более, чем шесть триггеров.

В теле триггера при обращении к любому полю таблицы, перед именем поля ОБЯЗАТЕЛЬНО надо указывать NEW. или OLD.

NEW.Имя_поля – если этих данных НЕ было в таблице на момент

срабатывания триггера

OLD.Имя_поля – если эти данные БЫЛИ в таблице на момент

срабатывания триггера


Пример 1:


Пусть в таблице SPORT имеются поля VES и VES_Tochno.

Во время добавления новой записи в таблицу SPORT, пользователь в поле VES вводит данные, а значение для поля VES_Tochno вводится NULL.

Но при этом поле VES_Tochno должно заполняться автоматически (на 1 кг меньше, чем значение поля VES).


CREATE TRiGGER primer8 BEFORE iNSERT ON SPORT FOR EACH ROW

SET New. VES_Tochno = New.VES – 1 ;


Пример 2:


Предполагается, что существует таблица ARHiV c тремя полями: автоинкрементное ключевое, номер спортсмена и ФИО спортсмена.

Во время добавления новой записи в таблицу SPORT, автоматически должна добавляться и новая запись в таблицу ARHiV, и значения полей id и Fio должны записываться не только в таблицу SPORT, но и в таблицу ARHiV.


CREATE TRiGGER primer9 AFTER iNSERT ON SPORT FOR EACH ROW

INSERT INTO ARHiV VALUES (NULL, New.id, New.FiO) ;


Пример 3:


Предполагается, что существует таблица ARHiV_1

c тремя полями: автоинкрементное ключевое, номер спортсмена и ФИО спортсмена.

Во время удаления записи из таблицы SPORT,автоматически должна добавляться новая запись к таблице ARHiV_1 и значения полей id и Fio удаляемой из таблицы SPORT записи должны переноситься в таблицу ARHiV_1.



Первый способ решения:


CREATE TRiGGER primer10 BEFORE DELETE ON SPORT FOR EACH ROW

INSERT INTO ARHiV_1 VALUES (NULL, OLD.id, OLD.Fio) ;



Второй способ решения:


Mysql DELIMITER #

Mysql CREATE TRiGGER primer10 BEFORE DELETE ON SPORT FOR EACH ROW

BEGIN

SET @A = OLD.Fio ;

SET @B = OLD.id ;

INSERT INTO ARHiV_1 VALUES (NULL, @B, @A) ;

END #


Mysql DELIMITER ;



Пример 4:


Предполагается, что к таблице SPORT добавили поле Kategoriya (весовая категория спортсмена).

Во время добавления новой записи в таблицу SPORT,автоматически поле Kategoriya должно заполняться фразой «легкий вес» (если вес спортсмена менее 60 кг) или «тяжелый вес» (если вес спортсмена более 80 кг)


Mysql DELiMiTER #


Mysql CREATE TRiGGER primer18 BEFORE iNSERT ON SPORT

FOR EACH ROW

begin

if New.VesNew.Kategoriya = ‘легкий вес’ ;

End iF;

if New.Ves80 Then SET New.Kategoriya = ‘тяжелый вес’ ;

End iF;

End #


Удаление триггера

DROP TRIGGER имя_триггера ;


Вывести все триггеры

SHOW TRIGGERS ;


п.9 Транзакции в MySQL


Транзакция – это последовательность операций, которые рассматриваются как одна неделимая единица.

Транзакция будет успешной, если успешно выполнятся ВСЕ операции, входящие в её состав.

При возникновении ошибки хотя бы В ОДНОЙ операции – вся транзакция считается неуспешной, и результаты всех операций отменяются.

Оператор открывающий транзакцию START TRANSACTION ;

Для завершения транзакции и внесения всех изменений в базу данных используют COMMIT ;

По умолчанию MySQL работает в режиме AUTOCOMMIT. Это означает, что результаты выполнения любого SQL-оператора, изменяющего данные, будут сразу сохраняться.

Режим AUTOCOMMIT можно отключить командой SET AUTOCOMMIT = 0.

Пример:


Mysql DELIMITER #

Mysql CREATE procedure primer11( N int )

BEGIN

SET AUTOCOMMIT = 0 ;

START TRANSACTION ;

UPDATE SPORT SET VES = VES - N ;

COMMiT ;

SELECT * FROM SPORT ;

END #


Mysql DELIMITER ;

Mysql CALL primer11(2) ;

п.10 Администрирование MySQL

1 Управление учётными записями пользователя

1.1 Создание учётной записи

CREATE USER имя_пользователя;

1.2 Удаление учётной записи

DROP USER имя_пользователя ;



2 Изменение пароля

2.1 Пользователь сам может изменить свой пароль с помощью команды

SET PASSWORD = PASSWORD( ' новый_пароль ' ) ;

2.2 Мы можем изменить пароль пользователя с помощью команды

SET PASSWORD FOR имя_пользователя = PASSWORD ( ' пароль ' ) ;



  1. Управление правами пользователей

3.1 Предоставление привилегий

G RANT привилегия, ..., ... ON объект TO имя_пользователя WiTH GRANT OPTiON ;



это специальная Необязательная привилегия, разрешающая пользователю предоставлять свои привилегии другим

объектом, на доступ к которому предоставляются права может быть:

* - привилегии будут предоставлены на текущую (выбранную в данный момент) БД, если никакая БД не выбрана, то воспринимается аналогично *.*

*.* - все БД и все таблицы

имя_БД.* - все таблицы указанной БД

имя_БД.имя_таблицы

Привилегии:

CREATE разрешается создавать таблицы

DELETE разрешается удалять запись

EXECUTE разрешается выполнять процедуры

iNDEX разрешается создавать индексы

iNSERT разрешается вставлять записи

SELECT разрешается делать выборку

UPDATE разрешается обновлять записи

USAGE разрешается только вход в систему

ALTER разрешается изменять структуру таблиц

DROP разрешается удалять таблицы

ALL пользователь будет иметь все права, кроме WiTH GRANT OPTiON

и т.д.

Примеры:

GRANT SeLect ON BD_SKLAD.* TO User4 WiTH GRANT OPTiON ;

GRANT UpDate, insert ON BD_SKLAD.TTN TO User4 ;

GRANT UpDate( KoL_vo ) ON BD_SKLAD.TOVAR TO User4 ;
// привилегия может относиться только к
конкретному полю таблицы БД



3.2 Отмена предоставленных привилегий

REVOKE привилегия, привилегия, ... ON объект FROM имя_пользователя ;



3.3 Информация о предоставленных привилегиях

SHOW GRANTS FOR имя_пользователя ;



23