PODSTAWY BAZ DANYCH

Podstawy baz danych 11

Baza

DVD Rental Service

source

restore

Series

samples

generate_series(start, stop)
SELECT * FROM generate_series(2,4);
generate_series(start, stop, step)
SELECT * FROM generate_series(5,1,-2);
generate_series(start, stop, step interval)
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
                              '2008-03-04 12:00', '10 hours');
with range_values as (
  select date_trunc('week', min(payment_date)) as minval,
         date_trunc('week', max(payment_date)) as maxval
  from payment),

week_range as (
  select generate_series(minval, maxval, '1 week'::interval) as week
  from range_values
),

weekly_counts as (
  select date_trunc('week', payment_date) as week,
         count(*) as ct
  from payment
  group by 1
)

select week_range.week,
       weekly_counts.ct
from week_range
left outer join weekly_counts on week_range.week = weekly_counts.week;
select extract(hour from payment_date) as hour, count(*) as counter
from payment
group by hour
order by counter desc

Sequelize

Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.

const { Sequelize, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');

class User extends Model {}
User.init({
  username: DataTypes.STRING,
  birthday: DataTypes.DATE
}, { sequelize, modelName: 'user' });

sequelize.sync()
  .then(() => User.create({
    username: 'janedoe',
    birthday: new Date(1980, 6, 20)
  }))
  .then(jane => {
    console.log(jane.toJSON());
  });

Materiały

Cwiczenia

  • pokaz ile fimow zostalo wypozyczonych w kazdym tygodniu roku (od 1 do 52), dla kazdego tygodnia w oddzielnej kolumnie podaj nazwe miesiaca
week month qty
1 January 123
2 January 0
3 January 2
4 January 5
5 February 1