Язык SQL

Существует множество разнообразных систем управления базами данных: Microsoft Access, Oracle, DB2, Microsoft SQL Server, Informix, mySQL, и это далеко не полный список. А нам необходимо обратиться к базе данных из программы на языке C# и «объяснить» ей, что мы ищем.

Проще всего включить в код C# фрагмент на «языке базы данных», с помощью которого выполняется запрос к базе данных на получение нужных столбцов и строк.

(По правде говоря, существует еще и промежуточный уровень – ADO.NET, но сейчас мы не станем заострять на нем внимание.)

Много лет назад специалисты по базам данных договорились об использовании «единого языка баз данных», который понимали бы большинство существующих баз данных. Они назвали его SQL (от англ. Structured Query Language — язык структурированных запросов). Не следует путать язык SQL с системой управления базами данных SQL Server, разработанной корпорацией Microsoft. Язык SQL поддерживают системы управления базами данных (СУБД), выпускаемые самыми разными производителями.

Приступая к разговору о том, как использовать C# при работе с базами данных, сначала познакомимся с основами языка SQL. Ниже приведены примеры операторов на языке SQL и описывается результат их выполнения.

Основными командами SQL являются:

  • SELECT (для выбора некоторых данных);
  • INSERT (для добавления новых данных);
  • UPDATE (для изменения информации, уже существующей в базе данных). Приведем примеры каждой команды.

Как правило, оператор SELECT записывается следующим образом:

SELECT <имена извлекаемых столбцов>

FROM <имена одной или нескольких таблиц базы данных> WHERE <условие выбора>

Рассмотрим пример выбора данных оператором SELECT:

SELECT * FROM PLANET

Символ звездочка * означает выбор всех столбцов таблицы. Поэтому данный оператор вернет из базы данных всю таблицу Planet со всеми строками и столбцами. Рассмотрим оператор

SELECT PlanetName, Inhabitants FROM PLANET

Этот запрос возвращает столбцы PlanetName и Inhabitants со всеми строками из таблицы PLANET.

  

PlanetName

Inhabitants

Меркурий

Меркуриане

Венера

Венериане

Земля

Земляне

Марс

Марсиане

Юпитер

Юпитериане

Знок

Знокиане

Сатурн

Сатурниане

Уран

Ураниане

Нептун

Нептуниане

Плутон

Плутониане

Запрос

SELECT PlanetName, InhabitantsFROM PLANET WHERE PlanetName=’Venus’

возвращает столбцы PlanetName и Inhabitants из таблицы PLANET. В результат его выполнения будут включены только те строки, которые содержат значение Venus в столбце PlanetName.

PlanetName

Inhabitants

Венера

Венериане

Запрос:

SELECT PlanetName, Population FROM POPULATION WHERE Population<100000

возвращает из таблицы POPULATION строки столбцов PlanetName и Population, для которых значение столбца Population меньше 100000.

PlanetName

Population

Меркурий

40000

Венера

25

Нептун

<NULL>

Плутон

<NULL>

Меркурий

35000

Венера

3

Знок

8700

Нептун

<NULL>

Плутон

<NULL>

Как правило, оператор INSERT записывается следующим образом:

INSERT INTO <таблица базы данных, к которой добавляются строки>

(<названия столбцов, в которые будут добавляться значения>)

VALUES (<значения, которые будут вставлены в указанные столбцы>)

Пример:

INSERT INTO PLANET (PlanetName, DistanceFromSun, Inhabitants)

VALUES (Флафф, 23500000, ‘Флаффиане’)

Оператор INSERT добавляет в таблицу PLANET новую строку. Он не возвращает какого-либо результата в программу, но после его выполнения таблица примет вот такой вид:

  

PlanetName

DistanceFromSun

Inhabitants

Меркурий

57909

Меркуриане

Венера

108200

Венериане

Земля

149600

Земляне

Марс

227940

Марсиане

Юпитер

778400

Юпитериане

Знок

7208100

Знокиане

Сатурн

1423600

Сатурниане

Уран

2867000

Ураниане

Нептун

4488400

Нептуниане

Плутон

5909600

Плутониане

Флафф

23500000

Флаффиане

Оператор UPDATE записывается следующим образом:

UPDATE <таблица базы данных, в которую вносятся изменения>

SET <названия столбцов, в которые необходимо внести изменения> = <новые значения> WHERE <условия>

Пример:

UPDATE PLANET SET PlanetName= ‘Стафф’, Inhabitants=’Стаффиане’ WHERE PlanetName=’Флафф’

Оператор изменяет некоторые значения в той строке, где столбец PlanetName имеет значение «Флафф». Результат выполнения операции программе не возвращается, но таблица приметвот такой вид:

PlanetName

DistanceFromSun

Inhabitants

Меркурий

57909

Меркуриане

Венера

108200

Венериане

Земля

149600

Земляне

Марс

227940

Марсиане

Юпитер

778400

Юпитериане

Знок

7208100

Знокиане

Сатурн

1423600

Сатурниане

Уран

2867000

Ураниане

Нептун

4488400

Нептуниане

Плутон

5909600

Плутониане

Стафф

23500000

Стаффиане

Связи и объединение таблиц базы данных

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

Например, можно выбрать из обеих таблиц все строки, касающиеся Венеры:

PLANET

  

PlanetName

DistanceFromSun

Inhabitants

Венера

108200

Венериане

PLANET

  

PlanetName

DistanceFromSun

Inhabitants

Венера

108200

Венериане

POPULATION

  

PlanetName

Year

Population

Венера

2008

25

Венера

2009

3

POPULATION

  

PlanetName

Year

Population

Венера

2008

25

Венера

2009

3

PLANET

  

PlanetName

DistanceFromSun

Inhabitants

Венера

108200

Венериане

POPULATION

  

PlanetName

Year

Population

Венера

2008

25

Венера

2009

3

А затем объединить полученные данные в одну большую таблицу:

SELECT *

FROM PLANET INNER JOIN POPULATION ON PLANET.PlanetName=POPULATION.planetName WHERE PlanetName=’Венера’

PLANETS_AND_POPULATION

   

PlanetName

DistanceFromSun

Inhabitants

Year

Population

Венера

108200

Венериане

2008

25

Венера

108200

Венериане

2009

3

О Main Aditor

Здравствуйте! Если у Вас возникнут вопросы, напишите нам на почту help@allinweb.ru

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

Ваш адрес email не будет опубликован.