Зачем нужен sql вместо excel
Перейти к содержимому

Зачем нужен sql вместо excel

  • автор:

SQL простыми словами: основы и применение

17 Янв 2020 10:03 IT GIRL 18

Post Views: 4 168

SQL простыми словами: основы и применение Блог 2020-01-17 ru SQL простыми словами: основы и применение

286 104

Boodet Online +7 (499) 649 09 90 123022 , Москва , ул. Рочдельская, дом 15, строение 15

286 104

Boodet Online +7 499 649 09 90 123022 , Москва , ул. Рочдельская, дом 15, строение 15
Поделиться
Поделиться

SQL: простыми словами

Аббревиатура « SQL » расшифровывается как «язык структурированных запросов». Это своеобразный язык программирования, предназначенный для того, чтобы извлекать конкретную информацию из баз данных (database) было несложно. Другими словами, это язык баз данных. Зачем нужен SQL , какие там есть команды и чем этот язык лучше других — рассказывают специалисты Boodet.Online.

Зачем нужен SQL

  • точность — можно не хранить избыточные данные;
  • гибкость — даже самые сложные запросы легко выполнить;
  • масштабируемость — с одной БД могут работать множество пользователей;
  • безопасность — доступ к данным в таблицах есть только у определенных пользователей.

Из истории

История этого языка началась в конце 70 годов, когда основали компанию Relational Software, Inc. Первым ее продуктом стал Oracle, который написали на C. Чтобы продукт был гибким и простым для тех, кто не изучал программирование, создали внутренний язык — SQL . Авторство принадлежит исследователям IBM Раймонду Бойсу и Дональду Чемберлину. В 1970 SQL назывался «SEQUEL» и служил для извлечения и обработки Big Common Data (больших общих данных).

SQL — это сертифицированный ANSI-язык взаимодействия с реляционными БД. Его можно менять под свои нужды, но все распространенные продукты работают именно на той версии, которую утвердили ANSI.

Как работает SQL

Реляционная база данных — это пространство, в котором связанную информацию хранят в нескольких таблицах. При этом есть возможность запрашивать информацию в нескольких таблицах одновременно.

А теперь о том же самом, но простым языком. Допустим бизнесмен желает видеть информацию о продажах своего товара. Для этого можно настроить электронную таблицу в «Excel» со всей информацией, которую надо отслеживать, в виде отдельных столбцов:

  • номер заказа;
  • дата;
  • сумма к оплате;
  • номер накладной;
  • имя клиента, адрес и телефон.

Эта сработает, когда заказ от покупателя всего один. А когда их несколько или десятки, сотни? Если продолжать вносить сведения в таблицу Excel, обнаружится, что одинаковая информация (имя, адрес и номер телефона) хранятся в нескольких строках электронной таблицы. Так появляются избыточные данные.

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

С реляционной SQL таких проблем не будет. Можно настроить две таблицы: одну — для заказов, вторую — для клиентов. Таблица «клиенты» будет включать уникальный идентификационный номер для каждого, а также имя, адрес и номер телефона, которые уже отслеживают. Таблица «заказы» будет включать номер заказа, дату, сумму к оплате, номер накладной. А вместо отдельного поля для каждого элемента данных о заказчике будет столбец для «идентификатора клиента».

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

Какие базы SQL существуют

Какими продуктами чаще всего пользуются при работе с БД:

  1. Oracle Database. Помимо основных функций, Oracle Database автоматизирует управление серверами и данными. Совместим с тремя основными операционными системами: MacOS, Windows и Linux.
  2. MySQL. Эта БД с открытым исходным кодом, разработана Oracle. Ей пользуются такие крупные бренды, как Facebook, Adobe и Google. MySQL бесплатен как для юридических, так и для частных лиц.
  3. Microsoft SQL. Реляционная БД, идеально совместимая с операционными системами Linux и Windows. Она идеально подходит для веб-серверов под управлением Windows, а также для потребительского софта.
  4. Amazon Relational Database Service (RDS). Облачная реляционная СУБД, простая в настройке и использовании. Есть инструменты бюджетирования облака, безопасности и мониторинга.

Структура SQL-запросов

