Вопрос по SQL в Access?

badmint

Народ, хелп, познаю прелести SQL, типа решил почитать , попробовать чё эт такое.
Так вот, есть допустим Таблица1(столбцы id, status, date). Хочу создать другую таблицу, выбрав из Таблицы1 нужное.
CREATE TABLE otkr
AS
SELECT id, status, date FROM Таблица1 Where status =0 ORDER BY id;
ЧЁ НЕ ТАК НАПИСАНО?

oleg701

А ты где такой синтаксис надыбал?
Мож Access нечто подобное и поддерживает, но со стандартом это рядом не стояло.

badmint

ну напиши как в стандарте плиз =)

Alexander08

жесть

badmint

Бля, сам понимаю что херню пишу, но и понимаю что мне можно её писать, потому как SQL открыл ток сёдня
Но всё же чё не так?

qsk78


SELECT id, status, date INTO otkr FROM [Таблица1] WHERE status=0;

P. S. Access — не самое лучшее средство для изучения SQL.

Alexander08

пачетай хелпы! оч полезно бывает иногда!

katrin2201

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

pitrik2

А ты где такой синтаксис надыбал?
Мож Access нечто подобное и поддерживает, но со стандартом это рядом не стояло.
а в стандарте разве вообще есть такая конструкция как CREATE TABLE AS SELECT?
в большинстве крупных СУБД это есть
в аксессе вроде было чтото типа: SELECT * FROM lalala INTO my_table

kruzer25

А разве приличнее будет не
CREATE TABLE...
INSERT INTO ... SELECT ...
?

0000

Наверно так

CREATE TABLE otkr
(id number (6
status number (1
date date);

insert into otkr (id, status, date) select id, status, date from Таблица1 ....

Тока вот столбцы называть id и date не рекомендуется (именно поэтому create table скорее всего не прокатит).

badmint

понял, прикольно.
Просто на работе ни чё кроме accessa нету, вот и приходиться в нём пробовать

oleg701

В стандарте такого синтаксиса нет.
Мне он по жизни тоже не попадался.
Оказалось, действительно не редкость.

kruzer25

Тока вот столбцы называть id и date не рекомендуется
Ага, а ещё не рекомендуется вставлять строковые значения, содержащиме пробелы или кавычки.
Пиши insert into `otkr` (`id`, `status`, `date`) select `id`, `status`, `date` from Таблица1 - и будет тебе счастье.

badmint

Кстати народ, посоветуйте какой софт поставить, чтоб потренироваться писать запросы всякие разные на SQL и поучиться работать с БД ?

oleg701

Я бы для таких целей поставил MS SQL Server.
Его вполне реально поднять и настроить вообще без опыта.
Ну и к нему SQL Manager 2005 например.
А чем Access не угодил?

badmint

ну типа народ говорит что не сильно он удобен для изучения SQL =)
Я вот сижу и хрен пойму как можно в одном окошке писать подрят несколько запросов

oleg701

Ну вообще из того что я помню Access больше заточен под визуальное построение запросов, чем под написание SQL.
Наверное по нему SQL действительно не очень удобно изучать.

badmint

во-во, я именно про это =(

pitrik2

Я бы для таких целей поставил MS SQL Server.Его вполне реально поднять и настроить вообще без опыта.Ну и к нему SQL Manager 2005 например.А чем Access не угодил?
ну я бы посоветовал начать с чегонить самого простого
например: Firebird
http://en.wikipedia.org/wiki/Firebird_%28database_server%29
http://www.firebirdsql.org/
плюсы: не большая, просто установить, просто разобраться, поддерживает большинство стандартов, бесплатна

0000

Точняк firebird
Еще IB Expert к нему и все будет шоколадно.

Ivandgo

Можно например denwer поставить, там ставится mysql, который можно запускать из консольки,
и прога phpmyadmin - довольно удобный менеджер баз данных

aleks058

Может быть, ты хочешь создать не таблицу, а вьюху?

badmint

эт шо це таке?
чё-то вы понасоветовали, а хочется просто взять, запустить екзешник, установить прогу и писать запросы =)

0000

Блин, ставь Firebird + IB Expert - все просто. Я одного нерюха даже по аське научил, могу и тебя если что.
P.S. Есть так же сайт www.ibase.ru

qsk78

Посоветую PostgreSQL. Версию под Windows можно скачать здесь: http://wwwmaster.postgresql.org/download/mirrors-ftp?file=bi...

sinet

Осталось посоветовать Oracle.
В принципе тоже установил и сразу можно работать.

kruzer25

А как же mysql?

sinet

Про него было на предыдущей странице.

aleks058

А как же MS SQL 2005!
Можно поставить полную версию и тогда у тебя будет SQL Management Studio - удобная среда для управления сервером, а можно Express.
Пару дней назад вышел второй сервис-пак, но его возможности тебе наверняка не понадобятся.
В случае с экспрессом для управления можно поставить дополнительно Visual Studio (хотя не факт, кто кого дополняет ) или с сайта Микрософта Microsoft SQL Server Management Studio Express.

pitrik2

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

aleks058

=)
дада!
ты молодец.
Остальные - мудаки!

