Клиентское приложение – это приложение, база данных которого находится на одном устройстве к которому нельзя подключиться Отношение – это сама таблица Атрибут – это столбец Картеж – это строка таблицы В СУБД можно создавать бд, таблицы, схемы, последовательность, функцию, процедуру, триггер. DDL – data definition language В указанный выше язык входят операторы выполняющиеся с объектами: Create Alter drop SQL делится на DDL ( указанный выше ) и DML В DML входят операторы выполняющиеся с данными: INSERT UPDATE DELETE SELECT SCHEMA – позволяет отделять объекты от базы данных CREATE DATABASE название базы данных; CREATE TABLE название таблицы (атрибуты таблицы); Любая таблица должна быть создана с первичным ключом!!! Доменные ограничения – fio varchar ( 50 ) NOT NULL. Данное поле может быть пустым. ( если поле может быть пустым, то можно ничего не писать, потому что автоматически стоит значение NULL ) Есть еще доменное ограничение default, если ввести fio varchar(50) default 1 , то если в строке не будет указанно ничего под данным атрибутом, то автоматически будет выводится 1. Из одной таблицы база данных состоять не может. Поэтому необходимо создать дочернюю таблицу. ( не торопись писать это тот, кто читает ) --------------------------------------------------------------------Создаем первую таблицу. CREATE TABLE STUD ( id int, fio varchar(50) NOT NULL, birthday date, ngroup default 1); Создаем вторую таблицу. CREATE TABLE GROUP ( id int, name varchar (10), curator varchar(50)); ----------------------------------------------------------------------Дочерняя таблица это та, которая обращается к другой. Другая в таком случае является родительской. Первичный ключ дает уникальность каждой записи. Id в таком случае необходимо сделать уникальным идентификатором. Если просто написать id int, то есть вероятность, что он может повториться и его уникальность пропадёт. Чтобы назначит id первичным ключом необходимо наложить ограничение: CONSTRAINT название ограничения PRTMARY KEY (id), Эта команда относится именно к первой таблице!!! Нужно указать, что мы работаем именно с той таблицей к которой мы это пишем. После прописи этой команды мы уже создаем вторую таблицу и к ней прописываем такую же команду со вторичным ключом. CONSTRAINT fk_stud_group FOREIGN KEY (ngroup) REFERENCES GROUP (ngroup); Это вторичный ключ по которому мы будем связываться между таблицами. REFERENCES тут – это связь с родительской таблицей т.е. с GROUP, связь происходит через ngroup. И теперь как выглядит наш код: --------------------------------------------------------------------Создаем родительскую таблицу. CREATE TABLE GROUP ( id int, name varchar (10), curator varchar(50, ngroup int default 1)); Делаем первичный ключ для родительской таблицы CONSTRAINT number_group PRTMARY KEY (ngroup) Создаём дочернюю таблицу. CREATE TABLE STUD ( id int, fio varchar(50) NOT NULL, birthday date, ngroup default 1); Делаем первичный ключ CONSTRAINT idshka PRTMARY KEY (id) Делаем вторичный ключ CONSTRAINT fk_stud_group FOREIGN KEY (ngroup) REFERENCES GROUP (ngroup) ----------------------------------------------------------------------А что делать, если мы хотим с несколькими таблицами? Допустим мы хотим добавить таблицу “Родители”. Тогда нам нужно связать таблицу студентов с таблицей “Родителей”. Тогда мы просто создаем таблицу родителей и пишем ограничение вторичного ключа: CONSTRAINT fk_stud_rod FOREIGN KEY (idp) REFERENCES roditel (idp); --------------------------------------------------------------------Создаем родительскую таблицу. CREATE TABLE GROUP ( id int, name varchar (10), curator varchar(50, ngroup int default 1)); Делаем первичный ключ для родительской таблицы CONSTRAINT number_group PRTMARY KEY (ngroup); Создаем вторую родительскую таблицу CREATE TABLE roditel ( idp int, fio varchar (10), number_passport varchar(10)); CONSTRAINT rod PRTMARY KEY (idp); Создаём дочернюю таблицу. CREATE TABLE STUD ( id int, fio varchar(50) NOT NULL, birthday date, ngroup default 1, idp int); Делаем первичный ключ CONSTRAINT idshka PRTMARY KEY (id); Делаем вторичный ключ CONSTRAINT fk_stud_group FOREIGN KEY (ngroup) REFERENCES GROUP (ngroup); Делаем вторичный ключ для таблицы с родителями CONSTRAINT fk_stud_rod FOREIGN KEY (idp) REFERENCES roditel (idp) ----------------------------------------------------------------------Таблица может быть как родительской, так и дочерней одновременно, если к ней обращается другая таблица. Родительских таблиц, как и дочерних, может быть сколько угодно. Это было первое задание в Лабораторной работе. Во второй лабораторной работе у нас по мимо CREATE появляется еще ALTER и DROP. Они пишутся также по отношениям к объекту. Если мы хотим удалить таблицу необходимо написать DROP TABLE STUD; Если вдруг мы удалим таблицу у которой была связь, то естественно связь оборвётся и данные пропадут: CONSTRAIN fk_stud_group FOREIGN KEY (ngroup) REFERENCES GROUP (ngroup) Теперь если мы напишем DROP TABLE GROUP, то связь нарушится и полезут ошибки. Если мы хотим этого избежать, то при создании ограничения нам нужно дописать CONSTRAIN fk_stud_group FOREING KEY ( ngroup) REFERENCES GROUP (ngroup) ON DELETE NO ACTION Таким образом, если мы после этого напишем DROP TABLE GROUP у нас вылезет ошибка и мы не сможем её удалить. Есть еще возможность удалить/изменить все связанное с помощью CASCADE. Т.е. если мы захотим удалить, или удалить ngroup они изменятся все, либо все удаляться Есть еще возможность изменить таблицу с помощью команды ALTER. Мы можем добавлять новые атрибуты, можем удалять те, что уже существуют, а также изменять ограничения. В отличии от CASCADE это будет только в рамках одной таблицы и никак не затронет связи. Допустим я хочу у таблицы STUD добавить атрибут стипендии. Я пишу: Add column stipendia int. Когда я захочу удалить я напишу drop column stipendia. Если я хочу удалить ограничение, то я прописываю DROP CONSTRAIN fk_stud_group. Помимо всего выше приведенного я могу еще модифицировать атрибуты ( сменить тип данных, изменить доменное ограничение (NULL/NOT NULL)). С помощью ALTER TABLE STUD мы именно входим в режим изменения таблицы. Как допустим выбираем какую-либо базу данных, или работу с таблицей. Чтобы выйти из изменения таблицы нужно написать в конце точку с запятой ( ; )