Язык SQL очень простой. Он состоит из команд для выполнения различных функций. Эти функции включают в себя:

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

Чтобы любому человеку было проще ориентироваться, SQL состоит из нескольких основных подгрупп.

Для определения данных (DDL)

Для манипулирования данными (DML)

Триггеры

Триггеры — это действия, которые делаются при выполнении определенных условий. Любой триггер состоит из трех частей:

  • событие — изменение, которое он активирует;
  • состояние — запрос или тест, который выполняется при активации;
  • действие — процедура, выполняемая при срабатывании триггера и выполнении условия.

Технология клиент-сервер и удаленный доступ

Технология клиент-сервер поддерживает отношения «многие-к-одному» клиентов (многие) и сервера (один). В SQL есть команды, которые управляют тем, как клиентское приложение может получить доступ к d atabase по сети.

Безопасность и аутентификация

SQL предоставляет механизм для управления БД. То есть, он гарантирует, что пользователю будет показана только конкретная информация, а исходная версия будет защищена СУБД.

Встроенный SQL

SQL предоставляет возможность встраивания основных языков, таких как C, COBOL, Java, для запросов от них во время выполнения.

Управление транзакциями

Транзакции — это важный элементом СУБД. Для управления ими используется TCL, который имеет команды:

  • Commit;
  • RollBack;
  • Savepoint.

Расширенный SQL

Расширенный SQL включает в себя такие запросы, как рекурсивные, поддержки принятия решений, интеллектуальный анализ данных, пространственные данные и XML (eXtensible Markup Language).

Как используется SQL

Почему многие выбирают именно SQL :

  • простые запросы можно использовать для очень быстрого и эффективного извлечения большого объема данных из СУБД;
  • SQL легко изучить, почти каждая СУБД поддерживает;
  • управлять СУБД с помощью SQL несложно, поскольку не требуется большого количества кода.

SQL и Big Data

В настоящее время существует тенденция аккумулирования больших объемов данных. Феномен Big Data требует наличия набора навыков, чтобы обрабатывать и извлекать информацию в любой области — медицина, образование, бизнес, спорт и т.д. На основании анализа Big Data принимают стратегические и обоснованные решения, которые могут повысить прибыль компаний и решить реальные проблемы. Например, с помощью SQL разрабатывают модели, которые делают общественный транспорт простым и удобным. Это язык, которые используется практически в любой сфере жизни человека, решает реальные проблемы и помогает создавать новые технологии.

SQL позволяет изучить набор данных, визуализировать его, определить структуру и узнать, как на самом деле он выглядит. Это помогает узнать, есть ли какие-либо пропущенные значения. Благодаря нарезке, фильтрации, агрегации и сортировке SQL позволяет понять, как распределяются значения и как организован набор Data.

Подключение клиентских приложений

SQL эффективен для организации доступа к данным, при запросах и манипуляциях. Но он ограничен в визуализации. Как это решить? Он хорошо интегрируется с другими языками сценариев, например, R и Python.

Кроме того, специализированные библиотеки интеграций для SQL , такие как SQLite и MySQLdb, применяют при подключении клиентского приложения к ядру базы данных, что позволяет работать с СУБД совместно.

Чем открыть SQL-файл

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

Если вы хотите просто посмотреть, что внутри SQL -файла, можно воспользоваться обычным текстовым редактором («Блокнот» для Windows или TextEdit для Mac). В этих программах можно не только посмотреть, но и вручную отредактировать сценарий. Прежде чем что-нибудь открывать и менять, рекомендуем сделать копию исходного файла. Если нужно потренироваться в работе с SQL , арендуйте безопасное облачное пространство.

Что такое SQL: как устроен, зачем нужен и как с ним работать

Рассказываем о языке, на котором «говорят» большинство баз данных.

Иллюстрация: Оля Ежак для Skillbox Media

Иван Стуков

Иван Стуков
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.

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

Работать с этими циклопическими массивами информации вручную было бы долго, муторно и непродуктивно. Поэтому придумали SQL — специальный язык для общения с БД.

Что такое SQL

SQL (Structured Query Language, или язык структурированных запросов) — это декларативный язык программирования (язык запросов), который используют для создания, обработки и хранения данных в реляционных БД.

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

Поэтому перед изучением SQL нужно разобраться, как устроены базы данных.

В каких базах данных используют SQL

Все БД можно поделить на два вида: реляционные и нереляционные. Язык SQL нужен для работы с первыми.

SQL настолько тесно связан с реляционными БД, что все нереляционные БД в противовес стали называть NoSQL. Вот и получилось, что SQL — это язык программирования, а NoSQL — тип баз данных.

Про реляционные БД часто говорят, что это набор двумерных таблиц. Прямо как в Excel: со столбцами, строками и ячейками. Это понятная визуализация, хотя и не совсем точная.

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

Чем же база данных отличается от таблицы? Тем, что в базе:

  • У столбцов и строк нет определённого положения. Нельзя сказать, что столбец status находится до или после столбца num_floors, а имя Анастасии Романиной — до или после имени Дмитрия Пожарова.
  • Каждый столбец диктует свой домен, то есть тип данных, к которому могут относиться его значения. Например, в столбцах cost и num_floors могут храниться только числа, а в столбце client — только строки.
  • Каждая строка должна быть уникальной и не может повторять какую-то другую строку.

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

Нормализация в реляционных базах данных

Вернёмся к БД нашей строительной фирмы. Она может казаться удобной, но на самом деле не лишена недостатков.

Возьмём дом, который строится для Марии Медичиной. Сейчас он только проектируется, и мы ещё не выбрали для него подрядчика. Поэтому значение атрибута contractor равно NULL, то есть поле пустое. Но рано или поздно мы выберем подрядчика — например, ООО «Коттеджи». Тогда, кроме имени подрядчика, нам нужно будет заново указать его телефон. Сейчас значение этого атрибута тоже NULL. Пока что сделать это несложно.

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

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

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

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

Теперь, если у любого клиента или подрядчика сменится телефон, нужно будет внести изменения всего один раз. Добавлять новые записи теперь тоже будет проще.

Таблицы связывают между собой ключами. Они бывают трёх видов.

Первичный — указывает на запись, к которой он относится. В одном отношении не может быть нескольких записей с одним и тем же первичным ключом, и значение первичного ключа не может быть NULL. Первичным ключом может быть любое уникальное значение. Например, в таблице contractors так можно было бы использовать ИНН, если б он был в нашей базе.

Внешний — содержит ссылку на первичный ключ из другой таблицы и привязывает одну таблицу к другой.

Родительский — это первичный ключ, на который ссылается внешний ключ.

Язык программирования SQL: как управлять базами данных

Ещё одно отличие реляционных БД от обычных таблиц — в них нельзя вносить изменения напрямую. Для этого нужны СУБД, или системы управления базами данных.

СУБД — это посредник, который получает от пользователя команды, что сделать с базой данных, и выполняет их. Эти-то команды и написаны на языке SQL.

SQL — декларативный язык. Это значит, что при написании кода мы говорим, что хотим получить от программы. Логика того, как именно СУБД будет выполнять поставленную задачу, скрыта от нас.

Конечно, если вы хотите сделать свои запросы более быстрыми и эффективными или обезопасить базы данных, знать алгоритмы СУБД полезно. Но даже не разбираясь в этих тонкостях, вы сможете писать на SQL.

Все SQL-команды делятся на четыре вида:

  • DDL (Data Definition Language, или язык описания данных). Их используют, чтобы создавать, изменять и удалять целые таблицы.
  • DML (Data Manipulation Language, или язык управления данными). Их применяют к содержимому таблиц, чтобы создавать, изменять, удалять атрибуты и записи. Если нужно получить какую-то информацию из базы данных, то пользуются именно DML-операторами.
  • DCL (Data Control Language, или язык контроля данных). Они нужны, чтобы выдавать конкретным пользователям доступ к базам данных и отзывать его.
  • TCL (Transaction Control Language, или язык контроля транзакций). Позволяет управлять транзакциями. Транзакция — это набор из нескольких команд, которые выполняются поочерёдно. Если одна из команд внутри транзакции не срабатывает, то все уже совершённые действия отменяются. То есть транзакция может быть совершена либо полностью, либо никак.

