[Powered by Google Translate] [SQL] [Крістофер Варфоломій] [HARVARD UNIVERSITY] [Це CS50] [CS50 TV] Таким чином, програмісти використовують бази даних як інструмент для зберігання та впорядкування наші постійні дані в таблицях. Це означає, що ваші дані зберігаються на енергонезалежну медіан, таких як жорсткий диск, і навіть коли комп'ютер вимкнений, дані залишаються недоторканими. І, як програмісти, наші програми використовують бази даних для сценаріїв, таких як зберігання інформацію про користувачів з веб-форм, дивлячись інвентарю, або оновлення інформації про те, які сайти переглядів. Але як же ми насправді взаємодіють з нашої бази даних, або те, що ми використовуємо для читання, зберігання, видалення, і оновлювати наші дані у цих таблицях бази даних? Ну, відповідь у тому, що ми використовуємо спеціальний тип бази даних мови , Який взаємодіє безпосередньо з нашими таблицями бази даних. Це ім'я є Structured Query Language, [Мова структурованих запитів] або те, що я називаю SQL. Тепер [Se-Quel], або SQL, не є мовою програмування, але замість цього, це мова, яка надає стандартний набір команд отримувати та обробляти дані з різних систем управління базами даних. Для CS50, ми підемо на чотири основні команди: вибирати, вставляти, оновлювати і видаляти. Крім того, ми будемо використовувати інтерфейс бази даних веб званий PHPMyAdmin, які встановлені на пристрої, щоб написати нашу SQL заяви. Таким чином, щоб допомогти вам запам'ятати ці команди, Я навів деякі кекси в шафу, щоб допомогти з нашими сценаріями. Скажімо, у вас база даних кекс, в де ви зберігаєте всю інформацію про ваших кексів. Тепер, бази даних може містити безліч таблиць і самі таблиці можуть містити багато стовпців. Усередині бази даних наших кекс, у нас є таблиця під назвою cupcake_cupboard. Ця таблиця буде використовуватися для зберігання всієї інформації про кексів що, ну, у вашій шафі. Стовпці, які знаходяться всередині вашої таблиці, являють собою атрибути кекс. Наприклад, колони cupcake_cupboard є Cake ID, CakeType, CakeColor, і CakeIsNice. Це логічне типізований стовпець використовується, щоб визначити, торт добре чи не добре. Ми збираємося почати з написання оператора вибору. Вибрати звітність використовується для отримання даних з певної таблиці бази даних. У цьому випадку, ми хочемо знати все про всі кекси, які існують в нашому шафі. Синтаксис, щоб зробити це "Вибрати" Space Star, або *, простір від простору нашого столу, який cupcake_cupboard. Давайте підемо далі і виконати це. Як ми бачимо, всі ці кекси в нашому шафі. Важливо відзначити, що *, або зірочку, це символ підстановки , Що означає збір всіх стовпців деякої таблиці. Як правило, ми можемо отримати доступ до певного або декількох стовпцях замінити * з фактичним ім'ям стовпця. Якщо ми хочемо декілька стовпців, але не всі ми можемо досягти цього шляхом написання імен стовпців розмежування кожному стовпці коми. Наприклад, давайте витягувати тільки CakeId і CakeType в cupcake_cupboard таблиці. Синтаксис, щоб зробити це: SELECT простору CakeID коми CakeType просторі від нашого столу, cupcake_cupboard. Давайте підемо далі і виконати це. І ось, тепер є тільки два стовпці ми визначили Для кожного кексу в нашому шафі. Ми також можемо вдосконалювати наші результати запиту, вказавши "Де" пункту відразу після імені таблиці. Наприклад, як видається, кекс в нашому шафі що це, ну, не так вже й хороший погляд. Давайте з'ясувати всі кекси в нашому шафі, які, ну, не так вже й приємні оку за допомогою "Де" застереження. Синтаксис, щоб зробити це: SELECT * простір простір від простору cupcake_cupboard простору, де простір нашому умовному колонка, в цьому випадку CakeIsNice =, і логічне значення False. Важливо відзначити, що якщо ви використовуєте рядки, ви повинні укласти його в одинарні лапки. Це вірно для всіх рядків в SQL, або, в термінах SQL бази даних, символи варіант відомий як Varchar тип даних. У цьому випадку ми використовуємо Правда чи Брехня, яка є логічне значення, а не рядок. Давайте йти вперед і виконати цю команду. І ось, це той випадок, що у нас 1 шоколадом Не так добре кекс в нашому шафі. Далі, ми збираємося написати заяву вставки. Вставити звітність використовується, щоб вставити або додати додаткові рядки даних в таблиці бази даних. Повернення до нашим сценарієм, давайте припустимо, що ми тільки що зробили новий кекс. Так як ми дуже організовано кекс їдців, ми будемо мати, щоб вставити нову кекс У нашому cupcake_cupboard таблиці. Синтаксис для цього полягає в наступному: Вставте в космос нашого столу, cupcake_cupboard, пробіл (, і тут ми вказуємо імена стовпців, розділених комами, CakeType розділені комами CakeColor CakeIsNice) простору. Після цього, ми пишемо просторі слово VALUES (і тут Ми введіть значення для кожного стовпця, відповідно, також розділених комами. Одинарні лапки, тому що вони всі Varchar значення ми оточимо їх в одинарні лапки, LIGHT "кома" арахісове масло Брауна коми True. Тепер важливо, щоб дати кожному рядку унікальний номер, щоб ідентифікувати себе. Автоінкрементом колонка подає це як  "Немає двох однакових ідентифікаторів може існувати в цій таблиці." Давайте підемо далі і виконувати. Там ми йдемо, все організовано. Наступний оператор SQL, що ми будемо писати це оновлення заяві. Оновлення заява може бути використане для зміни даних в стовпці для будь-якої існуючої рядки в таблиці бази даних. Раніше в нашому сценарії, за допомогою оператора вибору, ми визначили кекс у таблиці наші cupcake_cupboard, чиї CakeIsNice значення було помилковим. Давайте припустимо, що в той час як наші арахісове масло кекс був в духовці, ми зробили наш не такий гарний кекс дуже добре. Будучи таким виключно організований, ми хочемо, щоб наш кекс з урахуванням цього значення У нашому cupcake_cupboard таблиці. Тому, давайте оновимо наш шоколад кекс в базу даних, щоб відобразити це. Синтаксис: UPDATE просторі нашого столу, cupcake_cupboard, космічні простори SET стовпець, який ми хочемо змінити, CakeIsNice =. Тоді тут ми розміщуємо наші нові значення Правда просторі. Тепер, оскільки ми не хочемо, щоб оновити всі рядки з цим значенням, Ми хочемо, щоб забезпечити "Де" пропозицію, яка буде визначити нами до точної рядки, які ми хочемо змінити. У цьому випадку, ми знаємо, що є тільки один кекс , Який має CakeIsNice значення False. Крім того, ми також гарантуємо, що ми оновлюємо потрібні рядки за допомогою «А» пункту. Ми використовуємо "і" положення, щоб удосконалити наш запит далі. У цьому випадку, тому що ми знаємо, що кекс шоколад, Ми будемо використовувати цей CakeType колонки. Де простір нашому умовному просторі колонки CakeIsNice простір = False, і простір CakeType = 'CHOCOLATE ». Таким чином, покласти все це разом, це оновлення йдеться в заяві знайти всі кекси в нашій кекс шафа, і якщо є кекс, стовпець CakeIsNice містить значення ЛОЖЬ і CakeType містить значення ШОКОЛАД, Ми хочемо, щоб оновити конкретні CakeIsNice рядків значення True. Отже, давайте йти вперед і виконати інструкцію. І тепер, ми організували. Всі ці розмови про кекси зробив мене трохи голодним. Я думаю, що повинно допомогти собі до одного. Але якби я насправді є цей кекс, я повинен принаймні також видалити своє існування  cupcake_cupboard нашого столу. Для цього ми будемо використовувати кнопку "Видалити" заяву. "Delete" заява може бути використано, щоб видалити всі або деякі рядки з таблиці. Якщо ви хочете видалити деякі певні рядки з таблиці, Потім ви повинні надати "Де" пункт, таким чином вказавши колонки які повинні бути унікальними в рядок, яку ви хочете видалити. Це синтаксис: DELETE простору від космічного наш стіл, cupcake_cupboard, простір. Зараз, в цей момент, коли ви знаходитесь так далеко у своїй заяві видалення Ви хочете бути дуже обережним. Наприклад, якщо я хочу виконати цей запит як є, без надання деяких "Де" пункту Я б втратити всі дані в цій таблиці cupcake_cupboard, а тому, що я вже знаю, що мій торт ідентифікатори унікальні, я буду використовувати Червона ID торт Velvet для мого "Де" застереження. Де простір нашій колоні, CakeID = 1. Тому що це ціле значення немає необхідності, щоб оточити її в одинарні лапки. Отже, давайте виконати інструкцію. Ну, тепер, коли ми знищили існування цього кексу cupcake_cupboard нашого столу, у нас є тільки одне ліве: Зробити це зникає. Я Крістофера Варфоломія. Це CS50.