Создание таблиц базы данных

Создание таблиц базы данных

gsqlcmd позволяет генерировать операторы CREATE TABLE.

Например, файл aapl.csv имеет следующее содержимое:

symbol;time;open;high;low;close;volume
AAPL;2019-04-09 13:30:00;200.3200;200.4500;199.68;200.3800;1332001
AAPL;2019-04-09 13:31:00;200.3726;200.8850;200.32;200.6920;351343

Вы можете сгенерировать код для создания таблицы для хранения этих данных, используя режим make-create:

gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql

Используйте опцию /table, чтобы указать имя целевой таблицы.

Используйте опцию /serverType, чтобы указать целевую платформу базы данных.

Опцию /serverType можно указать как /mssql, /sqlce, /mysql, /oracle, /db2, /nuodb, /pgsql, /snowflake или /sqlite.

Выходной файл create-yahoo1m.sql будет содержать следующее:

CREATE TABLE [dbo].[yahoo1m] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [symbol] nvarchar(255) NULL,
    [time] datetime NULL,
    [open] float NULL,
    [high] float NULL,
    [low] float NULL,
    [close] float NULL,
    [volume] int NULL,
  CONSTRAINT [PK_yahoo1m_dbo] PRIMARY KEY ([ID])
);
GO
print N'Table [dbo].[yahoo1m] created';
GO

По умолчанию gsqlcmd добавляет поле ID, используемое в качестве поля IDENTITY, если исходные данные не содержат столбец с уникальными целочисленными значениями.

Вы можете использовать опцию /keys для указания полей первичного ключа.

Например:

gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql /keys=symbol,time

В этом случае, create-yahoo1m.sql будет иметь следующее содержимое:

CREATE TABLE [dbo].[yahoo1m] (
    [symbol] nvarchar(255) NOT NULL,
    [time] datetime NOT NULL,
    [open] float NULL,
    [high] float NULL,
    [low] float NULL,
    [close] float NULL,
    [volume] int NULL,
  CONSTRAINT [PK_yahoo1m_dbo] PRIMARY KEY (
    [symbol],
    [time]
  )
);
GO
print N'Table [dbo].[yahoo1m] created';
GO

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

Всегда проверяйте поля nvarchar(255). Например, в приведенном выше коде для поля symbol лучше использовать varchar(25).

Если вы создали файл формата для переименования имен столбцов, используйте его в опции /formatFile.

Например:

gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql /keys=symbol,time /formatFile=yahoo1m.fmt