Где применяют SQL

В индексе TOPDB популярность СУБД определяется по тому, как часто их гуглят. В декабре 2022 года первые пять мест в нём занимают именно реляционные СУБД — вместе они дают больше 70% поисковых запросов.

Рейтинг DB-Engines даёт похожие цифры. В декабре 2022 года доля реляционных СУБД составляет 71,7%.

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

Но умение работать с базами данных пригодится не только программисту.

Аналитики данных напрямую работают с «сырой» информацией. Чем лучше и свободнее они общаются с БД, тем проще им добывать и обрабатывать нужные данные в нужном виде.

Маркетологам SQL тоже будет полезен для решения аналитических задач.

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

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

Как работать с SQL: основные операторы

Запросы в SQL похожи на естественный английский язык и выглядят как полноценные предложения.

Например, если мы захотим в базе данных нашей строительной фирмы получить номер телефона ООО «Коттеджи», нам нужно написать такую команду:

Также в SQL существуют агрегатные функции. Они позволяют производить с данными дополнительные операции и указываются вместо атрибутов. Агрегатные функции записываются в формате FUNCTION(ATTRIBUTE).

Вот некоторые из них.

COUNT — считает количество записей в колонке.

SUM — складывает содержимое значений колонки.

MIN — указывает на минимальное значение в колонке.

MAX — указывает на максимальное значение в колонке.

AVG — считает среднее значение в колонке.

ROUND — округляет значение в колонке.

Для работы с инструкциями, которые содержат агрегатные функции, есть специальные операторы.

GROUP BY — группирует выходные значения для колонок, к которым применили агрегатную функцию.

HAVING — работает как WHERE, но может применяться к агрегатным функциям.

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

Что запомнить

  • SQL — это язык программирования для работы с реляционными базами данных.
  • Самые распространённые базы данных — реляционные. Их можно представить как набор двумерных таблиц, связанных друг с другом ключами.
  • SQL обращается к базам данных не напрямую, а через системы управления базами данных, илиСУБД.
  • Производители СУБД пишут для языка SQL собственные расширения — диалекты. Но базовый синтаксис у всех них одинаковый.
  • SQL-запросы состоят из операторов и складываются в полноценные предложения, которые похожи на естественный английский язык.

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Использование Excel со связанными серверами SQL Server и распределенными запросами

Microsoft SQL Server поддерживает подключения к другим источникам данных OLE DB (как постоянные, так и прямые). При наличии постоянного подключения сервер называется связанным. Прямое подключение устанавливается для отправки одного запроса (распределенного запроса).

Одним из типов источников данных OLE DB, которые можно запрашивать через SQL Server подобным образом, являются книги Microsoft Excel. В этой статье описан синтаксис, который необходимо использовать при настройке источника данных Excel в качестве связанного сервера, а также синтаксис распределенного запроса к источнику данных Excel.

Дополнительная информация

Запрос источника данных Excel на связанном сервере

Вы можете использовать SQL Server Management Studio или Enterprise Manager, хранимую в системе процедуру, SQL-DMO (Объекты распределенного управления) или SMO (Управляющие объекты SQL Server) для настройки источника данных Excel в качестве связанного сервера SQL Server. (Объекты SMO поддерживаются только в Microsoft SQL Server 2005.) В каждом случае необходимо задать следующие четыре свойства:

  • Имя, которое необходимо использовать для связанного сервера.
  • Поставщик OLE DB, который будет использоваться для подключения.
  • Источник данных или полное имя пути и файла для рабочей книги Excel.
  • Строка провайдера, которая идентифицирует цель как рабочую книгу Excel. По умолчанию поставщик Jet ожидает базу данных Access.

Хранимая в системе процедура sp_addlinkedserver также требует свойство @srvproduct, которое может быть любым строковым значением.

Заметка Если вы используете SQL Server 2005, то для свойства Имя продукта в SQL Server Management Studio или для свойства @srvproduct в хранимой процедуре для источника данных Excel необходимо указать значение, которое не должно быть пустым.

