26 июля 2012 г.

Как узнать версию PostgreSQL

Предположим, вы не знаете, какая версия postgres у вас установлена. Достаточно выполнить следующий запрос:
select version();
Также версия postgres пишется при запуске утилиты psql.

25 июля 2012 г.

Как посмотреть все значения перечисления в postgresql

Предположим, у вас в postgres используется перечисление (enum) и вы забыли, какие значения этого перечисления допустимы. Выполните следующий запрос, поменяв имя перечисления на своё.

SELECT e.enumlabel
FROM pg_enum e
JOIN pg_type t ON e.enumtypid = t.oid
WHERE t.typname = 'your_enum'

23 июля 2012 г.

Работа с postgresql при помощи pgadmin

Альтернативой работе с базой данных через консоль является более интуитивно понятная среда любого клиента с графическим интерфейсом. Например, pgAdmin. Установить его очень просто, выполняем с правами суперпользователя:
sudo apt-get install pgadmin3
Теперь можно запустить pgAdmin через графический интерфейс. Выбираем в списке локальный сервер БД (у него дефолтный порт 5432) и добавляем уже созданную нами БД с теми параметрами, которые мы задали.

pgAdmin

В это локальном сервере помимо узла Databases можно найти также узел под названием Login Roles - все доступные роли.

Выберем из всех доступных баз данных ту, которую мы создали при установке postgresql. В базе данных содержится множество различных типов объектов. Среди особое внимание следует уделить таблицам и последовательностям (sequences).

Чаще всего обычная таблица содержит в себе первичный ключ в виде положительного числового значения. Для каждой строки это значение должно быть уникальным, поэтому чтобы каждый раз не задавать его напрямую в запросе, можно установить в качестве дефолтного значения последовательность.

Создание последовательности в pgAdmin

Для начала создадим последовательность. Выбираем Sequences - New Sequence. На первой вкладке вводим имя и указываем в качестве Owner ту роль, которую мы создали. Для других ролей эта последовательность будет недоступна. На второй вкладке в поля Increment и Start вводим по единице (если вам не требуется другое). На последней вкладке диалогового окна можно посмотреть результирующий SQL запрос, который будет выполнен к БД.

После того, как последовательность создана, приступим к созданию таблицы. Также указываем её имя и владельца (owner). На четвёртой вкладке Columns добавляем прежде всего первичный ключ. Кнопка Add, в появившемся окне указываем название столбца, например, id. В качестве типа данных выбираем bigint. На второй вкладке Definition в поле Default Value указываем нашу последовательность. В поле должно быть значение вида nextval('message_id_seq'::regclass). То есть каждый раз при добавлении новой строки из последовательности будет браться следующее значение. Добавили другие столбцы по необходимости. Наконец, на вкладке Constraints добавим ограничение на первичный ключ (Primary Key). На последней вкладке можем полюбоваться на результирующий SQL код, который сгенерировал pgAdmin. После нажатия ОК таблица будет создана.

Вместо bigint в качестве первичного ключа можно указать в качестве типа столбца bigserial. Этот тип инкрементируется автоматически при добавлении каждой новой строки, поэтому создавать последовательность для него не нужно. То есть в самом простом случае, если у вас нет каких-либо особых правил для формирования id записи, можно порекомендовать использовать bigserial.

Давайте посмотрим содержимое нашей таблицы. Для этого правой кнопкой мыши нажмём на неё и выберем в контекстном меню View Data - View 100 rows.

Просмотр содержимого таблицы в pgAdmin

В этом же окне можно быстро отредактировать значение любой ячейки таблицы. Если в вашей таблице больше 100 записей, измените количество отображаемых записей в выпадающем списке в верху окна. Вы можете отобразить 100, 500, 1000 или все записи. Но это не более чем способ быстро посмотреть содержимое таблицы и привыкать к нему не стоит. Если у вас в таблице десятки тысяч записей, отображать все записи сразу я бы не рекомендовал - в таком случае лучше писать запрос с использованием параметров limit и offset.

Установка postgresql

Предположим, вы только что поставили Ubuntu и вам нужно развернуть какую-нибудь БД локально для разработки ПО. Предположим также, что для этих целей вы решили использовать СУБД PostgreSQL. Установка предельно проста - в консоли нужно выполнить следующую команду:
sudo apt-get install postgresql
Установка выполняется под суперпользователем, поэтому вам потребуется ввести ваш пароль.  После выполнения этой команды движок БД уже будет установлен на ваш компьютер.

