Главная страница
Навигация по странице:

  • INSERT INTO

  • SELECT

  • DELETE FROM

  • UPDATE

  • update

  • CREATE TABLE table_name (column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ]

  • Ограничения PRIMARY KEY

  • [FOREIGN KEY ] REFERENCES

  • CREATE TABLE AS ОПЕРАТОР

  • Добавить столбец в таблицу

  • Удаление столбца из таблицы ALTER TABLE table_name DROP COLUMN column_name;Переименование столбца в таблице

  • Удалить ограничение ALTER TABLE table_name DROP CONSTRAINT name DROP TABLE [schema_name].table_name [ CASCADE CONSTRAINTS ] [ PURGE ];CASCADE CONSTRAINTS

  • Основы SQL. Основы sql основы sql план курса План курса


    Скачать 1.14 Mb.
    НазваниеОсновы sql основы sql план курса План курса
    АнкорKzkzkzals
    Дата21.09.2022
    Размер1.14 Mb.
    Формат файлаpptx
    Имя файлаОсновы SQL.pptx
    ТипДокументы
    #688650
    страница8 из 9
    1   2   3   4   5   6   7   8   9

    select to_char(f.date_departure, 'dd.mm.yyyy') date_departure

    , a.city||' ('||a.airport_code||')' departure

    , a_ar.city||' ('||a_ar.airport_code||')' departure

    , tf.fare_conditions

    , tf.amount

    from ticket_flights tf

    where tf.ticket_no = '0005432661915'

    order by f.scheduled_departure

    ! добавить информацию: название самолета, место и данные пассажира

    SAMPLE (процент) [ SEED (значение) ]

    Процент может принимать значение от 0.000001 до 100 (не включая)

    Если указать параметр SEED, то БД будет попытаться вернуть одну и туже выборку, иначе каждый раз будет возвращаться разные строки таблицы.

    select t.*

    from tickets sample(10) t;

    Выбрать 10% данных из таблицы билетов с именем пассажира DMITRIY SERGEEV

    select *

    from tickets sample(10) t

    where t.passenger_name ='DMITRIY SERGEEV';

    Выборка одной записи

    select t.*

    from tickets sample(10) t

    where t.passenger_name='DMITRIY SERGEEV'

    and rownum=1;

    При выполнении запроса в первую очередь выполняется sample – будет выбрано 10% записей, после этого выполнится where. При выборе 10% записей, в списке может не оказаться пассажиров с таким именем.


    Способ 1. С помощью конструкции "SELECT FROM SELECT“

    select *

    from

    (select t.ticket_no, tf.flight_id, t.passenger_name

    , tf.amount

    from tickets t

    join ticket_flights tf on t.ticket_no=tf.ticket_no

    order by tf.amount desc)

    where rownum<=10

    Способ 2. "Классика" c Oracle 7

    select *

    from

    (select t.ticket_no, tf.flight_id, t.passenger_name

    , tf.amount

    , row_number() over (order by tf.amount desc) rn

    from tickets t

    join ticket_flights tf on t.ticket_no=tf.ticket_no

    )

    where rn<=10

    Способ 3. "Новомодный" c Oracle 12c.

    select t.ticket_no, tf.flight_id, t.passenger_name

    , tf.amount

    from tickets t

    join ticket_flights tf on t.ticket_no=tf.ticket_no

    order by tf.amount desc

    fetch first 10 rows only

    -- или одна строка fetch first row only

    from tickets t

    order by tf.amount desc

    fetch first 10 rows with ties

    offset m rows fetch next n rows only (выбор n строк после m записей)

    from tickets t

    order by tf.amount desc

    offset 25 rows fetch next 10 rows only

    fetch first 1 percent rows only (выбор 1% записей)

    from tickets t

    order by tf.amount desc

    fetch first 1 percent rows only


    Для модификации данных используются три оператора: INSERT, DELETE и UPDATE.

    Оператор INSERT используется для вставки одной записи или несколько записей в таблицу 

    Синтаксис оператора INSERT при вставке одной записи с помощью ключевого слова VALUES:

    INSERT INTO table (column1, column2, … column_n ) VALUES (expression1, expression2, … expression_n );

    Добавить новый самолет в БД:

    INSERT INTO aircrafts_data (aircraft_code, range, model)

    VALUES ('як-42', 12000, 'яковлев як-42');

    Многострочный оператор INSERT добавляет в таблицу несколько строк:

    INSERT INTO table (column1, column2, … column_n ) SELECT expression1, expression2, … expression_n FROM source_table

    [WHERE conditions]

    ! Добавить архивные модели самолетов (aircrafts_data_archive)

    ! Вставить недостающие данные о само

    летах c дальностью полета менее 5тыс. км. из архива (aircrafts_data_archive) в aircrafts_data

    Удаление строк из таблицы БД осуществляется с помощью оператора DELETE (удалить):

    DELETE FROM имя_таблицы

    [WHERE условие_поиска],

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

    Удалить данные из архива самолетов.

    DELETE FROM aircrafts_data_archive WHERE aircraft_code='';

    Удалить все билеты по бронированию номер

    Примечание. Отсутствие предложения WHERE приводит к удалению ВСЕХ строк из указанной таблицы.

    Обновление значения одного или нескольких столбцов в выбранных строках одной таблицы БД осуществляется с помощью оператора UPDATE (обновить):

    UPDATE имя_таблицы

    SET имя_столбца1 = выражение1

    , имя_столбца2 = выражение2…

    [WHERE условие_поиска]

    Увеличить на 20% дальность полета самолетов «Boeing».

    update aircrafts_data

    set range=1.2*range

    where upper(model) like 'BO%'

    Примечание. Отсутствие предложения WHERE приводит к обновлению ВСЕХ строк из указанной таблицы.

    Команды DDL:

    CREATE – создает объект БД;

    ALTER – изменяет определение существующего объекта;

    DROP – удаляет ранее созданный объект.

    CREATE TABLE table_name

    (

    column1 datatype [ NULL | NOT NULL ],

    column2 datatype [ NULL | NOT NULL ],



    column_n datatype [ NULL | NOT NULL ]

    [[CONSTRAINT <имя_ограничения>] <ограничение уровня колонки>]…

    [[CONSTRAINT <имя_ограничения>] <ограничение уровня таблицы>]

    )

    Ограничения

    PRIMARY KEY – определение первичного ключа таблицы;

    UNIQUE – обеспечение уникальности значений в колонке;

    NULL / NOT NULL – разрешение или запрещение неопределенных значений в колонке;

    CHECK <условие>задание условия на значение данных в колонке;

    [FOREIGN KEY <имя_колонки>] REFERENCES <имя_таблицы> <имя_колонки> – определение внешнего ключа для таблицы.

    Создания таблицы AIRPORTS_DATA

    CREATE TABLE AIRPORTS_DATA

    (

    AIRCRAFT_CODE CHAR(3) NOT NULL ENABLE,

    RANGE NUMBER(10,0) NOT NULL ENABLE,

    MODEL VARCHAR2(100) NOT NULL ENABLE,

    CONSTRAINT AIRCRAFTS_PKEY PRIMARY KEY (AIRCRAFT_CODE)

    )

    CREATE TABLE AS ОПЕРАТОР – создание таблицы на основе существующей, путем копирования столбцов существующей таблицы

    CREATE TABLE new_table AS (SELECT * FROM old_table);

    CREATE TABLE new_table AS (SELECT t1.col1, t2.col2, t2.col6

    FROM old_table1 t1

    join old_table2 t2 on t1.col1=t2.col1

    where t1.col5<1000);

    Добавить столбец в таблицу

    ALTER TABLE table_name ADD column_name column-definition;

    Изменить столбец в таблице

    ALTER TABLE table_name MODIFY column_name column_type;

    Удаление столбца из таблицы

    ALTER TABLE table_name DROP COLUMN column_name;

    Переименование столбца в таблице

    ALTER TABLE table_name RENAME COLUMN old_name to new_name;

    Переименовать таблицу

    ALTER TABLE table_name RENAME TO new_table_name;

    Добавить ограничение

    ALTER TABLE table_name ADD CONSTRAINT name

    PRIMARY KEY (table_id);

    Удалить ограничение

    ALTER TABLE table_name DROP CONSTRAINT name

    DROP TABLE [schema_name].table_name [ CASCADE CONSTRAINTS ] [ PURGE ];

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

    PURGE - необязательный. Если указано, таблица и ее зависимые объекты будут удалены из корзины, и вы не сможете восстановить таблицу. Если PURGE не указан, таблица и ее зависимые объекты помещаются в мусорную корзину и могут быть восстановлены позже, если это необходимо
    1   2   3   4   5   6   7   8   9


    написать администратору сайта