Создание базы данных. Transact-SQL - создание базы данных Определения основных понятий

В организации базы данных задействуется большое число различных объектов. Все объекты базы данных являются либо физическими, либо логическими. Физические объекты связаны с организацией данных на физических устройствах (дисках). Физическими объектами компонента Database Engine являются файлы и файловые группы. Логические объекты являются пользовательскими представлениями базы данных. В качестве примера логических объектов можно назвать таблицы, столбцы и представления (виртуальные таблицы).

Объектом базы данных, который требуется создать в первую очередь, является сама база данных. Компонент Database Engine управляет как системными, так и пользовательскими базами данных. Пользовательские базы данных могут создаваться авторизованными пользователями, тогда как системные базы данных создаются при установке СУБД.

Для создания базы данных используется два основных метода. В первом методе задействуется обозреватель объектов среды SQL Server Management Studio, как было показано ранее, а во втором применяется инструкция языка Transact-SQL CREATE DATABASE . Далее приводится общая форма этой инструкции, а затем подробно рассматриваются ее составляющие:

CREATE DATABASE db_name { file_spec1} ,...] Соглашения по синтаксису

Параметр db_name - это имя базы данных. Имя базы данных может содержать максимум 128 символов. Одна система может управлять до 32 767 базами данных. Все базы данных хранятся в файлах, которые могут быть указаны явно администратором или предоставлены неявно системой. Если инструкция CREATE DATABASE содержит параметр ON , все файлы базы данных указываются явно.

Компонент Database Engine хранит файлы данных на диске. Каждый файл содержит данные одной базы данных. Эти файлы можно организовать в файловые группы. Файловые группы предоставляют возможность распределять данные по разным приводам дисков и выполнять резервное копирование и восстановление частей базы данных. Это полезная функциональность для очень больших баз данных.

Параметр file_spec1 представляет спецификацию файла и сам может содержать дополнительные опции, такие как логическое имя файла, физическое имя и размер. Параметр PRIMARY указывает первый (и наиболее важный) файл, который содержит системные таблицы и другую важную внутреннюю информацию о базе данных. Если параметр PRIMARY отсутствует, то в качестве первичного файла используется первый файл, указанный в спецификации.

Учетная запись компонента Database Engine, применяемая для создания базы данных, называется владельцем базы данных . База данных может иметь только одного владельца, который всегда соответствует учетной записи. Учетная запись, принадлежащая владельцу базы данных, имеет специальное имя dbo . Это имя всегда используется в отношении базы данных, которой владеет пользователь.

Опция LOG ON параметра dbo определяет один или более файлов в качестве физического хранилища журнала транзакций базы данных. Если опция LOG ON отсутствует, то журнал транзакций базы данных все равно будет создан, поскольку каждая база данных должна иметь, по крайней мере, один журнал транзакций. (Компонент Database Engine ведет учет всем изменениям, которые он выполняет с базой данных. Система сохраняет все эти записи, в особенности значения до и после транзакции, в одном или более файлов, которые называются журналами транзакций. Для каждой базы данных системы ведется ее собственный журнал транзакций.)

В опции COLLATE указывается порядок сортировки по умолчанию для базы данных. Если опция COLLATE не указана, базе данных присваивается порядок сортировки по умолчанию, совершенно такой же, как и порядок сортировки по умолчанию системы баз данных.

В опции FOR ATTACH указывается, что база данных создается за счет подключения существующего набора файлов. При использовании этой опции требуется явно указать первый первичный файл. В опции FOR ATTACH_REBUILD_LOG указывается, что база данных создается методом присоединения существующего набора файлов операционной системы.

Компонент Database Engine создает новую базу данных по шаблону образцовой базы данных model. Свойства базы данных model можно настраивать для удовлетворения персональных концепций системного администратора. Если определенный объект базы данных должен присутствовать в каждой пользовательской базе данных, то этот объект следует сначала создать в базе данных model.

В примере ниже показан код для создания простой базы данных, без указания дополнительных подробностей. Чтобы исполнить этот код, введите его в редактор запросов среды Management Studio и нажмите клавишу .

USE master; CREATE DATABASE SampleDb;

Код, приведенный в примере, создает базу данных, которая называется SampleDb. Такая сокращенная форма инструкции CREATE DATABASE возможна благодаря тому, что почти все ее параметры имеют значения по умолчанию. По умолчанию система создает два файла. Файл данных имеет логическое имя SampleDb и исходный размер 2 Мбайта. А файл журнала транзакций имеет логическое имя SampleDb_log и исходный размер 1 Мбайт. (Значения размеров обоих файлов, а также другие свойства новой базы данных зависят от соответствующих спецификаций базы данных model.)

В примере ниже показано создание базы данных с явным указанием файлов базы данных и журнала транзакций:

USE master; CREATE DATABASE Projects ON (NAME=projects_dat, FILENAME = "D:\projects.mdf", SIZE = 10, MAXSIZE = 100, FILEGROWTH = 5) LOG ON (NAME=projects_log, FILENAME = "D:\projects.ldf", SIZE = 40, MAXSIZE = 100, FILEGROWTH = 10);

Созданная в примере база данных называется Projects. Поскольку опция PRIMARY не указана, то первичным файлом предполагается первый файл. Этот файл имеет логическое имя projects_dat и он сохраняется в дисковом файле projects.mdf. Исходный размер этого файла 10 Мбайт. При необходимости, система выделяет этому файлу дополнительное дисковое пространство в приращениях по 5 Мбайт. Если не указать опцию MAXSIZE или если этой опции присвоено значение UNLIMITED, то максимальный размер файла может увеличиваться и будет ограничиваться только размером всего дискового пространства. (Единицу размера файла можно указывать с помощью суффиксов KB, TB и MB, означающих килобайты, терабайты и мегабайты соответственно. По умолчанию используется единица размера MB, т.е. мегабайты.)

Кроме файла данных создается файл журнала транзакций, который имеет логическое имя projects_log и физическое имя projects.ldf. Все опции спецификации файла журнала транзакций имеют такие же имена и значения, как и соответствующие опции для спецификации файла данных.

В языке Transact-SQL можно указать конкретный контекст базы данных (т.е. какую базу данных использовать в качестве текущей) с помощью инструкции USE . (Альтернативный способ - выбрать имя требуемой базы данных в раскрывающемся списке Database (Базы данных) в панели инструментов среды SQL Server Management Studio.)

Системный администратор может назначить пользователю текущую базу данных по умолчанию с помощью инструкции CREATE LOGIN или инструкции ALTER LOGIN. В таком случае пользователям не нужно выполнять инструкцию USE, если только они не хотят использовать другую базу данных.

Создание моментального снимка базы данных

Кроме создания новой базы данных, инструкцию CREATE DATABASE можно применить для получения моментального снимка существующей базы данных (база данных-источник). Моментальный снимок базы данных является согласованной с точки зрения завершенных транзакций копией исходной базы данных на момент создания моментального снимка. Далее показан синтаксис инструкции для создания моментального снимка базы данных:

Таким образом, чтобы создать моментальный снимок базы данных, в инструкцию CREATE DATABASE нужно вставить предложение AS SNAPSHOT OF . В примере ниже иллюстрируется создание моментального снимка базы данных SampleDb и сохранения его в папке D:\temp. (Прежде чем выполнять этот пример, нужно создать данный каталог.)

USE master; CREATE DATABASE SampleDb ON (NAME = "SampleDb_Data" , FILENAME = "D:\temp\snapshot_DB.mdf") AS SNAPSHOT OF SampleDb;

Моментальный снимок существующей базы данных - это доступная только для чтения копия базы данных-источника, которая отражает состояние этой базы данных на момент копирования. (Таким образом, можно создавать множественные моментальные снимки существующей базы данных.) Файл моментального снимка (в примере выше это файл D:\temp\snapshot_DB.mdf) содержит только измененные данные базы данных-источника. Поэтому в коде для создания моментального снимка необходимо указывать логическое имя каждого файла данных базы данных-источника, а также соответствующие физические имена.

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