Прежде, чем приступить к работе с базой, нам нужно её немного настроить. Для начала требуется создать роль пользователя:
sudo -u postgres createuser
От вас потребуется ввести название роли. Забегая вперёд, настоятельно рекомендую вам ввести в точности такое же имя, какое отображается у вас в консоли до знака @. То есть чтобы имя вашего аккаунта совпало с именем роли. Предположим, в консоли у нас отображается human@human-desktop. Тогда нужно ввести human.

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

Далее нам необходимо создать базу данных. Назовём её, например, mydb. Но лучше назвать так же, как вы назвали роль (т.е. human). Выполним команду:
sudo -u postgres createdb human
Теперь осталось через консоль задать пароль для созданного нами пользователя и предоставить ему полные права на новую базу данных:
sudo -u postgres psql
Выполнив эту команду, вы войдёте в консоль postgres. Введите следующие команды, заменив имя пользователя и базы данных своими собственными значениями:

alter user your_user_name with encrypted password 'your_password';
grant all privileges on database your_database to your_user_name;

Выход из консоли postgres осуществляется командой \?

Всё, теперь мы можем приступать к установке какого-нибудь клиента с графическим интерфейсом для более удобного взаимодействия с БД.

Возможно, вы спросите, зачем нужно было создавать роль и базу данных с одинаковыми именами, совпадающими с именем пользователя в системе? Это делается исключительно для удобства, ведь если эти параметры совпадают, то зайти в консоль postgres можно довольно просто, набрав в обычной консоли:
psql
Теперь вы находитесь внутри и можете выполнять любые доступные вам sql-запросы.

Выполнение запроса при помощи psql

Если же имя роли и/или базы данных отличаются от имени пользователя компьютера, то придётся эти параметры указывать каждый раз при входе в консоль postgres. Пример:
psql --username postgres --dbname mydb --password
Обратите внимание, что значение пароля в этой строке не указывается - его потребуется ввести в следующей строке по запросу системы.

21 июля 2012 г.

Как установить jdk под ubuntu

Первым делом разработчик java должен поставить на только что установленную Ubuntu jdk. Без него у Вас ничего не запустится.

К сожалению, в настоящий момент в автоматизированном режиме через apt-get нельзя поставить jdk от Oracle/Sun. Поэтому заходим на сайт oracle.com. Ищем там раздел про jdk. Нам нужна версия SE, 1.6 или 1.7. Также выбираем соответствующую разрядность для нашей системы (32 или 64) и скачиваем архив tar.gz. Скорее всего, файл должен называться как-то вроде jdk-7u5-linux-x64.tar.gz

Далее распаковываем полученный архив и помещаем его содержимое в любую директорию. Я поместил в /opt. Теперь надо прописать пару глобальных переменных в файле ~/.bashrc. Он является скрытым. Для удобства откройте домашнюю директорию в файловом менеджере Nautilus и нажмите Ctrl+H, чтобы отобразить скрытые файлы.

Теперь отредактируйте файл .bashrc, вставив в него в любое место две строки:
export JAVA_HOME="/opt/jdk1.7.0"
export PATH="$JAVA_HOME/bin:$PATH"
Обратите внимание, что первую строку вам нужно отредактировать в соответствии с той директорией, куда вы поместили jdk. Таким образом, мы создаём глобальную переменную JAVA_HOME, а также добавляем её значение к набору значений в другой глобальной переменной PATH. Сохраните и закройте файл. Теперь запустите новое окно консоли (Ctrl+Alt+T). Если консоль уже была открыта к этому моменту, перейдя в домашний каталог, выполните команду:
source ~/.bashrc
Эта команда заново считывает настройки из файла .bashrc. Готово!

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

Для того, чтобы отвязать IDE от запуска в консоли, нужно добавить эти же две строки, только без слова export, в файл etc/environment (доступен для редактирования только суперпользователю) командой:
sudo gedit /etc/environment
После ввода пароля этот файл откроется для редактирования в текстовом редакторе. Сохраните изменения и перелогиньтесь (правый верхний угол экрана, команда Log Out) для того, чтобы изменения вступили в силу. Теперь достаточно на целевом файле в контекстном меню выбрать Make Link и вы получите ярлык, который будет запускать IDE, минуя консоль.

15 июля 2012 г.

Как запускать IDE под ubuntu при помощи ярлыка

Чтобы отвязать IDE от запуска в консоли, например, IntelliJ IDEA, достаточно прописать необходимые переменные окружения в файле /etc/environment. Этот файл можно редактировать только от имени суперпользователя, поэтому выполним следующую команду:
sudo gedit /etc/environment
Тогда этот файл можно легко отредактировать в редакторе.
Добавим туда необходимые переменные окружения, например, путь к JDK (у Вас путь может быть другим):
JAVA_HOME="/opt/jdk1.7.0"