- What is a Schema in SQL and how to create it?
- 13.1.24 DROP DATABASE Statement
- 13.1.22 DROP DATABASE Statement
- 13.1.32 DROP TABLE Statement
- Introduction to the MySQL DROP DATABASE statement
- MySQL DROP DATABASE using mysql program example
- DROP DATABASE using MySQL Workbench
- Summary
- Зачем так радикально?
- Программные оболочки
- Средства SQL
- Схема базы данных
- Создать схему в MySQL [5.7]
- Создать схему в PostgreSQL 9.3.13
- Создать схему в Oracle 11g
- Создать схему в SQL Server 2014
- Изменить схему
- Изменить схему в MySQL [5.7]
- Изменить схему в PostgreSQL 9.3.13
- Изменить схему в SQL Server 2014
- Схема удаления
- Удалить схему в MySQL [5.7]
- Удалить схему в PostgreSQL 9.3.13
- Удалить схему в SQL Server 2014
- What is a Schema in SQL Server?
- Parameter
- Advantages of using Schema
- How to create a Schema?
- Using SQL Server Management Studio
- How to drop a Schema?
- How to alter a Schema?
- Syntax to alter a schema:
What is a Schema in SQL and how to create it?
A technophile who likes writing about different technologies and spreading knowledge. A technophile who likes writing about different technologies and spreading knowledge.
/ Blog from Introduction to SQL
- What is SQL?
- What is a Schema in SQL?
- Advantages of using Schema
- How to create schema?
- How to alter a schema?
- Parameter
- How to drop a schema?
As you all might be aware of the term SQL, stands for the Structured Query Language. SQL is an ASI standard language but there are many different versions of this language. SQL is the standard language for Relational Database System. It helps you in accessing and manipulating databases. Several queries against the database can be executed. The data from a database can be retrieved. You can insert, update, delete records in a database. It helps in creating new databases. New tables and views can also be created.
Let us move further to the next segment.
13.1.24 DROP DATABASE Statement
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE
drops all tables in
the database and deletes the database. Be
careful with this statement! To use
DROP DATABASE
, you need the
DROP
privilege on the database.
DROP
is a synonym for
SCHEMADROP
.
DATABASE
When a database is dropped, privileges granted specifically for
the database are automatically dropped.
They must be dropped manually. See Section 13.7.1.6, “GRANT Statement”.
IF EXISTS
is used to prevent an error from
occurring if the database does not exist.
If the default database is dropped, the default database is unset
(the DATABASE()
function returns
NULL
).
If you use DROP DATABASE
on a
symbolically linked database, both the link and the original
database are deleted.
DROP DATABASE
returns the number of
tables that were removed.
If other files or directories remain in the database directory
after MySQL removes those just listed, the database directory
cannot be removed. In this case, you must remove any remaining
files or directories manually and issue the
DROP DATABASE
statement again.
Dropping a database does not remove any
TEMPORARY
tables that were created in that
database. TEMPORARY
tables are automatically
removed when the session that created them ends. See
Section 13.1.20.2, “CREATE TEMPORARY TABLE Statement”.
13.1.22 DROP DATABASE Statement
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE
drops all tables in
the database and deletes the database. Be
careful with this statement! To use
DROP DATABASE
, you need the
DROP
privilege on the database.
DROP
is a synonym for
SCHEMADROP
.
DATABASE
When a database is dropped, privileges granted specifically for
the database are automatically dropped.
They must be dropped manually. See Section 13.7.1.4, “GRANT Statement”.
IF EXISTS
is used to prevent an error from
occurring if the database does not exist.
If the default database is dropped, the default database is unset
(the DATABASE()
function returns
NULL
).
If you use DROP DATABASE
on a
symbolically linked database, both the link and the original
database are deleted.
DROP DATABASE
returns the number of
tables that were removed. This corresponds to the number of
.frm
files removed.
The DROP DATABASE
statement removes
from the given database directory those files and directories that
MySQL itself may create during normal operation:
If other files or directories remain in the database directory
after MySQL removes those just listed, the database directory
cannot be removed. In this case, you must remove any remaining
files or directories manually and issue the
DROP DATABASE
statement again.
Dropping a database does not remove any
TEMPORARY
tables that were created in that
database. TEMPORARY
tables are automatically
removed when the session that created them ends. See
Section 13.1.18.2, “CREATE TEMPORARY TABLE Statement”.
13.1.32 DROP TABLE Statement
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]
DROP TABLE
removes one or more
tables. You must have the DROP
privilege for each table.
with this statement! For each
table, it removes the table definition and all table data. If the
table is partitioned, the statement removes the table definition,
all its partitions, all data stored in those partitions, and all
partition definitions associated with the dropped table.
Dropping a table also drops any triggers for the table.
DROP TABLE
causes an implicit
commit, except when used with the TEMPORARY
keyword. See Section 13.3.3, “Statements That Cause an Implicit Commit”.
When a table is dropped, privileges granted specifically for the
table are automatically dropped. They
must be dropped manually. See Section 13.7.1.6, “GRANT Statement”.
If any tables named in the argument list do not exist,
DROP TABLE
behavior depends on
whether the IF EXISTS
clause is given:
Without
IF EXISTS
, the statement fails with
an error indicating which nonexisting tables it was unable to
drop, and no changes are made.With
IF EXISTS
, no error occurs for
nonexisting tables. The statement drops all named tables that
do exist, and generates aNOTE
diagnostic
for each nonexistent table. These notes can be displayed with
SHOW WARNINGS
. See
Section 13.7.7.42, “SHOW WARNINGS Statement”.
IF EXISTS
can also be useful for dropping
tables in unusual circumstances under which there is an entry in
the data dictionary but no table managed by the storage engine.
(For example, if an abnormal server exit occurs after removal of
the table from the storage engine but before removal of the data
dictionary entry.)
The statement drops only
TEMPORARY
tables.The statement does not cause an implicit commit.
No access rights are checked. A
TEMPORARY
table is visible only with the session that created it, so no
check is necessary.
Including the TEMPORARY
keyword is a good way
to prevent accidentally dropping non-TEMPORARY
tables.
The RESTRICT
and CASCADE
keywords do nothing. They are permitted to make porting easier
from other database systems.
DROP TABLE
is not supported with
all innodb_force_recovery
settings. See Section 15.21.3, “Forcing InnoDB Recovery”.
Summary: in this tutorial, you will learn how to use the MySQL DROP DATABASE
statement to delete an existing database in the server.
Introduction to the MySQL DROP DATABASE statement
The DROP DATABASE
statement drops all tables in the database and deletes the database permanently. Therefore, you need to be very careful when using this statement.
SQL (Structured Query Language)
In this statement, you specify the name of the database which you want to delete after the DROP DATABASE
keywords.
If you drop a database that does not exist, MySQL will issue an error.
To prevent an error from occurring if you delete a non-existing database, you can use the IF EXISTS
option. In this case, MySQL will terminate the statement without issuing any error.
The DROP DATABASE
statement returns the number of tables it deleted.
In MySQL, the schema is the synonym for the database. Therefore, you can use them interchangeably:
SQL (Structured Query Language)
MySQL DROP DATABASE
using mysql program example
mysql -u root -p
Enter password: ********
Second, display all the databases using the SHOW DATABASES
statement:
SQL (Structured Query Language)
Third, drop the testdb
database by issuing the DROP DATABASE
statement:
testdb;
SQL (Structured Query Language)
Query OK, 0 rows affected (0.03 sec)
MySQL returned zero affected rows indicating that the testdb
database has no tables.
DROP DATABASE using MySQL Workbench
First, launch the MySQL workbench and log in to the MySQL Server.
Third, MySQL Workbench displays a dialog to confirm the deletion.
If you choose Review SQL, you’ll see the SQL statement that will be executed. If you choose Drop Now, it’ll delete the database immediately.
To be safe, let’s choose Review SQL:
Fourth, once you are sure that the SQL statement is going to drop the right database, you can click the Execute button to execute the statement.
If you view the schemas pane, you will see that the testdb2 is not on the list anymore.
Summary
- Use the MySQL
DROP DATABASE
statement to delete a database.
Was this tutorial helpful?
От автора: вы зачем трете ластиком монитор? Базу данных хотите удалить? Так может лезвием попробовать! Подождите, я пошутил (оказывается, неудачно)! Уберите опаску от экрана, садитесь и запоминайте, как удалить базу MySQL.
Зачем так радикально?
Понятно, что против звезд не попрешь, и все базы из-под вашей руки выходят какие-то «кривые». То не тот тип столбца задашь, то законнектиться нормально не получается. А с триггерами и процедурами вообще полнейший мрак! В таком случае легче просто удалить MySQL данные.
То же самое касается БД, которые прошли через руки «чайных дел мастеров». Причем никто кроме вас не виноват, потому что сами (как администратор баз данных) наделили их правами на изменение и добавление записей в таблицы. В этой ситуации также легче стереть все данные и пересоздать БД из резервной копии. В общем, настоящий админ должен знать не только, как создать, но и как удалить. Точно так же, как квалифицированный стоматолог должен уметь не только вставлять, но и удалять зубы :).
Программные оболочки
Иногда нужно произвести неполное удаление данных MySQL (конкретную таблицу базы). Данная программа предоставляет для этого встроенный функционал.
В списке слева снова выбираем нужную БД. Затем в списке, который отображается во вкладке «Структура» выделите таблицу и нажмите слева ссылку «Удалить». Если требуется просто стереть из таблицы все строки, но не удалять ее, то для этого воспользуйтесь ссылкой «Очистить».
Чтобы удалить определенные записи таблицы, перейдите справа по ссылке. После этого по вкладке «Обзор» (верхнее меню), выделите в таблице нужные строки и нажмите на «Удалить».
Для удаления таблицы в верхнем меню (при активной вкладке «Catalogs») перейдите в раздел «Schema Tables». Нажмите по имени «неправильной» таблицы правой клавишей и выберите команду («Drop Table»).
Средства SQL
Хватит играться, давайте теперь работать как профессионалы. Рассмотрим каким образом можно удалить базу данных MySQL с помощью языка структурированных запросов. Для этого используется команда DROP DATABASE. Ее синтаксис:
Как видите, команда не отличается особой сложностью. В качестве параметров она принимает название БД. При этом использование второго параметра не является обязательным. Указание в запросе IF EXISTS предотвращает вывод сообщения об ошибке и остановку выполнения всех остальных команд. Особенно это важно при использовании мультизапросов, разработке триггеров и хранимых процедур.
Давайте разберемся с применение данной команды MySQL на удаление базы. Для экспериментов создайте «липовую» БД через вкладку основного меню «Базы данных». Я свою так и назвал lipa. Чувство юмора является обязательным атрибутом любого успешного администратора СУБД :).
Дальнейшие эксперименты я предлагаю продолжить в командной строке. Так сказать, для разнообразия. Перед тем, как полностью удалить MySQL базу, зайдите на сервер СУБД под учеткой админа (или другого юзера с глобальными правами): Z:\usr\local\mysql-5.5\bin\mysql.exe -u root
Введите следующий запрос и запустите его на выполнение:
Система СУБД выведет сообщение об удачном выполнении команды и сколько времени потребовалось на это.
Теперь снова введите запрос в MySQL на удаление базы. В ответ на это сервер СУБД начнет ругаться и выдаст сообщение об ошибке, что такой БД уже не существует:
Теперь немного изменим запрос, и используем в нем условное выражение IF EXISTS. Получается, что мы говорим СУБД удалить базу с именем lipa, но лишь в том случае, если она существует:
В результате MySQL выполнит наш запрос и лишь предупредит о наличии несоответствия (отсутствие БД). Но не прекратит выполнение текущего запроса и всего последующего кода, что очень важно при разработке ADO-приложений, триггеров и хранимых процедур. Таким образом гарантируется их отказоустойчивость.
Теперь вы знаете в MySQL как удалить базу. И при всей кажущейся простоте команда DROP DATABASE обладает мощным эффектом. Так что пользуйтесь ею осторожно, а лезвие и ластик оставьте в покое :). До новых встреч!
Схема базы данных
Схема — это логический держатель объекта базы данных. Схема базы данных системы базы данных — это ее структура, описанная на формальном языке, поддерживаемом системой управления базами данных. Формальное определение схемы базы данных — это набор формул (предложений), называемых ограничениями целостности, налагаемыми на базу данных. Эти ограничения целостности обеспечивают совместимость между частями схемы. Все ограничения выражаются на одном языке.
Создание схем может быть полезно, когда объекты имеют циклические ссылки, то есть когда нам нужно создать две таблицы, каждая с внешним ключом, ссылающимся на другую таблицу. Различные реализации обрабатывают схемы немного по-разному.
СОЗДАТЬ СХЕМУ [имя_схемы] [АВТОРИЗАЦИЯ имя_хозяина] [DEFAULT CHARACTER SET char_set_name] [PATH schema_name [, ...]] [ANSI CREATE заявления [...]] [ANSI GRANT заявления [...]];
Пример-1 : Как пользователь с полномочиями, создайте схему с именем STUDENT, в которой пользователь STUDENT будет владельцем.
CREATE SCHEMA STUDENT AUTHORIZATION STUDENT
Пример 2 : создание схемы с таблицей сведений об ученике. Дайте полномочия на таблицу пользователю DAVID.
CREATE SCHEMA INVENTRY
CREATE TABLE PART (IDNO SMALLINT NOT NULL,
SNAME VARCHAR(40),
CLASS INTEGER)
GRANT ALL ON PART TO DAVID
Создать схему в MySQL [5.7]
В MySQL CREATE SCHEMA является синонимом CREATE DATABASE.
СОЗДАТЬ {БАЗА ДАННЫХ | СХЕМА} [ЕСЛИ НЕ СУЩЕСТВУЕТ] db_name [create_specification] ... create_specification: [ПО УМОЛЧАНИЮ] CHARACTER SET [=] charset_name | [ПО УМОЛЧАНИЮ] COLLATE [=] collation_name
Создать схему в PostgreSQL 9.3.13
CREATE SCHEMA вводит новую схему в текущую базу данных. Имя схемы должно отличаться от имени любой существующей схемы в текущей базе данных.
СОЗДАТЬ СХЕМУ имя_схемы [АВТОРИЗАЦИЯ имя_пользователя] [элемент_схемы [...]] СОЗДАТЬ АВТОРИЗАЦИЮ СХЕМЫ user_name [schema_element [...]] СОЗДАТЬ СХЕМУ, ЕСЛИ НЕ СУЩЕСТВУЕТ имя_схемы [АВТОРИЗАЦИЯ имя_пользователя] СОЗДАЙТЕ СХЕМУ, ЕСЛИ НЕ СУЩЕСТВУЕТ АВТОРИЗАЦИЯ user_name
Создать схему в Oracle 11g
Используйте оператор CREATE SCHEMA для создания нескольких таблиц и представлений и выполнения нескольких грантов в собственной схеме в одной транзакции.
Чтобы выполнить оператор CREATE SCHEMA, Oracle Database выполняет каждый включенный оператор. Если все операторы выполняются успешно, база данных фиксирует транзакцию. Если какой-либо оператор приводит к ошибке, база данных откатывает все операторы.
Оператор CREATE SCHEMA может включать в себя операторы CREATE TABLE, CREATE VIEW и GRANT. Для выдачи оператора CREATE SCHEMA у вас должны быть права, необходимые для выдачи включенных операторов.
Схема создания схемы авторизации {create_table_statement | create_view_statement | grant_statement } ...;
Создать схему в SQL Server 2014
Создает схему в текущей базе данных. Транзакция CREATE SCHEMA также может создавать таблицы и представления в новой схеме и устанавливать разрешения GRANT, DENY или REVOKE для этих объектов.
Следующий оператор создает базу данных и полностью определяет каждый аргумент:
СОЗДАТЬ СХЕМУ schema_name_clause [<schema_element> [... n]] <schema_name_clause> :: = { schema_name | АВТОРИЗАЦИЯ имя_хозяина | имя_схемы АВТОРИЗАЦИЯ имя_хозяина } <schema_element> :: = { определение таблицы | view_definition | grant_statement | revoke_statement | deny_statement }
Изменить схему
Инструкция ALTER SCHEMA используется для переименования схемы или для указания нового владельца, новый владелец должен быть уже существующим пользователем в базе данных
ALTER SCHEMA имя_схемы [RENAME TO new_schema_name] [OWNER TO new_user_name]
Изменить схему в MySQL [5.7]
В MySQL CREATE SCHEMA является синонимом CREATE DATABASE.
ALTER {БАЗА ДАННЫХ | СХЕМА} [db_name] alter_specification ... ALTER {БАЗА ДАННЫХ | СХЕМА} db_name ОБНОВЛЕНИЕ ДАННЫХ ИМЕНИ КАТАЛОГА alter_specification: [ПО УМОЛЧАНИЮ] CHARACTER SET [=] charset_name | [ПО УМОЛЧАНИЮ] COLLATE [=] collation_name
В MySQL ALTER SCHEMA является синонимом ALTER DATABASE. ALTER DATABASE позволяет вам изменять общие характеристики базы данных. Эти характеристики хранятся в файле db.opt в каталоге базы данных. Чтобы использовать ALTER DATABASE, вам нужна привилегия ALTER для базы данных.
Изменить схему в PostgreSQL 9.3.13
Описание ALTER SCHEMA изменяет определение схемы. Пользователь должен владеть схемой, чтобы использовать ALTER SCHEMA. Чтобы переименовать схему, вы также должны иметь привилегию CREATE для базы данных. Чтобы изменить владельца, вы также должны быть прямым или косвенным участником новой роли владельца, а также иметь привилегию CREATE для базы данных.
ALTER SCHEMA name RENAME TO new_name ALTER SCHEMA name ВЛАДЕЛЕЦ new_owner
Изменить схему в SQL Server 2014
ALTER SCHEMA можно использовать только для перемещения защищаемых между схемами в одной базе данных. Пользователи и схемы полностью разделены.
ALTER SCHEMA имя_схемы TRANSFER [<entity_type> ::] securable_name [;] <entity_type> :: = { Объект | Тип | Коллекция XML-схем }
Схема удаления
DROP SCHEMA <имя схемы>
Удалить схему в MySQL [5.7]
DROP DATABASE удаляет все таблицы в базе данных и удаляет базу данных. DROP SCHEMA является синонимом DROP DATABASE.
DROP {DATABASE | СХЕМА} [ЕСЛИ СУЩЕСТВУЕТ] db_name
Удалить схему в PostgreSQL 9.3.13
DROP SCHEMA удаляет схемы из базы данных. Схема может быть удалена только ее владельцем или суперпользователем.
DROP SCHEMA [ЕСЛИ СУЩЕСТВУЕТ] имя [, ...] [CASCADE | ОГРАНИЧЕНИЕ]
Удалить схему в SQL Server 2014
Условно отбрасывает схему, только если она уже существует.
DROP SCHEMA [ЕСЛИ СУЩЕСТВУЕТ] имя_схемы
Упражнения по SQL
Предыдущая: Компоненты таблицы
Далее: Создать / изменить базу данных
What is a Schema in SQL Server?
Let’s move ahead and look at some of the advantages of using Schema in SQL.
Parameter
After understanding how to alter schema let us move ahead to the next segment. We are going to study about dropping a schema.
Advantages of using Schema
- You can apply security permissions for separating and protecting database objects based on user access rights.
- A logical group of database objects can be managed within a database. Schemas play an important role in allowing the database objects to be organized into these logical groups.
- The schema also helps in situations where the database object name is the same. But these objects fall under different logical groups.
- A single schema can be used in multiple databases.
- The schema also helps in adding security.
- It helps in manipulating and accessing the objects which otherwise is a complex method.
- You can also transfer the ownership of several schemas.
- The objects created in the database can be moved among schemas.
These were few advantages, now the next topic is the method to create a schema.
How to create a Schema?
Syntax to create SQL:
CREATE SCHEMA [schema_name] [AUTHORIZATION owner_name] [DEFAULT CHARACTER SET char_set_name] [PATH schema_name[, ...]] [ ANSI CREATE statements [...] ] [ ANSI GRANT statements [...] ];
For details, You can even check out how to manage databases on SQL Server and its concepts with the SQL online course.
Using SQL Server Management Studio
- In object explorer, click on the databases folder.
- Create the New database schema under database.
- Right click Security folder, click New, select Schema.
- Go on Schema-New dialog box, enter a specific name that you want to create for your new schema.
- In the schema owner box, enter the name of the database user in order to own the schema. Click search, to open the Search Roles and User dialogue box.
This is how a schema is created. Now let us see how a schema is altered.
How to drop a Schema?
DROP SCHEMA <schema name>
DROP DATABASE databasename;
This was all about Schema in SQL. I hope that the content explains the above-added value to your knowledge. Keep reading, keep exploring!
Got a question for us? Please mention it in the comments section of this article on SQL Constraints and I will get back to you.
How to alter a Schema?
Syntax to alter a schema:
ALTER SCHEMA schema_name [RENAME TO new_schema_name] [ OWNER TO new_user_name]