Использование SQL Server Management Studio или Enterprise Manager для настройки источника данных Excel в качестве связанного сервера
SQL Server Management Studio (SQL Server 2005)
  1. В SQL Server Management Studio разверните Серверные объекты в Обозреватель объектов.
  2. Щелкните правой кнопкой мыши Связанные серверы, а затем щелкните Новый связанный сервер.
  3. В левой панели выберите страницу Общие, а затем выполните следующие шаги:
    1. В первом текстовом поле введите любое имя для связанного сервера.
    2. Выберите опцию Другой источник данных.
    3. В списке Поставщик выберите Microsoft Jet 4.0 OLE DB Provider.
    4. В поле Имя продукта введите Excel для имени источника данных OLE DB.
    5. В поле Источник данных введите полный путь и имя файла Excel.
    6. В поле Строка поставщика введите Excel 8.0 для рабочей книги Excel 2002, Excel 2000 или Excel 97.
    7. Нажмите OK, чтобы создать новый связанный сервер.

    Примечание В SQL Server Management Studio невозможно развернуть имя нового связанного сервера для просмотра списка объектов, содержащихся на сервере.

    Enterprise Manager (SQL Server 2000)
    1. В менеджере Enterprise Manager щелкните, чтобы развернуть папку Безопасность.
    2. Щелкните правой кнопкой мыши Связанные серверы, а затем щелкните Новый связанный сервер.
    3. На вкладке Общие выполните следующие действия:
      1. В первом текстовом поле введите любое имя для связанного сервера.
      2. В поле Тип сервера нажмите Другой источник данных.
      3. В списке Имя поставщика нажмите кнопку Microsoft Jet 4.0 OLE DB Provider.
      4. В поле Источник данных введите полный путь и имя файла Excel.
      5. В поле Строка поставщика введите Excel 8.0 для рабочей книги Excel 2002, Excel 2000 или Excel 97.
      6. Нажмите OK, чтобы создать новый связанный сервер.
      Использование хранимой процедуры для настройки источника данных Excel в качестве связанного сервера

      Вы также можете использовать хранимую в системе процедуру sp_addlinkedserver для настройки источника данных Excel в качестве связанного сервера:

      DECLARE @RC int
      DECLARE @server nvarchar(128)
      DECLARE @srvproduct nvarchar(128)
      DECLARE @provider nvarchar(128)
      DECLARE @datasrc nvarchar(4000)
      DECLARE @location nvarchar(4000)
      DECLARE @provstr nvarchar(4000)
      DECLARE @catalog nvarchar(128)
      — Set parameter values
      SET @server = ‘XLTEST_SP’
      SET @srvproduct = ‘Excel’
      SET @provider = ‘Microsoft.Jet.OLEDB.4.0’
      SET @datasrc = ‘c:\book1.xls’
      SET @provstr = ‘Excel 8.0’
      EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
      @datasrc, @location, @provstr, @catalog

      Как уже отмечалось выше, для данной хранимой процедуры требуется дополнительное произвольное значение строки для аргумента @srvproduct, которое отображается в виде «Имени продукта» в конфигурации Enterprise Manager и SQL Server Management Studio. Аргументы @location и @catalog не используются.

      Использование SQL-DMO для настройки источника данных Excel в качестве связанного сервера

      Объекты распределенного управления SQL можно использовать для настройки источника данных Excel в качестве связанного сервера программно с использованием Microsoft Visual Basic или другого языка программирования. Необходимо указать те же четыре аргумента, которые требуются при настройке через Enterprise Manager и SQL Server Management Studio.

      Private Sub Command1_Click()
      Dim s As SQLDMO.SQLServer
      Dim ls As SQLDMO.LinkedServer
      Set s = New SQLDMO.SQLServer
      s.Connect «(local)», «sa», «password»
      Set ls = New SQLDMO.LinkedServer
      With ls
      .Name = «XLTEST_DMO»
      .ProviderName = «Microsoft.Jet.OLEDB.4.0»
      .DataSource = «c:\book1.xls»
      .ProviderString = «Excel 8.0»
      End With
      s.LinkedServers.Add ls
      s.Close
      End Sub

      Использование SMO для настройки источника данных Excel в качестве связанного сервера

      В SQL Server 2005 можно использовать управляющие объекты SQL Server (SMO) для программной настройки источника данных Excel в качестве связанного сервера. Для этого применяется Microsoft Visual Basic .NET или другой язык программирования. Необходимо указать те же аргументы, которые требуются при настройке через SQL Server Management Studio. Объектная модель SMO расширяет и заменяет объектную модель SQL-DMO. Так как модель SMO совместима с SQL Server 7.0, SQL Server 2000 и SQL Server 2005, ее также можно использовать для настройки SQL Server 2000.

      Imports Microsoft.SqlServer.Management.Smo
      Imports Microsoft.SqlServer.Management.Common

      Public Class Form1

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim s As Server
      Dim conn As ServerConnection
      Dim ls As LinkedServer

      conn = New ServerConnection("ServerName\InstanceName", "YourUesrName", "YourPassword")
      s = New Server(conn)
      Try
      ls = New LinkedServer(s, "XLTEST_DMO")
      With ls
      .ProviderName = "Microsoft.Jet.OLEDB.4.0"
      .ProductName = "Excel"
      .DataSource = "c:\book1.xls"
      .ProviderString = "Excel 8.0"
      End With
      ls.Create()
      MessageBox.Show("New linked Server has been created.")
      Catch ex As SmoException
      MessageBox.Show(ex.Message)
      Finally
      ls = Nothing
      If s.ConnectionContext.IsOpen = True Then
      s.ConnectionContext.Disconnect()
      End If
      End Try

      End Sub
      End Class
      Запрос источника данных Excel на связанном сервере

      После настройки источника данных Excel в качестве связанного сервера, вы можете легко запросить его данные из Query Analyzer или другого клиентского приложения. Например, чтобы получить строки данных, которые хранятся на листе Sheet1 файла Excel, используйте через SQL-DMO следующий код для настроенного связанного сервера:

      SELECT * FROM XLTEST_DMO. Sheet1$

      Кроме того, можно использовать OPENQUERY для «транзитного» запроса связанного сервера Excel:

      SELECT * FROM OPENQUERY(XLTEST_DMO, ‘SELECT * FROM [Sheet1$]’)

      Первый аргумент, который требуется OPENQUERY, — это имя связанного сервера. Чтобы указать имена листов, используйте разделители, как показано выше.

      Кроме того, можно получить список всех таблиц, доступных на связанном сервере Excel, с помощью следующего запроса:

      EXECUTE SP_TABLES_EX ‘XLTEST_DMO’

      Запрос источника данных Excel с помощью распределенных запросов

      Можно использовать распределенные запросы SQL Server и функцию OPENDATASOURCE или OPENROWSET для специальных запросов к редко обращающимся источникам данных Excel.

      Заметка Если вы используете SQL Server 2005, убедитесь, что вы включили опцию Ad Hoc Distributed Queries, используя Настройка контактной зоны SQL Server, как в следующем примере:

      SELECT * FROM OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0’,
      ‘Data Source=c:\book1.xls;Extended Properties=Excel 8.0’). Sheet1$

      Обратите внимание на необычный синтаксис второго аргумента OPENROWSET («Строка поставщика»):

      SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,
      ‘Excel 8.0;Database=c:\book1.xls’, Sheet1$)

      Синтаксис, привычный для разработчиков ADO, выглядит следующим образом:

      SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,
      ‘Data Source=c:\book1.xls;Extended Properties=Excel 8.0’, Sheet1$)

      Этот синтаксис вызывает следующую ошибку поставщика Jet:

      Невозможно найти устанавливаемый ISAM.

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

      SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘DataSource=c:\book1.xls;Extended Properties=Excel 8.0’, Sheet1$)

      Ссылки

      Так как для связанных серверов SQL Server и распределенных запросов используется поставщик OLE DB, учитывайте общие рекомендации и предупреждения, которые относятся к применению ADO с Excel.
      Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

      257819 Как использовать ADO с данными из Visual Basic или VBA в Excel.

      Для получения дополнительной информации об управляющих объектах SQL Server (SMO) посетите следующий веб-сайт MSDN:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *