Вставка нескольких значений в таблицу базы данных mysql. Вставка в таблицу sql данных


sql - Импорт/вставка данных Excel с изменением полей в таблицу SQL

У меня есть таблица под названием "Животные" . Я извлекаю данные из этой таблицы, чтобы заполнить другую систему.

Я получаю данные Excel со списками животных, которые нужно зайти в таблицу "Животные" .

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

Эти идентификаторы будут изменяться с каждым новым файлом excel. Некоторые могут повториться, другие - совершенно новые.

Поскольку поля меняются, и я никогда не знаю, какие новые поля появятся с каждым новым файлом excel, таблица My Animals будет иметь только идентификатор и имя животного.

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

AnimalId Value FieldId DataFileId

И затем у меня есть таблица полей, которая содержит ключ для каждого поля в таблице значений.

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

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

Но, полагая, что это хороший способ, какой лучший способ получить данные Excel в таблице значений? Список животных легко добавить в таблицу "Животные" . Но для каждого идентификатора (Breed, Color и т.д.) Мне нужно скопировать или импортировать значения, а затем обновить таблицу, чтобы назначить соответствующий FieldId (или создать новый FieldId в таблице Fields, если он еще не существует).

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

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

Спасибо.

qaru.site

sql - Вставка XML-данных в таблицы sql

У меня есть XML-документ со следующим форматом:

<response username="123" customerName="CustomerName" siteName="SiteName" customerID="123" Period="2009"> <topics> <topic name="MyTopic"> <department name="MyDepartment" parent="OriginalDepartment"> <questionHead result="Go" group="Group A" surveyID="1" questionID="2" responseID="3"> <question>My Question</question> <answer>My Ansert</answer> <comment>Good Answer</comment> <reference>Page 10</reference> </questionHead> <questionHead result="Go" group="Group A" surveyID="1" questionID="2" responseID="3"> <question>My Question</question> <answer>My Ansert</answer> <comment>Good Answer</comment> <reference>Page 10</reference> </questionHead>

...

Есть несколько, тем и отделов. Мне нужно вставить эти данные в таблицу сервера sql. В моей таблице есть эта схема:

CREATE TABLE [dbo].[Questions]( [ImportQuestionID] [int] IDENTITY(1,1) NOT NULL, [TopicName] [varchar](100) NULL, [DepartmentName] [varchar](100) NULL, [ParentDepartmentName] [varchar](100) NULL, [QuestionID] [int] NOT NULL, [SurveyID] [int] NOT NULL, [ResponseID] [int] NOT NULL, [PageNumber] [int] NOT NULL, [OrderNumber] [int] NOT NULL, [Result] [varchar](10) NULL, [GroupName] [varchar](100) NULL, [QuestionText] [varchar](500) NOT NULL, [AnswerText] [varchar](500) NOT NULL, [Comment] [varchar](500) NULL, [Reference] [varchar](500) NULL)

Итак, я импортировал свой XML файл во временную таблицу с столбцом xml, и теперь я пытаюсь разобрать файл и поместить его в реляционную таблицу.

Вот что я пытаюсь:

INSERT INTO [SRCL_XmlTest].[dbo].[Questions] field list... SELECT tab.col.value('./topic/@name', 'varchar(100)') as TopicName, tab.col.value('./topic/department/@name', 'varchar(100)') as DepartmentName, tab.col.value('./topic/department/@parent', 'varchar(100)') as ParentDepartmentName, tab.col.value('./topic/department/questionH/@questionID', 'int') as QuestionID, tab.col.value('./topic/department/questionH/@surveyID', 'int') as SurveyID, tab.col.value('./topic/department/questionH/@responseID', 'int') as ResponseID, tab.col.value('./topic/department/questionH/@pageNumber', 'int') as PageNumber, tab.col.value('./topic/department/questionH/@orderNumber', 'int') as OrderNumber, tab.col.value('./topic/department/questionH/@result', 'varchar(10)') as ResultColourCode, tab.col.value('./topic/department/questionH/@group', 'varchar(100)') as GroupName, tab.col.value('./topic/department/questionH/question', 'varchar(500)') as QuestionText, tab.col.value('./topic/department/questionH/answer', 'varchar(500)') as AnswerText, tab.col.value('./topic/department/questionH/comment', 'varchar(500)') as Comment, tab.col.value('./topic/department/questionH/reference', 'varchar(500)') as Reference FROM FileImport CROSS APPLY XmlData.nodes('//response/topics') AS tab(col)

Тем не менее, я продолжаю получать ошибку: XQuery [FileImport.XmlData.value()]: 'value()' требует одиночного (или пустой последовательности), найденного операнда типа 'xdt: untypedAtomic *'

Это потому, что в xml есть несколько узлов тем? Я попытался изменить свой выбор: XmlData.nodes('//response/themes/topic/department/questionHead/question') AS tab (col)

и теперь я могу получить доступ к этому вопросу, но не могу приблизиться к ответу. Кто-нибудь с некоторыми идеями?

qaru.site

Вставка данных в таблицу улья Безопасный SQL

Я новичок в улье. Я успешно установил единый узел hasoop-кластера для целей разработки, а поверх него я установил куст и свиньи.

Теперь я хочу вставить данные в эту таблицу. Могу ли я добавлять данные так же, как sql за одну запись за раз? любезно помогите мне с аналогичной командой:

Кроме того, у меня есть файл csv, который содержит данные в формате:

Как загрузить эти данные в фиктивную таблицу?

Я думаю, что лучший способ: a) Копирование данных в HDFS (если их еще нет) б) Создайте внешнюю таблицу поверх своего CSV, как это

CREATE EXTERNAL TABLE TableName (id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION 'place in HDFS';

c) Вы можете начать использовать TableName уже, выпуская к нему запросы. d) если вы хотите вставить данные в другую таблицу Hive:

insert overwrite table finalTable select * from table name;

Нет прямого способа вставить 1 запись за раз с терминала, однако, вот простой способ обхода пути, который я обычно использую, когда хочу что-то проверить:

Предполагая, что t – таблица с не менее чем 1 записью. Неважно, какой тип или количество столбцов.

INSERT INTO TABLE foo SELECT '12', 'xyz' FROM t LIMIT 1;

Какие данные вы вставляете в один текстовый файл или файл журнала, который может помещать один путь в hdfs, а затем записывать запрос в улье

hive>load data inpath<<specify inputpath>> into table <<tablename>>;

ПРИМЕР:

hive>create table foo (id int, name string) row format delimited fields terminated by '\t' or '|'or ',' stored as text file; table created.. DATA INSERTION:: hive>load data inpath '/home/hive/foodata.log' into table foo;

Это ограничение улья .

1. Вы не можете обновлять данные после их установки

2. Нет инструкции "insert into table values ​​…"

3.Вы можете загружать только данные, используя объемную нагрузку

4. Нет команды «удалить из»

5.Вы можете удалить только объем

Но вы все равно хотите вставить запись из консоли куста, чем вы можете выбрать из statck . см. это

Вы можете попробовать это, я разработал инструмент для создания сценариев улья из файла csv. Ниже приведены несколько примеров того, как создаются файлы. Инструмент – https://sourceforge.net/projects/csvtohive/?source=directory

  1. Выберите CSV-файл, используя «Обзор» и установите корневой каталог hasoop ex: / user / bigdataproject /

  2. Инструмент Создает скрипт Hadoop со всеми файлами csv, а следующий пример сгенерированного сценария Hadoop для вставки csv в Hadoop

    #!/bin/bash -v hadoop fs -put ./AllstarFull.csv /user/bigdataproject/AllstarFull.csv hive -f ./AllstarFull.hive

    #!/bin/bash -v hadoop fs -put ./AllstarFull.csv /user/bigdataproject/AllstarFull.csv hive -f ./AllstarFull.hive

    hadoop fs -put ./Appearances.csv /user/bigdataproject/Appearances.csvулей -f ./Appearances.hive

    hasoop fs -put ./AwardsManagers.csv /user/bigdataproject/AwardsManagers.csvhive -f ./AwardsManagers.hive

  3. Пример сгенерированных сценариев улья

    CREATE DATABASE IF NOT EXISTS lahman; USE lahman; CREATE TABLE AllstarFull (playerID string,yearID string,gameNum string,gameID string,teamID string,lgID string,GP string,startingPos string) row format delimited fields terminated by ',' stored as textfile; LOAD DATA INPATH '/user/bigdataproject/AllstarFull.csv' OVERWRITE INTO TABLE AllstarFull; SELECT * FROM AllstarFull;

Спасибо Vijay

Файловая система Hadoop не поддерживает добавление данных в существующие файлы. Хотя вы можете загрузить свой CSV-файл в HDFS и сказать, что Hive рассматривал его как внешнюю таблицу.

это поддерживается из версии hive 0.14

INSERT INTO TABLE pd_temp (dept, make, cost, id, asmb_city, asmb_ct, розничная торговля) VALUES ('production', 'thailand', 10,99202, 'Northcarolina', 'usa', 20)

для вставки ad-hoc-значения типа (12, «xyz») выполните следующее:

insert into table foo select * from (select 12,"xyz")a;

Использовать это –

create table dummy_table_name as select * from source_table_name;

Это создаст новую таблицу с существующими данными, доступными для source_table_name .

sql.fliplinux.com

sql - Вставка нескольких значений в таблицу базы данных mysql

Я буду использовать изображения, чтобы объяснить, что я пытаюсь выполнить. Я пытаюсь вставить значения в таблицу, введенную в поле в любом порядке.

Допустим, имя вашего сайта - ваш сайт.com.

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

Ваш PHP- код выглядит так:

<input type="number" name="Box1"></input> <input type="number" name="Box2"></input> <input type="number" name="Box3"></input> <input type="number" name="Box4"></input>

Давайте еще раз скажем, что ваша таблица MySQL в вашей базе данных выглядит примерно так, как показано ниже.

Имена в базе данных 1,2,3... 8, как показано выше.

Скажем, для примера, цифры 4,5,6,1 вводятся в поля на вашем сайте, как показано ниже:

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

Давайте добавим больше чисел для примера 8,5,2,7, и не имеет значения, как они введены

После добавления чисел ваша таблица базы данных MySQL должна выглядеть следующим образом

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

Если таблица может автоматически увеличиваться, таблица MYSQL будет выглядеть примерно так:

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

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

qaru.site