badmint

чё-то вы мне херню какую-то советуете! Нахрена мне надо создавать всякие серверы и т.д. ?

Realist

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

bars71

Очень полезный сайт для изучения SQL: www.sql-ex.ru
Можешь тренироваться даже там, где Access нет

Ivan826

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

Dasar

Как здесь уже сказали, Access больше заточен под визуальщину - соответственно изучать на нем именно сам sql сложнее.

qsk78

Из справки MS Office 2003
Сравнение языка запросов Microsoft Jet SQL и ANSI SQL
Ядро базы данных Microsoft Jet SQL в основном совместимо с ANSI-89 Level 1. Однако некоторые возможности языка запросов ANSI SQL не реализованы в Microsoft Jet SQL. В выпуске Microsoft Jet версии 4.X для поставщика Microsoft OLE DB для Jet реализовано больше синтаксиса ANSI-92 SQL. Аналогично, язык запросов Microsoft Jet SQL содержит зарезервированные слова и возможности, не поддерживаемые языком ANSI SQL.
Основные различия
Языки Microsoft Jet SQL и ANSI SQL имеют разные зарезервированные слова и типы данных. Дополнительные сведения см. в разделах Зарезервированные слова языка SQL ядра базы данных Microsoft Jet и Эквивалентные типы данных ANSI SQL. При использовании поставщика Microsoft OLE DB для Jet с версией Jet 4.X существует несколько дополнительных зарезервированных слов.
Другие правила применяются для конструкции Between...And, которая имеет следующий синтаксис.
выражение1 [NOT] Between значение1 And значение2
В языке Microsoft Jet SQL значение1 может быть больше, чем значение2; в языке ANSI SQL значение1 должно быть меньше значения2 или равно ему.
В языке Microsoft Jet SQL при использовании оператора Like поддерживаются как подстановочные знаки языка ANSI SQL, так и подстановочные знаки, относящиеся к Microsoft Jet. Невозможно совместно использовать подстановочные знаки ANSI и Microsoft Jet. Допускается использовать только один набор знаков, их нельзя смешивать. Использование знаков языка ANSI SQL разрешено только с ядром Jet версии 4.X и с поставщиком Microsoft OLE DB для Jet. При попытке использования подстановочных знаков языка ANSI SQL с приложением Microsoft Access или объектами DAO они будут трактоваться как литералы. Обратное верно при использовании поставщика Microsoft OLE DB для Jet и ядра Jet версии 4.X.

Символ соответствия Microsoft Jet SQL ANSI SQL
Любой текстовый символ ? знак подчеркивания (_)
Любое количество символов * %

В языке Microsoft Jet SQL меньше ограничений. Например, разрешается производить группировку и сортировку по выражениям.
Язык Microsoft Jet SQL поддерживает более производительные выражения.
Расширенные возможности языка Microsoft Jet SQL
Язык Microsoft Jet SQL обладает следующими расшиpенными возможностями.
Инструкция TRANSFORM обеспечивает поддержку перекрестных запросов.
Существуют дополнительные статистические функции SQL, такие как StDev и VarP.
Для определения параметров запроса используется описание PARAMETERS.
Возможности языка ANSI SQL, не поддерживаемые в языке Microsoft Jet SQL
Язык Microsoft Jet SQL не поддерживает следующие возможности языка ANSI SQL.
Ссылки в статистической функции DISTINCT. Например, в языке Microsoft Jet SQL невозможно использовать конструкцию SUM(DISTINCT имя_столбца).
Использование предложения LIMIT TO nn ROWS для ограничения числа строк, возвращаемых запросом. Для подобного ограничения можно использовать только предложение WHERE.
См. также
Эквивалентные типы данных ANSI SQL
Зарезервированные слова языка SQL ядра базы данных Microsoft Jet
Оператор Like
Статистические функции SQL
Типы данных языка SQL ядра базы данных Microsoft Jet
Использование подстановочных знаков при сравнении строк
За остальными несоответствиями, которые Microsoft не описала в справке, отсылаю тебя к Google.

badmint

кароч, не долго думая, поставли мне оракл и пэлэскуэль девелопер, сижу, пишу запросы и кайфую

badmint

www.sql-ex.ru
реально МЕГА САЙТ!
Оставить комментарий
Имя или ник:
Комментарий: