2023-03-02

SQLってどうやって勉強すればいいの

プログラミングJSで動くの作れたけどSQL分からん

追記

chatgptで

sqlite3でtwitterみたいなサイトテーブル設計をして。

上記Twitterのようなサイト特定ユーザータイムラインを表示するクエリの例を教えて」

って聞くと、こういうの表示されるけど、こんなの絶対パッと思いつかんやろ!!

特にJOIN2回使うのが全然分からん。なんならJOIN1回の部分も分からん

っていうか、hatena君、sqlシンタックスハイライトするとインターナルサーバーエラー返してくるんだが...

>|エスキューエル|

パイプパイプ<

class Foo
  def bar'baz' # return baz
  end
end

sqlだけっぽい......

CREATE TABLE users (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  username TEXT NOT NULL,
  email TEXT NOT NULL UNIQUE,
  password TEXT NOT NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE tweets (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  user_id INTEGER NOT NULL,
  body TEXT NOT NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES users (id)
);

CREATE TABLE follows (
  follower_id INTEGER NOT NULL,
  followed_id INTEGER NOT NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (follower_id, followed_id),
  FOREIGN KEY (follower_id) REFERENCES users (id),
  FOREIGN KEY (followed_id) REFERENCES users (id)
);


SELECT tweets.id, tweets.body, tweets.created_at, users.username
FROM tweets
JOIN follows ON tweets.user_id = follows.followed_id
JOIN users ON tweets.user_id = users.id
WHERE follows.follower_id = [特定ユーザーID]
ORDER BY tweets.created_at DESC;
  • Windows にWAMPみたいなパッケージいれたら、MySQLが入るやん? それでMySQLのコマンドラインで SQLたたける

    • 環境構築はできてる SELECT FROM * FROM table; みたいなのも分かる けど そっから先のTwitterみたいなの作ろうとした時どういうテーブル作ってどういうクエリでSELECTすれば良いのか分からん

      • 時刻 ツイート の2列のテーブル作って、 ガンガンツイートを INSERT しまくる。 SELECT は、データの溜まったテーブルから、時刻の新しいやつ10個だけ SELECT する。

        • SELECT 時刻,ツイート FROM ツイーツ ORDER BY 時刻 ASC LIMIT 10; とかだろ。たぶん それは分かる テーブル2枚とかになった瞬間脳が壊れる

  • DBは初学者にとって環境構築と使われ方のイメージつくまでがしんどいよな

  • 俺はMS Accessをいじって覚えたな。 とりあえずローカルでDBを動かす環境を作るか、オンラインで手軽に試せる環境を探すか。

    • オンラインのやつ試してみる 前にオンラインの試した時にエディタの入力補完が効かなくて手打ち辛くてやめちゃった

  • paiza講座やドットインストールで学べばええで

    • paizaとドットインストール試してみる テーブルの設計とかテーブル2枚とか3枚のクエリとかも試せるのかな JOINとかGROUP BYとかがムズい......

  • とりあえずidと名前だけ持ったユーザーtableを作って それを100件くらいinsertしてみて いろんな条件でselectしてみて 次にidと本文と日付だけ持ったツイートtableを作って それを100件くらいin...

  • 5回くらいchatGPTに教えてもらったら感覚つかめる

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん