Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 239
∙ повысить рейтинг »
Megaloman
Статус: Академик
Рейтинг: 75
∙ повысить рейтинг »
solowey
Статус: 9-й класс
Рейтинг: 43
∙ повысить рейтинг »

∙ Базы данных

Номер выпуска:528
Дата выхода:17.05.2018, 15:15
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Подписчиков / экспертов:20 / 15
Вопросов / ответов:3 / 12

Консультация # 60471: Здравствуйте уважаемые эксперты. Ответьте пожалуйста на вопрос. Зачем в СУБД SQL Server предназначены Rules, Roles и Views. Где они применяются и для чего. Желательно с примером. ..
Консультация # 109642: Народ!! сижу туплю впроде как над простейшим запросом!!! =( Две таблицы tabl_1 в ней есть первичный ключ ID и текстовое поле TEXT tabl_2 в ней есть первичный ключ ID, числовое поле seckey, и поле TEXT как сделать вывод поля TEXT из tabl_2 если в таблице tabl_1 поле ID совпадает с полем seckey ???? %( ..
Консультация # 73486: Уважаемые эксперты у меня к вам вопрос. Можно ли в ОДНОЙ БД обеденить две таблицы в запросе? Имя таблиц и имена полей в них взяты с потолка. Тоесть tbl1 и tbl2 в tbl1 есть поля event, perl, els в tbl2 есть поля asin, lone, love можно ли эти две таблицы обеденить запросом where tbl1.perl=tbl2.asin ?...

Консультация # 60471:

Здравствуйте уважаемые эксперты.
Ответьте пожалуйста на вопрос.
Зачем в СУБД SQL Server предназначены Rules, Roles и Views. Где они применяются и для чего. Желательно с примером.

Дата отправки: 28.10.2006, 16:29
Вопрос задал: Ram
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Марк Крейн:

Здравствуйте, Ram!
Rules - правила. Типа ограничений на вводимую информацию в БД. Roles - роли. Это для того чтобы объединять пользователей SQL сервера в роли чтобы было легче администрировать БД. Views - представления. Представление - это отдельная выборка из базы данных (возможно из нескольких связанных таблиц) по каким-то определённым критериям.
К сожалению примеры дать не могу, так как нет SQL сервера под рукой. А вообще для таких вопросов существует специальная (моя) рассылка MSSQL Server 2000/2005. Это просто на будущее, чтобы вопросы не перемешивались.

Консультировал: Марк Крейн
Дата отправки: 28.10.2006, 20:07
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Grigory:

Здравствуйте, Ram!
Вот как определяет SQL Server Rules Microsoft:
Rule:

A database object that is bound to columns or user-defined datatypes and specifies which data values are acceptable in a column. CHECK constraints provide the same functionality and are preferred because they are in the SQL-92 standard.

Иными словами, правило обычно привязано к колонке таблицы илипользовательскому типу данных и определяет приемлемые значения для данной колонки в таблице. Тот же эффект достигается с помощью ограничений CHECK, использование которого является предпочтительным, поскольку соответствует стандарту SQL-92.

Роль:
Используется для определения привилегий пользователя БД, например у Администратора БД привилегий больше, чем у обычного пользователя. Привилегии определяются через роль пользователя.
Роли подразделяются на: Server Roles, Database Roles, Application Roles.

View:
Является отображением всех или части данных содержащихся в одной или более таблицах - в зависимости от того, что Вы хотите, чтоб видел конкретный пользователь с конкретными привилегиями.

Удачи!

Консультировал: Grigory
Дата отправки: 29.10.2006, 02:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Delph:

Здравствуйте, Ram!

Ко всему, что сказано выше, добавлю своё мнение о представлениях (VIEW) данных. Их в самом деле можно использовать для разграничения прав доступа, но я чаще пользуюсь ими для сбора информации из разных таблиц базы данных. В само представление могут быть зашиты очень сложные запросы, объединяющие несколько таблиц в одно целое, а также определения вычисляемых полей (например, я формировал вычисление возраста человека по дате его рождения и текущей дате и определял результат как отдельный столбец). Приложение видит VIEW как отдельную таблицу, и если не нужна дополнительная фильтрация, оно может обратиться к представлению примерно так:

SELECT <список полей>
FROM <название_представления>

Можно, как и в случае с обычными таблицами, написать дополнительные критерии отбора:

WHERE <перечень условий>

Представления, как и таблицы, можно также объединять с другими представлениями и таблицами в SELECT-запросах и использовать в качестве основы для других представлений. Впрочем, если пишется сложный VIEW, то как правило он базируется на физических таблицах (из соображений эффективности, но это не более чем рекомендация, к которой Вы вольны прислушаться или проигнорировать её) и включает в себя всю необходимую информацию, чтобы приложению не было необходимости цеплять к нему дополнительные таблицы (тоже рекомендация, а не правило, к тому же представления бывают совершенно разными и по сложности, и по цели создания).

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

Консультировал: Delph
Дата отправки: 30.10.2006, 10:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 109642:

Народ!! сижу туплю впроде как над простейшим запросом!!! =(

Две таблицы
tabl_1 в ней есть первичный ключ ID и текстовое поле TEXT
tabl_2 в ней есть первичный ключ ID, числовое поле seckey, и поле TEXT

как сделать вывод поля TEXT из tabl_2 если в таблице tabl_1 поле ID совпадает с полем seckey ????

%(

Дата отправки: 16.11.2007, 07:33
Вопрос задал: Ольга Александровна
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Некто:

Здравствуйте, Ольга Александровна!
SELECT t2.text_field FROM tabl_2 t2, tabl_1 t1
WHERE t2.seckey = t1.id

Консультировал: Некто
Дата отправки: 16.11.2007, 07:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, Ольга Александровна!
select t2.text
from tabl_1 t1, tabl_2 t2
where t1.id=t2.seckey

Консультировал: Челноков Виктор Альбертович
Дата отправки: 16.11.2007, 08:05
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Nomadfromx2007:

Здравствуйте, Ольга Александровна!
Надо просто добавить проверку на tabl_1.ID = tabl_2.seckey

Приложение:

Консультировал: Nomadfromx2007
Дата отправки: 16.11.2007, 08:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Зиновьев Дмитрий Владимирович:

Здравствуйте, Ольга Александровна!
SELECT t2.TEXT FROM tabl_1 t1
INNER JOIN tabl_2 t2 ON t1.ID=t2.seckey

Консультировал: Зиновьев Дмитрий Владимирович
Дата отправки: 16.11.2007, 12:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 73486:

Уважаемые эксперты у меня к вам вопрос. Можно ли в ОДНОЙ БД обеденить две таблицы в запросе?
Имя таблиц и имена полей в них взяты с потолка.
Тоесть
tbl1 и tbl2
в tbl1 есть поля event, perl, els
в tbl2 есть поля asin, lone, love
можно ли эти две таблицы обеденить
запросом where tbl1.perl=tbl2.asin

?

Дата отправки: 31.01.2007, 16:42
Вопрос задал: Чинга
Всего ответов: 5
Страница онлайн-консультации »


Консультирует Архангельский Андрей Германови:

Здравствуйте, Чинга!

Нет проблем

Select t1.event, t1.els,t2.lone,t2.love
from tbl1 as t1, tbl2 as t2
where t1.perl=t2.asin

Возможны и более сложные объединения

Консультировал: Архангельский Андрей Германови
Дата отправки: 31.01.2007, 16:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует ~Steep~:

Здравствуйте, Чинга!

Можно, но необходимо чтобы у каждой таблицы были уникальные ключи
т.е. например tbl1.ID1, tbl2.ID2
Пример выборки некоторых столбцов из 2-х таблиц:

Select tbl1.event,
tbl1.els,
tbl2.asin,
tbl2.lone
From tbl1, tbl2
where tbl1.ID1=tbl2.ID2

или всех значений:

select * from tbl1, tbl2
where tbl1.ID1=tbl2.ID2

Консультировал: ~Steep~
Дата отправки: 31.01.2007, 17:03
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Mefisto:

Здравствуйте, Чинга!
Конечно можно:
SELECT * FROM tbl1,tbl2 WHERE tbl1.perl=tbl2.asin

Выведутся поля event, perl, els, asin, lone, love

Возможно я не совсем прав, там скорее всего надо через JOIN это делать.

Консультировал: Mefisto
Дата отправки: 31.01.2007, 17:17
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Базанов Иван Александрович:

Здравствуйте, Чинга!
Да. Например так:
SELECT tbl1.*, tbl2.*
FROM tbl1, tbl2
WHERE tbl1.perl=tbl2.asin
Или так
SELECT tbl1.*, tbl2.*
FROM tbl1
JOIN tbl2 ON tbl1.perl=tbl2.asin
Во многих случаях это одно и тоже...

Консультировал: Базанов Иван Александрович
Дата отправки: 31.01.2007, 18:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Grigory:

Здравствуйте, Чинга!
А что мешает-то? Объединяйте себе на здоровье smile Для того таблицы и создаются, чтоб их объединять (разумеется, в этом должен быть смысл :))

Консультировал: Grigory
Дата отправки: 31.01.2007, 18:11
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное