Задание 1
Методика выполнения:
-
Открыть web интерфейс PhpMyAdmin в браузере по адресу:
http://user-ks-№.304.rus/pma (например http://user-ks-1.304.rus/pma) -
Подключиться к базе данных используя имя пользователя и пароль “1”
-
Выбрать базу данных в списке слева (имя базы данных совпадает с именем пользователя)
-
Создать таблицу lab1_1, состоящую из двух полей: Имя (name тип Varchar) и Возраст (age тип INT)
-
На экране заполнения данных о полях нажатие кнопки “Предпросмотр SQL” позволит получить текст SQL-запроса на создание таблицы, который может быть использован в других заданиях.
-
Убедиться что слева в списке таблиц базы данных появилась созданная таблица с необходимыми полями.
-
Добавим данные в таблицу при помощи вкладки “Вставить” (Например ‘Ivanov’,30).
После вставки будет показан текст SQL-запроса на добавление данных, который может быть использован в других заданиях.
Проконтролировать добавление данных выбрав таблицу в списке слева.
-
Изменить параметры поля таблицы. Для этого выбрать его в списке слева. Задать новые значения. Нажатие кнопки “Предпросмотр SQL” позволит получить текст SQL-запроса на изменение поля, который может быть использован в других заданиях, кнопки “Сохранить” - внесет изменения в базу данных.
-
Сделать поле name ключевым. Для этого в списке слева выбрать таблицу, а в правой части на вкладке “Структура” сделать требуемое поле ключевым. Напротив имени поля появился символ ключевого поля, а слева в списке таблиц появился новый Индекс.
-
Самостоятельно ввести не менее трех значений в базу данных.
-
Удалить строку данных используя вкладку “Обзор” при выбранной слева таблице.
-
Удалить таблицу из базы данных используя вкладку “Обзор” при выбранной слева базе данных.
-
Интерфейс PhpMyAdmin позволяет направлять текстовые SQL запросы в базу данных. Для этого предназначена вкладка “SQL”. Повторить вышеописанные действия при помощи прямого ввода команд SQL.
/* 'String' кавычки, закрываем туда любой текст вносящийся в БД */
/* `SQL VARs NAME` тильда или обратный апостроф, */
/* закрываем туда любые переменные в БД */
/* `Тильду` можно не использовать в консоли mysql, но обязательна в PMA */
CREATE TABLE `lab1_1` (`name` varchar(30), `age` int(3));
SHOW COLUMNS FROM `lab1_1`;
INSERT INTO `lab1_1`(`NAME`, `age`) VALUES ('Ivanov', 30);
SELECT * FROM `lab1_1`;
ALTER TABLE `lab1_1` CHANGE `name` `name2` VARCHAR(32) NOT NULL;
SHOW COLUMNS FROM `lab1_1`;
ALTER TABLE `lab1_1` ADD PRIMARY KEY(`name2`);
SHOW COLUMNS FROM `lab1_1`;
INSERT INTO `lab1_1`(`name2`, `age`) VALUES ('Petrov', 18),('Pushkin', 22),('Esenin', 25);
SELECT * FROM `lab1_1`;
DELETE FROM `lab1_1` WHERE `lab1_1`.`name2`='Pushkin';
SELECT * FROM `lab1_1`;
DROP TABLE `lab1_1`;
SHOW TABLES;
Задание 2
CREATE TABLE `lab1_1` (`name` varchar(30), `age` int(3));
SHOW COLUMNS FROM `lab1_1`;
INSERT INTO `lab1_1`(`NAME`, `age`) VALUES ('Ivanov', 30);
SELECT * FROM `lab1_1`;
ALTER TABLE `lab1_1` CHANGE `name` `name2` VARCHAR(32) NOT NULL;
SHOW COLUMNS FROM `lab1_1`;
ALTER TABLE `lab1_1` ADD PRIMARY KEY(`name2`);
SHOW COLUMNS FROM `lab1_1`;
INSERT INTO `lab1_1`(`name2`, `age`) VALUES ('Petrov', 18),('Pushkin', 22),('Esenin', 25);
SELECT * FROM `lab1_1`;
DELETE FROM `lab1_1` WHERE `lab1_1`.`name2`='Pushkin';
SELECT * FROM `lab1_1`;
DROP TABLE `lab1_1`;
SHOW TABLES;
QUIT;
Задание 3
#include <stdio.h>
#include <my_global.h>
#include <mysql.h>
#include <mysqld_error.h>
#include <errmsg.h>
#include <stdlib.h>
MYSQL* mysql;
MYSQL_RES* res;
MYSQL_ROW row;
MYSQL_FIELD* field;
int i;
void show() {
res = mysql_store_result(mysql);
if (res == NULL) {
printf("Error get data\n");
} else {
if (mysql_num_rows(res) > 0) {
printf("Result: %i row\n", mysql_num_rows(res));
i = 0;
while (i < mysql_num_fields(res)) {
field = mysql_fetch_field_direct(res, i);
printf("%s\t", field->name);
i++;
}
printf("\n");
while ((row = mysql_fetch_row(res)) != NULL) {
for (i = 0; i < mysql_num_fields(res); i++) {
printf("%s\t", row[i]);
}
printf("\n");
}
mysql_free_result(res);
} else {
printf("No data\n");
}
}
}
void error_query() {
printf("Error query\n");
printf("error N: %i %s\n", mysql_errno(mysql), mysql_error(mysql));
}
int main() {
mysql = mysql_init(NULL);
if (mysql == NULL) {
printf("Error init\n");
} else {
printf("Init OK \n");
}
// Connect to DB and check correct
if (!mysql_real_connect(mysql,
"user-ks-##.304.rus", // DB Host
"user-ks-##", // DB Login
"1", // DB Password
"user-ks-##", // DB Name
NULL, // DB Port
NULL, // DB Socket
0 // Flags
)) { // If error connect
printf("Error connect\n");
printf("error N: %i %s\n", mysql_errno(mysql), mysql_error(mysql));
} else { // If connected
printf("Connect OK\n");
if (mysql_query(mysql, "SHOW TABLES;") != 0) {
error_query();
} else {
show();
}
printf("\nTable creation. Press any key to continue\n\n");
getchar();
if (mysql_query(mysql, "CREATE TABLE `lab1_1` (`name` VARCHAR(30),`age` INT(3));") != 0) {
error_query();
} else {
printf("successful\n");
}
sleep(1);
if (mysql_query(mysql, "SHOW TABLES;") != 0) {
error_query();
} else {
show();
}
printf("\nShow columns. Press any key to continue\n\n");
getchar();
if (mysql_query(mysql, "SHOW COLUMNS FROM `lab1_1`;") != 0) {
error_query();
} else {
show();
}
printf("\nInsert (Ivanov,30). Press any key to continue\n");
getchar();
if (mysql_query(mysql, "INSERT INTO `lab1_1` (`name`,`age`) VALUES ('Ivanov','30');") != 0) {
error_query();
} else {
printf("succesful\n");
}
sleep(1);
if (mysql_query(mysql, "SELECT * FROM `lab1_1`;") != 0) {
error_query();
} else {
show();
}
printf("\nSet primary key. Press any key to continue\n");
getchar();
if (mysql_query(mysql, "ALTER TABLE `lab1_1` ADD PRIMARY KEY(`name`);") != 0) {
error_query();
} else {
printf("`name` assigned as primary key\n");
}
sleep(1);
printf("\nInsert(Petrov,Egorov,Tolkov). Press any key to continue\n");
getchar();
if (mysql_query(mysql, "INSERT INTO `lab1_1`(`name`,`age`) VALUES ('Petrov','17'),('Egorov','18'),('Tolkov','18');") != 0) {
error_query();
} else {
printf("succesful\n");
}
sleep(1);
if (mysql_query(mysql, "SELECT * FROM `lab1_1`;") != 0) {
error_query();
} else {
show();
}
getchar();
printf("rename Ivanov to Sidorov. Press any key to continue\n\n");
if (mysql_query(mysql, "UPDATE `lab1_1` SET `name`='Sidorov' WHERE `lab1_1`.`name`='Ivanov';") != 0) {
error_query();
} else {
printf("successful\n");
}
sleep(1);
if (mysql_query(mysql, "SELECT * FROM `lab1_1`;") != 0) {
error_query();
} else {
show();
}
printf("\nDelete table. Press any key to continue\n\n");
getchar();
if (mysql_query(mysql, "DROP TABLE `lab1_1`;") != 0) {
error_query();
} else {
printf("Table deleted\n");
}
sleep(1);
if (mysql_query(mysql, "SHOW TABLES;") != 0) {
error_query();
} else {
show();
}
mysql_close(mysql);
printf("\nConnection closed\n");
}
}




















