Expasys BI
Руководство пользователя (версия 2023.2)
×

Извлечение данных

 
Для начала импортируйте необходимые библиотеки - Pandas для работы с таблицами и Pymssql для работы с СУБД MsSql.
import pandas as pd
import pymssql
Далее нужно подключиться к базе данных с помощью pymssql.connect().
con = pymssql.connect(server='server',
                       user='user',
                       password='password',
                       database='database')
cur = con.cursor()
Если вы не знаете точное название таблицы, которая вам нужна, можно получить список доступных таблиц, используя следующий скрипт.
cur.execute('SELECT * FROM INFORMATION_SCHEMA.TABLES')
tables = cur.fetchall()
tables
Чтобы выгрузить таблицу из базы данных можно использовать следующий шаблон, в котором вместо user и TableName нужно вписать имя пользователя, указанное в параметрах подключения к СУБД и название нужной вам таблицы из списка доступных таблиц соответственно:
cur.execute("SELECT * FROM [database].[dbo].[TableName]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='TableName'")
columns=cur.fetchall()
Пример получения таблицы с группами достижений:
cur.execute("SELECT * FROM [database].[dbo].[AchievementGroups]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='AchievementGroups'")
columns=cur.fetchall()
achievement_groups=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])
Пример получения таблицы c уровнями образования:
cur.execute("SELECT * FROM [database].[dbo].[EducationLevels]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='EducationLevels'")
columns=cur.fetchall()
education_levels=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])
Пример получения таблицы c пользователями:
cur.execute("SELECT * FROM [database].[dbo].[LMS_Users]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='LMS_Users'")
columns=cur.fetchall()
lms_users=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])
Пример получения таблицы c типами достижений:
cur.execute("SELECT * FROM [database].[dbo].[TypeOfAchievements]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='TypeOfAchievements'")
columns=cur.fetchall()
type_of_achievements=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])
Пример получения таблицы с достижениями пользователей:
cur.execute("SELECT * FROM [database].[dbo].[UserAchievements]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='UserAchievements'")
columns=cur.fetchall()
user_achievements=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])