Правильно ли удалить кортеж из результата моего запроса, который был заполнен из оператора SQL? - PullRequest
0 голосов
/ 17 октября 2018

Я изучаю sql запросы.Если мой результат запроса возвращается, как показано на картинке результат запроса , это правильный результат запроса?Если нет, то что я должен сделать, чтобы вернуть результат в виде твердой таблицы, где он не должен позволять мне редактировать результат.Я использую phpmyadmin.

Запрос состоял в том, чтобы перечислить всех учеников, которые не предоставили данные NOK.мое заявление sql дано ниже:

select CONCAT(s.fname,' ', s.lname) as Names,s.bannerNo 
from Student s
where NOT EXISTS (select*from NOK n where n.studentID = s.bannerNo) 

Стол ученика :

Student (bannerNo,fName,lName, street,city,postcode,mobile,email,DOB,gender,category,nationality,special needs, comments,status,courseNo,staffNo)
Primary Key bannerNo

Таблица NOK :

NOK (StudentID,fName,lName,relationship,street,city,postcode,phoneNo)
Primary Key StudentID
Foreign key StudentID references Student(bannerNo)

1 Ответ

0 голосов
/ 18 октября 2018

Если я правильно понимаю, вы хотите удалить кортеж на визуальном инструменте (phpmyadmin), который показывает вам результат запроса.

Я не знаю инструмент, но он показывает «Удалить»Кнопка ", как доказывает ваше изображение.

Позвольте мне перевести это в термины SQL: вы видите" набор результатов "и хотите знать, действительно ли оно манипулирует им, поэтому оно повлияет на базовые данные.Правильно ли я понял?

Если так, то этот вопрос похож на манипулирование данными с использованием представлений.Представление - это проекция одной или нескольких таблиц.Тогда ... являются ли обновляемые представления ?Ответ: некоторые из них.

Какие?Это зависит от движка базы данных.Oracle довольно хорош в этом;другая база данных на самом деле не позволяет этого, но в небольшом числе случаев.

Итак, в чем же тогда основная идея?Ну, в большинстве баз данных основная концепция о «прослеживаемости».Соответствует ли каждая результирующая строка одной строке в одной базовой таблице?Если это так, то, скорее всего, вы сможете обновить / удалить его.Если нет, вам не повезло.

Почему?Потому что ядро ​​базы данных должно иметь некоторый путь назад к источнику данных, которые вы просматриваете.Если ваш запрос содержит первичный ключ таблицы, это хорошая новость.Если нет, то это будет сложнее.Может быть, какой-то другой столбец имеет уникальное ограничение или что-то, что может быть полезно.

Итог, это зависит от:

  • Механизм базы данных (в данном случае MySQL).
  • «Отслеживаемость» конкретного запроса.Можно ли проследить его до строк?Похоже, что в вашем запросе, так как PK bannerNo прямо здесь.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...