Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Приложения. Приложение 2 - список часто используемых команд mysql






 

 


 

ПРИЛОЖЕНИЕ 1 – Формы приложения


 

ПРИЛОЖЕНИЕ 2 - Список часто используемых команд MySQL

 

Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE. Рассмотрим каждую из них отдельно.

 

SHOW

 

Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:

 

SHOW DATABASES;

 

Если, например, существуют две базы данных - mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:

 

+----------+

| Database |

+----------+

| mysql |

| test |

+----------+

 

Для просмотра списка таблиц используется эта же команда в таком виде:

 

SHOW TABLES;

 

Эта команда выдаст список таблиц в текущей базе данных:

 

+-----------------+

| Tables in mysql |

+-----------------+

| test |

| mysql |

+-----------------+

 

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

 

CREATE

 

Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных - mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:

 

CREATE DATABASE staff

 

После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:

 

+----------+

| Database |

+----------+

| mysql |

| test |

| staff |

+----------+

 

USE

 

Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:

 

USE staff

 

Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически - для ее использования необходимо сделать это самостоятельно.

 

SQL

 

Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL.

 

Просмотр данных

 

Наипростейшей командой является следующая:

 

SELECT * FROM mysql;

 

Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.

 

Замечание: На SQL-команды распространяется одно ограничение, которое не имеет отношения к командам MySQL - инструкции SQL обязательно должны заканчиваться точкой с запятой. Это позволяет вводит многострочные запросы к бызе данных, что не требуется для MySQL-команд, которые как правило лаконичные и короткие.

 

Как вы уже наверное поняли, команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:

 

SELECT < список полей> FROM < список названий таблиц> [WHERE < список условий> ] [ORDER BY < список полей> ];

 

В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа " *" (), который говорит, что следует показать все поля таблицы. Часть WHERE... является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY... служит для сортировки полученных данных по определенным полям.

 

Вот пример более сложного запроса, демонстрирующий сказанное выше. Допустим таблица staff содержит информацию о сотрудниках некоторой организации. Этот запрос находит записи о тех из них, кто работает больше двух лет и кого не зовут Иваном.

 

SELECT name, project, works_since

FROM staff

WHERE

name > 'Иван' AND

works_since '1998-04-26';

 

Рассмотрим этот запрос. Первая строка велит MySQL показать содержимое только полей name, project и works_since. Вторая строка указывает на таблицу, в которой следует искать эти данные. Оставшаяся часть запроса указывает критерии выбора - имя не должно быть 'Иван', а дата быть более ранней, чем 26-е апреля 1998-го года. Вот пример вывода после такой операции:

 

 

+----------+--------------+-------------+

| name | project | works_since |

+----------+--------------+-------------+

| Fred | Secret data | 1997-01-01 |

| Jonathan | Blue apples | 1997-06-01 |

+----------+--------------+-------------+

 

Для показа данных одного поля может использоваться такой запрос:

 

SELECT project FROM staff ORDER BY project;

 

+-------------+

| project |

+-------------+

| Blue apples |

| Blue apples |

| Cornichons |

| Secret data |

| Secret data |

| Secret data |

+-------------+

 

Как видите, этот запрос просто выбирает значения из нужного поля из каждой строки и выводит их, заодно сортируя по (единственному) полю project, поэтому в результатах встречаются повторения. Для устранения их используется инструкция DISTINCT:

 

SELECT DISTINCT project FROM staff ORDER BY project;

 

+-------------+

| project |

+-------------+

| Blue apples |

| Cornichons |

| Secret data |

+-------------+

 

SQL позволяет производить некоторые вычисления и получать некоторую описательную информацию при помощи агрегатных функций. Среди этих функций - COUNT, SUM, MAX, MIN и AVG.

 

COUNT - вычисляет количество найденых строк

SUM - находит сумму значений в найденых строках

MAX - находит найбольшее среди найденых значений

MIN - находит наименьшее среди найденых значений

AVG - находит среднее значение от найденых

 

Используются эти функции как элементы списка таблиц в запросе с аргументом - названием поля. Вот несколько примеров.

 

SELECT COUNT (project) FROM staff;

SELECT MAX (projects_done) FROM staff;

SELECT AVG (project_done) FROM staff

 

Эти запросы находят количество выполняемых проектов, наибольшее количество проектов, выполняемое одним человеком и среднее количество проектов, в которых участвуют работники соответственно.

 

SQL также располагает средствами работы с регулярными выражениями (работе с которыми в Perl вы можете ознакомиться, прочтя соответствующую статью на нашем сайте). Для сравнения значения с регулярным выражением используется оператор LIKE, а для конструирования простеших выражений - символы '_' (произвольный символ) и '%' (произвольное количество произвольных символов). Пример. Этот запрос находит все имена, которые начинаются с 'Jo':

 

SELECT name FROM staff

WHERE name LIKE 'Jo%n';

 

+----------+

| name |

+----------+

| Jonathan |

| John |

+----------+

 

MySQL также позволяет производить более развитое сравнение с шаблоном при помощи оператора REGEXP и средств построения шаблона теми же методами, что используются в Perl (см. Регулярные выражения в Perl).

 

SELECT name, project FROM staff

WHERE project REGEXP " [bB]";

 

Этот запрос выведет все строки, в которых название проекта содержит букву 'b' вне зависимости от регистра.

 

И последнее по порядку, но не по значению - использование более чем одной таблицы. Особенность заключается в том, что используемые таблицы могут иметь общие поля, которыми они связаны. Для того, чтобы точно указывать, о поле какой таблицы идет речь, используется запись типа staff.project, где перед точкой стоит название таблицы, а после нее - название поля. Второй вариант - назначения псевдонимов (алиасов) таблицам для большего удобства. Для этого в списке таблиц название каждой таблицы указывается вместе с псевдонимом - например stuff x, projects y.

 

SELECT x.name, x.project, x.description

FROM staff x, projects x

WHERE

x.project = x.project_name;

 

В этом примере объединяются таблицы staff и projects, причем выводятся имя сотрудника, проект над которым он работает и описание этого проекта.

 

+----------+-------------+------------------------------+

| name | project | description |

+----------+-------------+------------------------------|

| Jonathan | Blue apples | Worldwide apple distribution |

| Fred | Secret data | Secret data |

| John | Secret data | Secret data |

+----------+-------------+------------------------------+

 

Объединив все это в один запрос получим следующее:

 

SELECT DISTINCT y.project_name, y.description, COUNT(x.name), FROM staff x, projects yWHERE

y.project_name = x.project AND

y.project_name > 'Secret data' AND

y.project_name LIKE " Wo__d%"

ORDER BY

project_name;

 

+--------------+--------------------------+-------------+

| project_name | description | COUNT(name) |

+--------------+--------------------------+-------------+

| Blue apples | Worldwide apple delivery | 3 |

+--------------+--------------------------+-------------+

 

Этот запрос показывает названия проектов, описания их и количество сотрудников, которые заняты в них для тех проектов, которые не являются секретными и описания которых начинаются с 'Wo', следом за которыми идут еще два символа, после чего - 'd' и дальше что угодно, и сортирует единственное значение по полю project_name.

 

Редактирование данных

 

Редактирование данных - это добавление, удаление и изменение их. Для выполнения этих операций используются команды INSERT, DELETE и UPDATE соответственно.

 

Команда INSERT служит для вставки строк в таблицы. Вот как может выглядеть такой запрос:

 

INSERT INTO staff VALUES (" Robert", " 1980-05-07", " 2000-04-26",

" $100", " Secret data");

 

Возможна также вставка отдельных значений. В таком случае необходимо указать, в какие поля стоит вставлять данные, причем оставшиеся поля будут незаполнены - при выполнении запросов SELECT они будут представлены как NULL - специальное начение, означающее, что данное отсутствует.

 

INSERT INTO staff(name, date_of_birth) VALUES (" Jack", " 1977-07-29");

 

SELECT * FROM staff

WHERE name = " Jack";

 

+------+---------------+-------------+---------+---------+

| name | date_of_birth | works_since | project | sallary |

+------+---------------+-------------+---------+---------+

| Jack | 1997-07-29 | NULL | NULL | NULL |

+------+---------------+-------------+---------+---------+

 

Удаление данных производится командой DELETE. Для этого нужно указать таблицу и (необязательно) условия, которым должны удовлетворять строки, которые следует удалить. Если условия опущены, эта команда, как и SELECT, проделает эту операцию надо всеми строками - то есть очистит таблицу.

 

DELETE FROM staff

WHERE

name = " Jack";

 

Изменение данных производится при помощи команды UPDATE. Необходимо указать, значения каких полей следует изменить, а также (опять же необязательно) условия, которым должны удовлетворять строки, которые следует обновить.

 

UPDATE staff

SET

works_since = " 2000-04-26"

sallary = " $200"

project = " Secret data"

WHERE

name = " Jack";


 

ПРИЛОЖЕНИЕ 3 - Список основных консольных команд Ubuntu Server

 

cd /home перейти в директорию ‘/home’

cd.. перейти в директорию уровнем выше

cd../.. перейти в директорию двумя уровнями выше

cd перейти в домашнюю директорию

cd ~user перейти в домашнюю директорию пользователя user

cd - перейти в директорию, в которой находились до перехода в текущую директорию

pwd показать текущюю директорию

ls отобразить содержимое текущей директории

ls -F отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип

ls -l показать детализированое представление файлов и директорий в текущей директории

ls -a показать скрытые файлы и директории в текущей директории

ls *[0-9]* показать файлы и директории содержащие в имени цифры

tree показать дерево файлов и директорий, начиная от корня (/)

lstree

mkdir dir1 создать директорию с именем ‘dir1′

mkdir dir1 dir2 создать две директории одновременно

mkdir -p /tmp/dir1/dir2 создать дерево директорий

rm -f file1 удалить файл с именем ‘file1′

rmdir dir1 удалить директорию с именем ‘dir1′

rm -rf dir1 удалить директорию с именем ‘dir1′ и рекурсивно всё её содержимое

rm -rf dir1 dir2 удалить две директории и рекурсивно их содержимое

mv dir1 new_dir переименовать или переместить файл или директорию

cp file1 file2 сопировать файл file1 в файл file2

cp dir/*. копировать все файлы директории dir в текущую директорию

cp -a /tmp/dir1. копировать директорию dir1 со всем содержимым в текущую директорию

cp -a dir1 dir2 копировать директорию dir1 в директорию dir2

ln -s file1 lnk1 создать символическую ссылку на файл или директорию

ln file1 lnk1 создать «жёсткую» (физическую) ссылку на файл или директорию

touch -t 0712250000 fileditest модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)

Поиск файлов

find / -name file1 найти файлы и директории с именем file1. Поиск начать с корня (/)

find / -user user1 найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)

find /home/user1 -name «*.bin» Найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1′

find /usr/bin -type f -atime +100 найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней

find /usr/bin -type f -mtime -10 найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней

find / -name *.rpm -exec chmod 755 ‘{}’ \; найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним

find / -xdev -name «*.rpm» найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п.

locate «*.ps» найти все файлы, сожержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’

whereis halt показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’

which halt отображает полный путь к файлу ‘halt’

Монтирование файловых систем

mount /dev/hda2 /mnt/hda2 монтирует раздел ‘hda2′ в точку монтирования ‘/mnt/hda2′. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2′

umount /dev/hda2 размонтирует раздел ‘hda2′. Перед выполнением, покиньте ‘/mnt/hda2′

fuser -km /mnt/hda2 принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем

umount -n /mnt/hda2 выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске

mount /dev/fd0 /mnt/floppy монтировать флоппи-диск

mount /dev/cdrom /mnt/cdrom монтировать CD или DVD

mount /dev/hdc /mnt/cdrecorder монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)

mount -o loop file.iso /mnt/cdrom смонтировать ISO-образ

mount -t vfat /dev/hda5 /mnt/hda5 монтировать файловую систему Windows FAT32

mount -t smbfs -o username=user, password=pass //winclient/share /mnt/share монтировать сетевую файловую систему Windows (SMB/CIFS)

mount -o bind /home/user/prg /var/ftp/user «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user

Дисковое пространство

df -h отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства(Прим.переводчика. ключ -hработает не во всех *nix системах)

ls -lSr |more выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр

du -sh dir1 подсчитывает и выводит размер, занимаемый директорией ‘dir1′ (Прим.переводчика. ключ -h работает не во всех *nix системах)

du -sk * | sort -rn отображает размер и имена файлов и директорий, с соритровкой по размеру

rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1, 1n показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)

dpkg-query -W -f=’${Installed-Size; 10}t${Package}n’ | sort -k1, 1n показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.

Пользователи и группы

groupadd group_name создать новую группу с именем group_name

groupdel group_name удалить группу group_name

groupmod -n new_group_name old_group_name переименовать группу old_group_name в new_group_name

useradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1 создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome

useradd user1 создать пользователя user1

userdel -r user1 удалить пользователя user1 и его домашний каталог

usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 изменить атрибуты пользователя

passwd сменить пароль

passwd user1 сменить пароль пользователя user1 (только root)

chage -E 2005-12-31 user1 установить дату окончания действия учётной записи пользователя user1

pwck проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow

grpck проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group

newgrp [-] group_name изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

Выставление/изменение полномочий на файлы

ls -lh просмотр полномочий на файлы и директории в текущей директории

ls /tmp | pr -T5 -W$COLUMNS вывести содержимое директории /tmp и разделить вывод на пять колонок

chmod ugo+rwx directory1 добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) – всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1

chmod go-rwx directory1 отобрать у группы и всех остальных все полномочия на директорию directory1.

chown user1 file1 назначить владельцем файла file1 пользователя user1

chown -R user1 directory1 назначить рекурсивно владельцем директории directory1 пользователя user1

chgrp group1 file1 сменить группу-владельца файла file1 на group1

chown user1: group1 file1 сменить владельца и группу владельца файла file1

find / -perm -u+s найти, начиная от корня, все файлы с выставленным SUID

chmod u+s /bin/binary_file назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.

chmod u-s /bin/binary_file снять SUID-бит с файла /bin/binary_file.

chmod g+s /home/public назначить SGID-бит директории /home/public.

chmod g-s /home/public снять SGID-бит с директории /home/public.

chmod o+t /home/public назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам

chmod o-t /home/public снять STIKY-бит с директории /home/public

Специальные атрибуты файлов

chattr +a file1 позволить открывать файл на запись только в режиме добавления

chattr +c file1 позволяет ядру автоматически сжимать/разжимать содержимое файла.

chattr +d file1 указавет утилите dump игнорировать данный файл во время выполнения backup’а

chattr +i file1 делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.

chattr +s file1 позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.

chattr +S file1 указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync

chattr +u file1 данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить

lsattr показать атрибуты файлов

Архивирование и сжатие файлов

bunzip2 file1.bz2 разжимает файл ‘file1.gz’

gunzip file1.gz

gzip file1 сжимает файл ‘file1′

bzip2 file1

gzip -9 file1 сжать файл file1 с максимальным сжатием

rar a file1.rar test_file создать rar-архив ‘file1.rar’ и включить в него файл test_file

rar a file1.rar file1 file2 dir1 создать rar-архив ‘file1.rar’ и включить в него file1, file2 и dir1

rar x file1.rar распаковать rar-архив

unrar x file1.rar

tar -cvf archive.tar file1 создать tar-архив archive.tar, содержащий файл file1

tar -cvf archive.tar file1 file2 dir1 создать tar-архив archive.tar, содержащий файл file1, file2 и dir1

tar -tf archive.tar показать содержимое архива

tar -xvf archive.tar распаковать архив

tar -xvf archive.tar -C /tmp распаковать архив в /tmp

tar -cvfj archive.tar.bz2 dir1 создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -jработает не во всех *nix системах)

tar -xvfj archive.tar.bz2 разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)

tar -cvfz archive.tar.gz dir1 создать архив и сжать его с помощью gzip

tar -xvfz archive.tar.gz разжать архив и распаковать его

zip file1.zip file1 создать сжатый zip-архив

zip -r file1.zip file1 file2 dir1 создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий

unzip file1.zip разжать и распаковать zip-архив

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.