Rice Database





Kerry Back

Sharadar Equities Bundle

SQL

Connect to the SQL server in python

import pandas as pd
import pymssql
from sqlalchemy import create_engine

server = 'fs.rice.edu'
database = 'stocks'
username = 'stocks'
password = '6LAZH1'
string = "mssql+pymssql://" + username + ":" + password + "@" + server + "/" + database 

conn = create_engine(string).connect()

SQL queries

SELECT column_name(s)
FROM table_name
JOIN table_name ON column_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
  • SQL is not case sensitive except when filtering on values. Pass the value (as a string) as it is in the database.
  • Example: where ticker=‘AAPL’

Explore database

Tables in the database

df = pd.read_sql(
    "select * from information_schema.tables",
    conn
)
df
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
0 stocks dbo sep2 BASE TABLE
1 stocks dbo today BASE TABLE
2 stocks dbo indicators BASE TABLE
3 stocks dbo tickers BASE TABLE
4 stocks dbo sf1 BASE TABLE
5 stocks dbo sep BASE TABLE
6 stocks dbo daily BASE TABLE

Variable definitions

df = pd.read_sql(
    "select * from indicators",
    conn
)
df.to_excel("indicators.xlsx")

All annual reports for a single company

  • ARY = as reported yearly (no restatements included)
  • datekey = date of report, reportperiod = end of fiscal period
df = pd.read_sql(
    """
    select * from sf1 
    where ticker='AAPL' and dimension='ARY'
    order by reportperiod
    """, 
    conn
)
df
ticker dimension calendardate datekey reportperiod lastupdated accoci assets assetsavg assetsc ... sharesbas shareswa shareswadil sps tangibles taxassets taxexp taxliabilities tbvps workingcapital
0 AAPL ARY 2019-12-31 2019-10-31 2019-09-28 2022-10-28 -5.840000e+08 3.385160e+11 3.441180e+11 1.628190e+11 ... 1.777306e+10 1.847134e+10 1.859565e+10 14.085 3.385160e+11 0.0 1.048100e+10 0.0 18.327 5.710100e+10
1 AAPL ARY 2020-12-31 2020-10-30 2020-09-26 2022-10-28 -4.060000e+08 3.238880e+11 3.255625e+11 1.437130e+11 ... 1.700180e+10 1.735212e+10 1.752821e+10 15.820 3.238880e+11 0.0 9.680000e+09 0.0 18.666 3.832100e+10
2 AAPL ARY 2021-12-31 2021-10-29 2021-09-25 2022-10-28 1.630000e+08 3.510020e+11 3.430135e+11 1.348360e+11 ... 1.640640e+10 1.670127e+10 1.686492e+10 21.904 3.510020e+11 0.0 1.452700e+10 0.0 21.016 9.355000e+09
3 AAPL ARY 2022-12-31 2022-10-28 2022-09-24 2022-10-28 -1.110900e+10 3.527550e+11 3.552292e+11 1.354050e+11 ... 1.590812e+10 1.621596e+10 1.632582e+10 24.317 3.527550e+11 0.0 1.930000e+10 0.0 21.754 -1.857700e+10

4 rows × 111 columns

Quarterly reports for multiple companies

df = pd.read_sql(
    """
    select * from sf1 
    where ticker in ('AAPL', 'CVX') and dimension='ARQ' and reportperiod>='2020-01-01'
    order by ticker, reportperiod
    """, 
    conn
)
df
ticker dimension calendardate datekey reportperiod lastupdated accoci assets assetsavg assetsc ... sharesbas shareswa shareswadil sps tangibles taxassets taxexp taxliabilities tbvps workingcapital
0 AAPL ARQ 2020-03-31 2020-05-01 2020-03-28 2022-10-28 -2.789000e+09 3.204000e+11 None 1.437530e+11 ... 1.733734e+10 1.744040e+10 1.761876e+10 3.344 3.204000e+11 0.0 1.886000e+09 0.000000e+00 18.371 4.765900e+10
1 AAPL ARQ 2020-06-30 2020-07-31 2020-06-27 2022-10-28 -5.500000e+08 3.173440e+11 None 1.400650e+11 ... 1.710254e+10 1.725029e+10 1.741915e+10 3.460 3.173440e+11 0.0 1.884000e+09 0.000000e+00 18.396 4.474700e+10
2 AAPL ARQ 2020-09-30 2020-10-30 2020-09-26 2022-10-28 -4.060000e+08 3.238880e+11 None 1.437130e+11 ... 1.700180e+10 1.705762e+10 1.725652e+10 3.793 3.238880e+11 0.0 2.228000e+09 0.000000e+00 18.988 3.832100e+10
3 AAPL ARQ 2020-12-31 2021-01-28 2020-12-26 2022-10-28 1.790000e+08 3.540540e+11 None 1.541060e+11 ... 1.678810e+10 1.693512e+10 1.711369e+10 6.580 3.540540e+11 0.0 4.824000e+09 0.000000e+00 20.906 2.159900e+10
4 AAPL ARQ 2021-03-31 2021-04-29 2021-03-27 2022-10-28 -2.860000e+08 3.371580e+11 None 1.214650e+11 ... 1.668763e+10 1.675348e+10 1.692916e+10 5.347 3.371580e+11 0.0 4.381000e+09 0.000000e+00 20.125 1.508000e+10
5 AAPL ARQ 2021-06-30 2021-07-28 2021-06-26 2022-10-28 5.800000e+07 3.298400e+11 None 1.144230e+11 ... 1.653017e+10 1.662937e+10 1.678174e+10 4.897 3.298400e+11 0.0 2.625000e+09 0.000000e+00 19.835 6.669000e+09
6 AAPL ARQ 2021-09-30 2021-10-29 2021-09-25 2022-10-28 1.630000e+08 3.510020e+11 None 1.348360e+11 ... 1.640640e+10 1.648712e+10 1.663510e+10 5.056 3.510020e+11 0.0 2.697000e+09 0.000000e+00 21.289 9.355000e+09
7 AAPL ARQ 2021-12-31 2022-01-28 2021-12-25 2022-10-28 -9.270000e+08 3.811910e+11 None 1.531540e+11 ... 1.631944e+10 1.639172e+10 1.651929e+10 7.561 3.811910e+11 0.0 6.611000e+09 0.000000e+00 23.255 5.580000e+09
8 AAPL ARQ 2022-03-31 2022-04-29 2022-03-26 2022-10-28 -6.494000e+09 3.506620e+11 None 1.181800e+11 ... 1.618518e+10 1.627880e+10 1.640332e+10 5.976 3.506620e+11 0.0 5.129000e+09 0.000000e+00 21.541 -9.328000e+09
9 AAPL ARQ 2022-06-30 2022-07-29 2022-06-25 2022-10-28 -9.297000e+09 3.363090e+11 None 1.122920e+11 ... 1.607075e+10 1.616294e+10 1.626220e+10 5.133 3.363090e+11 0.0 3.624000e+09 0.000000e+00 20.807 -1.758100e+10
10 AAPL ARQ 2022-09-30 2022-10-28 2022-09-24 2022-10-28 -1.110900e+10 3.527550e+11 None 1.354050e+11 ... 1.590812e+10 1.603038e+10 1.611846e+10 5.623 3.527550e+11 0.0 3.936000e+09 0.000000e+00 22.005 -1.857700e+10
11 CVX ARQ 2020-03-31 2020-05-06 2020-03-31 2022-11-03 -4.884000e+09 2.366770e+11 None 2.856200e+10 ... 1.866979e+09 1.862273e+09 1.865649e+09 16.915 2.322230e+11 0.0 5.640000e+08 1.573500e+10 124.699 3.270000e+08
12 CVX ARQ 2020-06-30 2020-08-05 2020-06-30 2022-11-03 -4.750000e+09 2.234030e+11 None 2.373200e+10 ... 1.867268e+09 1.853313e+09 1.853313e+09 7.281 2.189870e+11 0.0 -2.320000e+09 1.252900e+10 118.160 2.907000e+09
13 CVX ARQ 2020-09-30 2020-11-05 2020-09-30 2022-11-03 -4.507000e+09 2.230630e+11 None 2.480300e+10 ... 1.867323e+09 1.853533e+09 1.853533e+09 13.192 2.186470e+11 0.0 1.650000e+08 1.227800e+10 117.962 5.139000e+09
14 CVX ARQ 2020-12-31 2021-02-25 2020-12-31 2022-11-03 -5.612000e+09 2.397900e+11 None 2.607800e+10 ... 1.926377e+09 1.926377e+09 NaN 13.105 2.353880e+11 0.0 -3.010000e+08 1.444200e+10 122.192 3.895000e+09
15 CVX ARQ 2021-03-31 2021-05-06 2021-03-31 2022-11-03 -4.586000e+09 2.416450e+11 None 3.043300e+10 ... 1.928052e+09 1.912925e+09 1.915889e+09 16.743 2.372430e+11 0.0 7.790000e+08 1.469800e+10 124.021 2.953000e+09
16 CVX ARQ 2021-06-30 2021-08-05 2021-06-30 2022-11-03 -4.295000e+09 2.428060e+11 None 3.297300e+10 ... 1.933912e+09 1.917536e+09 1.921958e+09 19.607 2.384040e+11 0.0 1.328000e+09 1.539100e+10 124.328 4.826000e+09
17 CVX ARQ 2021-09-30 2021-11-04 2021-09-30 2022-11-03 -4.418000e+09 2.399480e+11 None 3.213700e+10 ... 1.927686e+09 1.918006e+09 1.921095e+09 23.311 2.355460e+11 0.0 1.940000e+09 1.619700e+10 122.808 6.949000e+09
18 CVX ARQ 2021-12-31 2022-02-24 2021-12-31 2022-11-03 -3.889000e+09 2.395350e+11 None 3.373800e+10 ... 1.947553e+09 1.947553e+09 NaN 24.713 2.351500e+11 0.0 1.903000e+09 1.777400e+10 120.741 6.947000e+09
19 CVX ARQ 2022-03-31 2022-05-04 2022-03-31 2022-11-03 -3.652000e+09 2.490480e+11 None 4.470900e+10 ... 1.964813e+09 1.935668e+09 1.944542e+09 28.090 2.446740e+11 0.0 2.777000e+09 1.930400e+10 126.403 1.350600e+10
20 CVX ARQ 2022-06-30 2022-08-04 2022-06-30 2022-11-03 -3.491000e+09 2.579360e+11 None 5.118800e+10 ... 1.957435e+09 1.947703e+09 1.957109e+09 35.304 2.532730e+11 0.0 4.288000e+09 2.021700e+10 130.037 1.206700e+10
21 CVX ARQ 2022-09-30 2022-11-03 2022-09-30 2022-11-03 -3.173000e+09 2.597350e+11 None 5.150300e+10 ... 1.933639e+09 1.932238e+09 1.940002e+09 34.491 2.550720e+11 0.0 3.571000e+09 2.239800e+10 132.009 1.462000e+10