Моментальные снимки баз данных можно создавать только на дисках с файловой системой NTFS (New Technology File System - файловая система новой технологии), т.к. только эта файловая система поддерживает технологию разреженных файлов, применяемую для хранения моментальных снимков.

Моментальные снимки баз данных обычно применяются в качестве механизма предохранения данных от искажения.

Присоединение и отсоединение баз данных

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

Для отсоединения базы данных от сервера баз используется системная процедура sp_detach_db . (Отсоединяемая база данных должна находиться в однопользовательском режиме.)

Для присоединения базы данных используется инструкция CREATE DATABASE с предложением FOR ATTACH. Для присоединяемой базы данных должны быть доступными все требуемые файлы. Если какой-либо файл данных имеет путь, отличающийся от исходного пути, то для этого файла необходимо указать текущий путь.

База данных - это физический объект на диске сервера представляющий из себя связанные таблицы. Для создания существует два метода:

  • С помощью инструкций Transact-SQL;
  • Средствами графической среды MS SQL Server.

Они рассмотрены в соответствующих разделах ниже.

Средствами обозревателя объектов MSSMS

Для возможности создания баз этим способом запустите MS SQL Server Management Studio и у становите соединение с сервером.

Для создания, удаления и модификации баз данных через графическую среду в MSSMS предназначен обозреватель объектов. При настройках по-умолчанию находится прикрепленный к левому краю области программы.

Как видно на рисунке выше на сервере уже созданы 4 системные базы данных: master, model, msdb и tempdb. Добавим к ней еще одну, пользовательскую:

  1. Щёлкните правой кнопкой по пункту «База данных».
  2. В контекстном меню выберите «создать базу данных» (верхняя строка).

Откроется мастер создания баз данных.

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

Шаг увеличения - это порог размера, при превышении которого база будет автоматически увеличена в 2 раза.

Средствами Transact SQL

Для создания баз данных в Transact SQL предназначена инструкция CREATE DATABASE . Ее обобщенная форма представлена ниже:

CREATE DATABASE testdb { file_spec1} ,...]

Конструкция CREATE DATABASE состоит из 4 необязательных блока. Обязательно лишь указывать имя новой базы данных (БД), в нашем случае - testdb . Согласно синтаксически правилам MS SQL Server имя БД не может быть длиннее 128 символов.

Инструкция после выполнения создаст файл базы данных на диске. MS SQL Server поддерживает 32 767 баз данных (215). Шаблон для формирования пустой базы инструкция берет из системной базы данных model.

ON указывает что файл базы данных указывается явно. Если его не использовать, система сделает это сама неявно. Параметр PRIMARY указывает на файл системных таблиц, если не указан, то выбирается первый в списке файл.

LOG ON создает системных журнал или файл транзакций, в который записываются все изменения в базе данных, для возможности ее восстановления при сбое. Если не указан, будет создан все равно.

В опции COLLATE программист может указать способ сортировки БД. Если не указан используется способ сортировки по умолчанию.

FOR ATTACH позволяет присоединить к создаваемой базе уже существующий набор данных. Если указать параметр ATTACH_REBUILD_LOG, вместо ATTACH - то присоединится набор данных операционной системы.

Пример использования :

USE master; GO CREATE DATABASE test ON (NAME = Sales_dat, FILENAME = "C:\Briarius\MSSQLBASES\testdat.mdf", SIZE = 20, MAXSIZE = 120, FILEGROWTH = 5) LOG ON (NAME = Sales_log, FILENAME = "C:\Briarius\MSSQLBASES\testlog.ldf", -- Файл транзакций и путь к нему. SIZE = 10MB, -- размер в мегабайтах, указано явно. MAXSIZE = 100MB, -- максимальный размер в мегабайтах. FILEGROWTH = 5MB) ; GO

Обратите внимание на блоки опций ON и LOG ON, они практически одинаковы. Разница в том, что первая задает сам файл базы, вторая - файл транзакций. Параметр FILENAME указывается потому, что опушен PRIMARY. Допустимо указывать несколько файлов баз и несколько журналов транзакций.

Инструкция USE используется чтобы задать текущую базу данных. Сейчас это - master.

Go группирует запрос по пакетам и позволяет выполнить каждый из них столько раз сколько указано в ее параметре. Например, GO (5) - пять раз. Ее использование, то есть разбивка кода по пакетам - хороший стиль программирования - группирует блоки и всегда можно вписать параметр, в зависимости от того сколько раз код должен быть выполнен.

  • Tutorial

Всем привет! Меня зовут Олег и я программист-любитель под Android. Любитель потому что в данный момент я зарабатываю деньги программированием в совсем другом направлении. А это хобби, которому я посвящаю свое свободное время. К сожалению у меня нет знакомых программистов под Android и все свои базовые знания я черпаю либо из книг, либо из интернета. Во всех тех книжках и статьях в интернете, которые я читал, созданию базы данных для приложения отводится крайне мало места и по сути все описание сводится к созданию класса являющегося наследником SQLiteOpenHelper и последующему внедрению SQL кода в Java код. Если не считать, что мы получаем плохо читаемый код (а если в нашем приложении появляется больше 10 таблиц, то вспоминать все эти взаимосвязи между таблицами тот еще ад), то в принципе жить можно конечно, но как-то совершенно не хочется.
Забыл сказать самое главное, можно сказать что это моя проба пера тут. И так поехали.

О вечном вопросе: почему?

Почему в книгах и в статьях, посвященных программированию под Android, не описываются инструменты для проектирования архитектуры базы данных и какие-нибудь паттерны для работы с базами данных на этапе их создания я честно говоря не знаю. Казалось бы добавить всего пару страниц в книгу или написать отдельную статью (как делаю это я сейчас) проще простого - но нет. В этой статье, я кратко пройдусь по инструментам, которые я использую в своей работе и более подробно по коду который отвечает за начальное создание БД, который с моей точки зрения выглядит более читаемым и удобным.


Если в нашем приложении больше 5 таблиц, то уже было бы не плохо использовать какой-нибудь инструмент для визуального проектирования архитектуры БД. Поскольку для меня это хобби, то и использую я абсолютно бесплатный инструмент под названием Oracle SQL Developer Data Modeler (скачать его можно ).

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

Спроектировав саму архитектуру, приступаем к более нудной части, заключающийся в созданий sql кода для создания таблиц. Для помощи в этом вопросе, я уже использую инструмент под названием SQLiteStudio (его в свою очередь можно скачать тут ).

Данный инструмент является аналогом таких известных продуктов как SQL Naviagator, Toad etc. Но как следует из названия, заточен он под работу с SQLite. Он позволяет визуально создать БД и получить DDL код создаваемых таблиц. Кстати, он также позволяет создавать представления (View), которые вы тоже при желании можете использовать в своем приложении. Не знаю насколько правильный подход использования представлений в программах для Android, но в одном из своих приложений я использовал их.

Собственно говоря я больше не каких сторонних инструментов не использую, и дальше начинается магия с Android Studio. Как я уже писал выше, если начать внедрять SQL код в Java код, то на выходе мы получим плохочитаемый, а значит и плохо расширяемый код. Поэтому я выношу все SQL инструкции во внешние файлы, которые у меня находятся в директории assets . В Android Studio выглядит это примерно так:


О директориях db и data

Внутри директории assets я создал две директории db_01 и data_01 . Цифры в названиях директорий соответствуют номеру версии моей БД с которой я работаю. В директории db у меня хранятся сами SQL скрипты создания таблиц. А в директории data хранятся данные необходимые для начального заполнения таблиц.


Теперь давайте посмотрим на код внутри моего DBHelper который я использую в своих проектах. Сначала переменные класса и конструктор (тут без каких либо неожиданностей):

Private static final String TAG = "RoadMap4.DBHelper"; String mDb = "db_"; String mData = "data_"; Context mContext; int mVersion; public DBHelper(Context context, String name, int version) { super(context, name, null, version); mContext = context; mVersion = version; }
Теперь метод onCreate и тут становится уже интереснее:

@Override public void onCreate(SQLiteDatabase db) { ArrayList tables = getSQLTables(); for (String table: tables){ db.execSQL(table); } ArrayList> dataSQL = getSQLDatas(); for (HashMap hm: dataSQL){ for (String table: hm.keySet()){ Log.d(TAG, "insert into " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(table)); } } }
Логически он разделен на два цикла, в первом цикле я получаю список SQL - инструкций для создания БД и затем выполняю их, во втором цикле я уже заполняю созданные ранее таблицы начальными данными. И так, шаг первый:

Private ArrayList getSQLTables() { ArrayList tables = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mDb + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String query; String line; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); query = ""; while ((line = bufferedReader.readLine()) != null){ query = query + line; } bufferedReader.close(); tables.add(query); } } catch (IOException e) { e.printStackTrace(); } return tables; }
Тут все достаточно просто, мы просто читаем содержимое файлов, и конкатенируем содержимое каждого файла в элемент массива. Обратите внимание, что я произвожу сортировку списка файлов, так как таблицы могут иметь внешние ключи, а значит таблицы должны создаваться в определенном порядке. Я использую нумерацию в название файлов, и с помощью нею и произвожу сортировку.

Private class QueryFilesComparator implements Comparator{ @Override public int compare(String file1, String file2) { Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2.compareTo(f1); } }
С заполнением таблиц все веселей. Таблицы у меня заполняются не только жестко заданными значениями, но также значениями из ресурсов и UUID ключами (я надеюсь когда-нибудь прийти к сетевой версии своей программы, что бы мои пользователи могли работать с общими данными). Сама структура файлов с начальными данными выглядит так:


Несмотря на то, что файлы у меня имеют расширение sql, внутри не sql код а вот такая штука:

Prioritys
pri_id:UUID:UUID

pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0
prioritys
pri_id:UUID:UUID

pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0

Структура файла такая: я выполняю вызов функции split(":") применительно к строчке и если получаю что ее размер равен 1 то значит это название таблицы, куда надо записать данные. Иначе это сами данные. Первое поле это название поля в таблице. Второе поле тип, по которому я определяю что мне надо в это самое поле записать. Если это UUID - это значит мне надо сгенерировать уникальное значение UUID. Если string значит мне надо из ресурсов вытащить строковое значение. Если color, то опять-таки, из ресурсов надо вытащить код цвета. Если int или text, то я просто преобразую данное значение в int или String без каких либо телодвижений. Сам код выглядит вот так:

Private ArrayList> getSQLDatas() { ArrayList> data = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mData + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String line; int separator = 0; ContentValues cv = null; String fields; String nameTable = null; String packageName = mContext.getPackageName(); boolean flag = false; HashMap hm; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); while ((line = bufferedReader.readLine()) != null){ fields = line.trim().split(":"); if (fields.length == 1){ if (flag == true){ hm = new HashMap<>(); hm.put(nameTable, cv); data.add(hm); } // наименование таблицы nameTable = line.trim(); cv = new ContentValues(); continue; } else { if (fields.equals("UUID")){ cv.put(fields, UUID.randomUUID().toString()); } else if (fields.equals("color") || fields.equals("string")){ int resId = mContext.getResources().getIdentifier(fields, fields, packageName); Log.d(TAG, fields + " " + resId); switch (fields){ case "color": cv.put(fields, resId); break; case "string": cv.put(fields, mContext.getString(resId)); break; default: break; } } else if (fields.equals("text")){ cv.put(fields, fields); } else if (fields.equals("int")){ cv.put(fields, Integer.parseInt(fields)); } } flag = true; } bufferedReader.close(); } } catch (IOException e) { e.printStackTrace(); } return data; }

От автора: Мы живем в век информации, поэтому людьми были разработаны достаточно удобные технологии для ее хранения. Сегодня я покажу вам, как создать базу данных на хостинге и зачем это вообще необходимо.

Я уже думаю, что вы и сами понимаете, для чего нужна БД – для хранения данных. При установке вручную любого движка от вас потребуется ее создание. Ну хорошо, а как же это сделать? Для этого есть как минимум 2 простых способа.

Создание БД через панель управления сервером

Пожалуй, это самый простой вариант. Любой хостинг предоставляет вам Cpanel или любую другую панель, чтобы управлять вашими сайтами. Там вы можете найти пункт “Базы данных”, где можно в визуальном режиме создать новую БД, нового пользователя, после чего связать его с базой. Пользователя создавать и не обязательно, если он уже создан. В качестве прав нужно установить все, если это администраторский профиль.

Создание базы данных на хостинге утилитой PhpMyAdmin

На самом деле утилит для работы с MySQL и другими БД много, но с этой встречаются чаще всего. Создать базу в phpmyadmin тоже легко.

JavaScript. Быстрый старт

Нажимаем Базы данных и появится список баз, а также возможность добавить новую, вписав ее имя. После создания нужно будет также добавить или создать нового пользователя для БД. Для этого у новой базы отредактируйте привилегии.

Как видите, тут можно посмотреть, какие пользователи уже имеют доступ к БД, а также добавить нового.

Перенос БД и ее загрузка на другой хостинг

Прежде всего, хочу скачать, что ваша БД – это вообще практически самое важное и ценное, чем вы обладаете. Ведь это все записи, страницы, отзывы, комментарии и все, что там еще может быть на сайте. И если это пропадет, то для вас это полная беда. Поэтому первым делом позаботьтесь о том, чтобы постоянно совершалось резервное копирование базы, причем желательно в несколько мест. Таким образом, вы защитите себя.

Если что, расширение дампа базы данных – sql. То есть на компьютер вы скачиваете именно дамп БД. Ну а как же, собственно, загрузить БД? Лучше всего для этого использовать всю ту же утилиту – PhpMyAdmin. Зайдем в нее. Там есть кнопка Импорт, но пока не трогаем его. Для начала нужно будет создать новую БД или удалить все таблицы в старой.

Короче, вам нужна чистая, голая БД. Выбираем ее и вот именно в нее импортируем наш дамп. Если все прошло успешно, вы увидите появляющиеся в БД таблицы, а со временем убедитесь в правильности своих действий, когда перейдете на сайт, для которого все эти манипуляции и совершались.

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

Как связать с сайтом?

Связка происходит автоматически на этапе установки движка. Там вы указываете имя БД, имя пользователя и его пароль для доступа к базе, сервер (почти всегда localhost) и префикс таблиц. Но если вдруг в процессе работы что-то меняется, то нужно будет изменить данные.

Например, вы поменяли имя базы или удалили пользователя и назначили другого. Соответственно, если вы не поменяете нужные параметры, при заходе на сайт будет отображаться ошибка соединения с БД и ни о какой работе ресурса нельзя будет даже говорить.

В связи с этим, СРАЗУ же после внесения подобных изменений нужно изменять и соответствующие параметры. Если у вас движок wordpress, то они хранятся в файле wp-config. В частности, там есть такие константы:

DB_NAME – имя базы данных. DB_USER – имя пользователя DB_PASSWORD – пароль

А также переменная: $table_prefix;

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

Может ли быть несколько баз на хостинге?

Конечно, абсолютно никаких проблем. 1 БД на 1 сайт (в большинстве случаев). Если у вас несколько сайтов, то будет и несколько БД. У крупного ресурса может быть несколько БД для разных разделов. Например, если вы решите установить на сайт форум, то для него можно будет создать свою БД.

В общем, все это основы основ работы с БД, если вдруг вы захотите изучить работу с MySQL (а это язык, с помощью которого работают с базами даных) от А до Я, то у нас для вас есть замечательный , продолжительностью более 20-ти часов, в котором вы сможете освоить эту технологию раз и навсегда.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Тема 2.3. Программные средства презентаций и основы офисного программирования

Тема 2.4. Системы управления базами данных и экспертные системы

2.4.11. Учебная база данных с главной кнопочной формой "Training_students" - Скачать

СУБД и экспертные системы

2.4. Системы управления базами данных и экспертные системы

2.4.3. Создание базы данных (способы создания таблиц и создание структуры таблиц для базы данных "Деканат")

При первом открытии окна базы данных Access всегда активизирует вкладку Таблицы и выводит на экран список режимов создания таблиц:

  • создание таблицы в режиме конструктора;
  • создание таблицы с помощью мастера;
  • создание таблицы путем ввода данных

Для создания новой таблицы можно выбрать любой из этих режимов. Можно выбрать Мастер таблиц для определения полей таблицы с помощью списков образцов таблиц и полей. Для создания произвольной таблицы целесообразно пользоваться режимом Конструктора. Режим Создание таблицы путем ввода данных используется, как правило, для редактирования и ввода данных в уже существующие таблицы.

Напомним, что таблицей Access является совокупность данных объединенных общей темой. Для каждой сущности назначается отдельная таблица, чтобы не было повторений в сохраненных данных. Таблицы состоят из записей и полей. Количество полей в записи определяется на стадии проектирования таблицы, поэтому прежде чем создавать таблицу с помощью приложения Access, необходимо четко представлять ее структуру.

Величина и тип полей определяется пользователем. Необходимо выбирать размеры полей не слишком большими, так как при завышенных размерах полей бесполезно расходуется память БД. Для создания связей между таблицами они должны иметь ключевое поле, поэтому необходимо назначить ключевое поле каждой таблице.

Чтобы задать первичный ключ в режиме Конструктора, необходимо выделить требуемое поле, а затем щелкнуть на пиктограмме «Ключевое поле», расположенной на панели инструментов. Для назначения Внешнего (Вторичного) ключа в режиме Конструктора, необходимо выделить поле и в области свойств этого поля в строке Индексированное поле из списка выбрать значение Да (Совпадения допускаются).

Для выбора необходимого режима создания таблиц можно дважды щелкнуть на один из них в списке режимов, откроется требуемый режим. Кроме того, можно щелкнуть на пиктограмме «Создать» в окне БД, откроется окно диалога «Новая таблица», и в нем выбрать требуемый режим создания таблицы.


Рис. 1.

При выборе режима Мастер таблиц откроется окно «Создание таблиц», в котором с помощью образцов таблиц и полей легко сформировать поля новой таблицы.



Рис. 2.

Но если в окне «Создание таблиц» нет требуемого образца таблицы, то необходимо выбрать режим Конструктора, откроется окно Конструктора таблиц



Рис. 3.

Состав (структура) таблицы определяется в области проекта таблицы, которая состоит из трех колонок:

  • имя поля;
  • тип данных;
  • описание.

Типы данных необходимо выбрать из раскрывающегося списка:

  1. Текстовый – алфавитно–цифровые данные (до 255 байт).
  2. Поле МЕМО - длинный текст или числа, например, примечания или описания (до 64000 байт).
  3. Числовой - текст или комбинация текста и чисел (сохраняет 1, 2, 4 или 8 байтов).
  4. Дата/время – даты и время (8 байт).
  5. Денежный - используется для денежных значений (сохраняет 8 байтов).
  6. Счетчик – автоматическая вставка уникальных последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи (4 байта).
  7. Логический – данные, принимающие только одно из двух возможных значений, например, «Да/Нет» (1 бит).
  8. Поле объекта OLE – для вставки следующих объектов: рисунки, картинки, диаграммы и т.д. (до 1 Гбайта).
  9. Гиперссылка – адрес ссылки на файл на автономном компьютере или в сети (сохраняет до 64 000 знаков).
  10. Мастер подстановок - создает поле, позволяющее выбрать значение из другой таблицы или из списка значений, используя поле со списком. При выборе данного параметра в списке типов данных запускается мастер для автоматического определения этого поля.

В области «Свойства поля» назначают свойства для каждого поля (например, размер, формат, индексированное поле и т.д.).

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