22 rows × 111 columns

All data for a single ticker from SEP

  • Prices (open, high, low, close, volume) are in SEP
  • Marketcap and some ratios are in DAILY
df = pd.read_sql(
    """
    select * from sep where ticker='AAPL' 
    order by date
    """,
    conn
)
df
ticker date lastupdated open_ high low close_ volume closeadj closeunadj
0 AAPL 1997-12-31 2022-12-27 0.117 0.122 0.116 0.117 4.063584e+08 0.100 13.13
1 AAPL 1998-01-02 2022-12-27 0.122 0.145 0.120 0.145 7.181104e+08 0.123 16.25
2 AAPL 1998-01-05 2022-12-27 0.147 0.148 0.136 0.142 6.518736e+08 0.121 15.88
3 AAPL 1998-01-06 2022-12-27 0.142 0.178 0.132 0.169 1.812474e+09 0.144 18.94
4 AAPL 1998-01-07 2022-12-27 0.168 0.170 0.154 0.156 1.041622e+09 0.133 17.50
... ... ... ... ... ... ... ... ... ... ...
6296 AAPL 2023-01-09 2023-01-09 130.465 133.410 129.890 130.150 7.049660e+07 130.150 130.15
6297 AAPL 2023-01-10 2023-01-10 130.260 131.264 128.120 130.730 6.342765e+07 130.730 130.73
6298 AAPL 2023-01-11 2023-01-11 131.250 133.510 130.460 133.490 6.911440e+07 133.490 133.49
6299 AAPL 2023-01-12 2023-01-12 133.880 134.260 131.440 133.410 7.124770e+07 133.410 133.41
6300 AAPL 2023-01-13 2023-01-13 132.030 134.920 131.660 134.760 5.761859e+07 134.760 134.76

6301 rows × 10 columns

All data for a single ticker from DAILY

df = pd.read_sql(
    """
    select * from daily where ticker='AAPL' 
    order by date
    """,
    conn
)
df
ticker date lastupdated ev evebit evebitda marketcap pb pe ps
0 AAPL 1998-12-01 2020-08-31 4349.3 -4.2 -4.7 4599.3 3.1 -4.4 0.6
1 AAPL 1998-12-02 2020-08-31 4605.6 -4.4 -5.0 4855.6 3.3 -4.6 0.7
2 AAPL 1998-12-03 2020-08-31 4289.0 -4.1 -4.6 4539.0 3.1 -4.3 0.6
3 AAPL 1998-12-04 2020-08-31 4153.2 -4.0 -4.5 4403.2 3.0 -4.2 0.6
4 AAPL 1998-12-07 2020-08-31 4289.0 -4.1 -4.6 4539.0 3.1 -4.3 0.6
... ... ... ... ... ... ... ... ... ... ...
6065 AAPL 2023-01-09 2023-01-09 2166864.6 17.8 16.3 2070441.6 40.9 20.7 5.3
6066 AAPL 2023-01-10 2023-01-10 2176091.3 17.8 16.3 2079668.3 41.0 20.8 5.3
6067 AAPL 2023-01-11 2023-01-11 2219997.7 18.2 16.7 2123574.7 41.9 21.3 5.4
6068 AAPL 2023-01-12 2023-01-12 2218725.0 18.2 16.7 2122302.0 41.9 21.3 5.4
6069 AAPL 2023-01-13 2023-01-13 2240201.0 18.4 16.8 2143778.0 42.3 21.5 5.4

6070 rows × 10 columns