"แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜" แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

"แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜" แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

SQL, แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜? แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฉแƒ•แƒ”แƒœแƒ’แƒแƒœแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ - แƒฉแƒ•แƒ”แƒœ แƒ•แƒ‘แƒ”แƒญแƒ“แƒแƒ•แƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ—, แƒฉแƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒ”แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜, แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ, แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒแƒ“แƒแƒช แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ - แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒฏแƒ˜แƒ‘แƒ”แƒจแƒ˜แƒ แƒ“แƒ (แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก) แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ DBMS แƒแƒ แƒ˜แƒก แƒแƒ› แƒ“แƒ แƒแƒก แƒ™แƒแƒžแƒแƒขแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ (แƒแƒœ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก DBMS). แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ (แƒ แƒ”แƒšแƒแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒ แƒแƒ แƒช แƒ˜แƒกแƒ”) แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ— (แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก, แƒ แƒแƒช แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก - แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜, แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ, แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜, แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜). แƒ“แƒ แƒ”แƒก แƒ”แƒฎแƒ”แƒ‘แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒกแƒฅแƒ”แƒ›แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒแƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ—แƒ”แƒš แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ”แƒก. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ˜แƒฃแƒ  แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” โ€žแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜แƒกโ€œ แƒฅแƒ•แƒ”แƒจ.

แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  ORM. "SQL vs ORM" แƒขแƒ˜แƒžแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒœแƒ˜แƒจแƒœแƒ แƒฃแƒ™แƒแƒœ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ แƒ˜ แƒžแƒ”แƒขแƒ แƒ˜แƒœแƒ” แƒ แƒฃแƒกแƒ”แƒ—แƒ˜.

แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒฃแƒ -แƒ แƒ”แƒšแƒแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ แƒฃแƒ™แƒ

ORM แƒ›แƒฎแƒแƒ แƒ“แƒแƒ›แƒญแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒแƒคแƒแƒกแƒ”แƒ‘แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒก แƒ“แƒ แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒก, DBMS-แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒ“แƒ แƒกแƒฃแƒคแƒ—แƒ แƒ™แƒแƒ“แƒก. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ’แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ (แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ)

แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ...

@Entity
@Table(name = "stock", catalog = "maindb", uniqueConstraints = {
        @UniqueConstraint(columnNames = "STOCK_NAME"),
        @UniqueConstraint(columnNames = "STOCK_CODE") })
public class Stock implements java.io.Serializable {

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "STOCK_ID", unique = true, nullable = false)
    public Integer getStockId() {
        return this.stockId;
    }
  ...

แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ— แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒกแƒแƒ“แƒฆแƒแƒช แƒ™แƒฃแƒšแƒ˜แƒกแƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ›แƒแƒชแƒ˜ ORM แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ“แƒ แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” SQL แƒ™แƒแƒ“แƒก. แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ”แƒœ แƒ˜แƒ–แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ™แƒ˜แƒšแƒแƒ›แƒ”แƒขแƒ แƒ˜แƒแƒœแƒ˜ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ–แƒ”. "SQL แƒกแƒ˜แƒซแƒฃแƒšแƒ•แƒ˜แƒšแƒ˜".

แƒ‘แƒแƒ แƒ˜แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒแƒ แƒ”แƒก, แƒกแƒฃแƒคแƒ—แƒ โ€žแƒฎแƒ”แƒšแƒœแƒแƒ™แƒ”แƒ—แƒ˜โ€œ SQL-แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒ”แƒ‘แƒ˜ แƒแƒฆแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ”แƒœ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก, แƒ’แƒแƒ›แƒแƒฌแƒฃแƒ แƒแƒœ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฌแƒ•แƒ”แƒœแƒ˜ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ DBMS-แƒ“แƒแƒœ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒจแƒ แƒ”แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒœแƒ“แƒ”แƒ‘แƒ โ€žแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜โ€œ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ (แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒแƒœ โ€žแƒ‘แƒแƒ–แƒ˜แƒกแƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜โ€œ, แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒแƒœ โ€žแƒ‘แƒแƒ–แƒ˜แƒกแƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜โ€œ, แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒแƒœ โ€žแƒ‘แƒแƒกแƒ“แƒ”แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜โ€œ แƒ“แƒ แƒ.แƒจ.) แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ–แƒ แƒœแƒแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ”แƒ‘แƒ˜แƒก โ€žแƒ’แƒแƒงแƒ•แƒแƒœแƒโ€œ, แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒแƒ แƒ˜แƒ•แƒ” แƒกแƒแƒ›แƒงแƒแƒ แƒแƒ“แƒแƒœ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ”แƒก? แƒ แƒแƒ’แƒแƒ  แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒ”แƒก แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ• แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒจแƒ˜ แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— Yesql. แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒš แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒจแƒ˜ แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ”แƒชแƒœแƒแƒ— แƒ›แƒแƒก แƒแƒฅ.

Clojure แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ”แƒœแƒแƒ DSL-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒแƒ•แƒแƒ“ SQL แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒ แƒ˜ DSL แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. S-แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒฅ แƒแƒฎแƒแƒšแƒก แƒแƒ  แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒœ. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒก แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แฒแƒ  แƒ•แƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒ˜? แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒ”แƒšแƒแƒ“แƒ”แƒ— แƒ›แƒแƒ›แƒ”แƒœแƒขแƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ’แƒแƒŸแƒแƒœแƒ•แƒแƒก แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ‘แƒ แƒซแƒแƒšแƒแƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒกแƒ—แƒแƒœ (raw-sql)

แƒ›แƒ”แƒ แƒ” แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ? แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒขแƒแƒ•แƒแƒ— SQL, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ SQL - แƒ”แƒ แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒ—แƒ˜แƒ—แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ–แƒ”:

-- name: users-by-country
select *
  from users
 where country_code = :country_code

... แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ˜, แƒ’แƒแƒ“แƒแƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒ˜แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• Clojure แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ“:

(defqueries "some/where/users_by_country.sql"
   {:connection db-spec})

;;; A function with the name `users-by-country` has been created.
;;; Let's use it:
(users-by-country {:country_code "GB"})
;=> ({:name "Kris" :country_code "GB" ...} ...)

"SQL แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“, Clojure แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“" แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ—:

  • แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒฃแƒ แƒ˜ แƒกแƒ˜แƒฃแƒ แƒžแƒ แƒ˜แƒ–แƒ”แƒ‘แƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ (แƒ แƒแƒ’แƒแƒ แƒช แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒฎแƒ•แƒ) แƒแƒ  แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ SQL แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒก 100%-แƒ˜แƒ— - แƒ›แƒแƒ’แƒ แƒแƒ› Yesql-แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ›แƒแƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ  แƒแƒฅแƒ•แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒแƒ•แƒ— แƒ“แƒ แƒแƒก SQL แƒ”แƒฅแƒ•แƒ˜แƒ•แƒแƒšแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ” แƒœแƒแƒ“แƒ˜แƒ แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ (raw-sql "some('funky'::SYNTAX)")).
  • แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒแƒ แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ SQL แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. SQL-แƒ˜แƒก SQL-แƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒ’แƒ˜.
  • แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ. แƒ—แƒฅแƒ•แƒ”แƒœแƒก DBA-แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒœ แƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒœ SQL, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Clojure แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜.
  • แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก? แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ แƒ˜แƒก แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ SQL.
  • แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ’แƒแƒ“แƒแƒแƒ—แƒ แƒ˜แƒ”แƒ— แƒ“แƒ แƒฉแƒแƒ›แƒแƒแƒ’แƒ“แƒ”แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” SQL แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒซแƒ•แƒ”แƒšแƒ˜ SQLแƒ - แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒแƒ–แƒ˜แƒแƒ แƒ”แƒ—.

แƒฉแƒ”แƒ›แƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒ˜แƒ“แƒ”แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—แƒแƒช แƒžแƒ แƒแƒ”แƒฅแƒขแƒ›แƒ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒ˜แƒžแƒแƒ•แƒ แƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ”แƒœแƒแƒ–แƒ”. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— SQL แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒคแƒ˜แƒšแƒแƒกแƒแƒคแƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒกแƒ’แƒแƒœ ORM-แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ›แƒ.

IDE & DB แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ”แƒ‘แƒ˜

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒ•แƒ˜แƒฌแƒ”แƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒซแƒ”แƒ‘แƒœแƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒฅแƒ”แƒ›แƒแƒจแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ (แƒ แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜, แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ”แƒ‘แƒ˜, แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜, แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ. แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ). แƒ“แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ IDE แƒแƒœ แƒžแƒแƒขแƒแƒ แƒ DB-แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜แƒกแƒ’แƒแƒœ, แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒšแƒ˜แƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก. แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ”แƒก แƒ˜แƒงแƒแƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒ แƒแƒ  แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ— แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜ แƒกแƒแƒแƒ—แƒ˜แƒก แƒšแƒแƒ“แƒ˜แƒœแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒœแƒฏแƒ แƒ˜แƒก แƒ“แƒแƒฎแƒแƒขแƒ•แƒแƒ›แƒ“แƒ” (แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒœแƒ”แƒšแƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒ—) แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ˜แƒงแƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜, แƒ“แƒ แƒแƒ แƒ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฃแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒ“แƒ˜แƒ“แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ“แƒ แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ›แƒแƒฃแƒกแƒก แƒ•แƒงแƒ แƒ˜ แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒ“แƒก แƒ•แƒฌแƒ”แƒ . แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ แƒ™แƒ•แƒ˜แƒแƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ (แƒ“แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—) แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก "HR" แƒกแƒฅแƒ”แƒ›แƒแƒก. แƒฃแƒ›แƒ”แƒขแƒ”แƒก DBMS-แƒจแƒ˜ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก_แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒแƒ› แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—:

select table_name
     , ...
  from information_schema.tables
 where schema = 'HR'

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒ›แƒ“แƒ”, แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ DBMS-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒ“แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, MySQL-แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒฌแƒ˜แƒ’แƒœแƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒแƒ› DBMS-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

select table_name
     , storage_engine -- ะ˜ัะฟะพะปัŒะทัƒะตะผั‹ะน "ะดะฒะธะถะพะบ" ("MyISAM", "InnoDB" etc)
     , row_format     -- ะคะพั€ะผะฐั‚ ัั‚ั€ะพะบะธ ("Fixed", "Dynamic" etc)
     , ...
  from information_schema.tables
 where schema = 'HR'

Oracle-แƒ›แƒ แƒแƒ  แƒ˜แƒชแƒ˜แƒก information_schema, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฅแƒ•แƒก Oracle-แƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ“แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ:

select table_name
     , pct_free       -- ะœะธะฝะธะผัƒะผ ัะฒะพะฑะพะดะฝะพะณะพ ะผะตัั‚ะฐ ะฒ ะฑะปะพะบะต ะดะฐะฝะฝั‹ั… (%)
     , pct_used       -- ะœะธะฝะธะผัƒะผ ะธัะฟะพะปัŒะทัƒะตะผะพะณะพ ะผะตัั‚ะฐ ะฒ ะฑะปะพะบะต ะดะฐะฝะฝั‹ั… (%)
     , last_analyzed  -- ะ”ะฐั‚ะฐ ะฟะพัะปะตะดะฝะตะณะพ ัะฑะพั€ะฐ ัั‚ะฐั‚ะธัั‚ะธะบะธ
     , ...
  from all_tables
 where owner = 'HR'

ClickHouse แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒ˜:

select name
     , engine -- ะ˜ัะฟะพะปัŒะทัƒะตะผั‹ะน "ะดะฒะธะถะพะบ" ("MergeTree", "Dictionary" etc)
     , ...
  from system.tables
 where database = 'HR'

แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒแƒจแƒ˜ (แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒฏแƒแƒฎแƒ”แƒ‘แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ“แƒ แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜ แƒกแƒฅแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“):

select columnfamily_name
     , compaction_strategy_class  -- ะกั‚ั€ะฐั‚ะตะณะธั ัะฑะพั€ะบะธ ะผัƒัะพั€ะฐ
     , gc_grace_seconds           -- ะ’ั€ะตะผั ะถะธะทะฝะธ ะผัƒัะพั€ะฐ
     , ...
  from system.schema_columnfamilies
 where keyspace_name = 'HR'

แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ (แƒ›แƒแƒœแƒ’แƒแƒกแƒแƒช แƒ™แƒ˜ แƒแƒฅแƒ•แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘).

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ“แƒ แƒแƒ“แƒแƒ“แƒ แƒ, แƒ™แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜ แƒ˜แƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒ”แƒœ แƒ˜แƒกแƒ”แƒ— แƒ™แƒแƒ“แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฐแƒแƒ‘แƒ แƒ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒแƒจแƒ˜ "PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜" (แƒแƒ˜แƒ‘, แƒ‘แƒ˜แƒœ, แƒกแƒžแƒแƒ แƒข - แƒ“แƒแƒ แƒ‘แƒแƒ–แƒ˜). แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ›แƒ—แƒ”แƒšแƒ˜ แƒแƒ› แƒ›แƒ—แƒ˜แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒจแƒ˜ แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒฃแƒ“แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒแƒ™แƒ แƒ”แƒคแƒ แƒ“แƒ˜แƒ“แƒ˜ แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ”แƒ›แƒก แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒš IDE/แƒ แƒ”แƒ“แƒแƒฅแƒขแƒแƒ แƒจแƒ˜ แƒ›แƒแƒฅแƒ•แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒ แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ™แƒ แƒ˜แƒคแƒ”แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒจแƒ˜.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ•แƒ˜แƒ’แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜แƒ, แƒ“แƒแƒ–แƒแƒ’แƒแƒ•แƒก แƒ“แƒ˜แƒ“ แƒ“แƒ แƒแƒก แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ˜แƒ› แƒคแƒแƒ แƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ”แƒก แƒแƒฎแƒšแƒ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ (แƒ แƒแƒ’แƒแƒ แƒช, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒžแƒแƒกแƒขแƒจแƒ˜ "แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ—: แƒ แƒ˜แƒกแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— IDE-แƒ”แƒ‘แƒก IntelliJ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ”").

แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒ•แƒ˜แƒžแƒแƒ•แƒœแƒ”แƒ— แƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜, แƒ“แƒ แƒแƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ›แƒแƒ—แƒ—แƒแƒœ. แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒแƒ–แƒ” แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒกแƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฌแƒแƒจแƒšแƒ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜:

drop table hr.persons

แƒ›แƒแƒ’แƒ แƒแƒ› แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒ— แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒฎแƒ“แƒ”แƒ‘แƒ. แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  DBMS-แƒก (แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ NoSQL) แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ โ€žแƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜โ€œ แƒแƒ›แƒ แƒ—แƒฃ แƒ˜แƒ› แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒแƒ“แƒœแƒแƒ• แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ (แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜), แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฎแƒ•แƒ แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ™แƒ•แƒ”แƒ—แƒ แƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ–แƒ”. แƒจแƒ˜แƒ“แƒ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ DBMS-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜. แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ แƒ˜แƒก, แƒ แƒแƒ› Oracle-แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ โ€žแƒจแƒ˜แƒจแƒ•แƒ”แƒšแƒ˜โ€œ BNF-แƒ”แƒ‘แƒ˜ โ€žแƒจแƒ”แƒฅแƒ›แƒœแƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒกโ€œ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก 31 แƒ’แƒ•แƒ”แƒ แƒ“แƒก. แƒกแƒฎแƒ•แƒ DBMS-แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒแƒ™แƒ แƒซแƒแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ—แƒ’แƒแƒœแƒก แƒแƒกแƒ”แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ“แƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ (แƒžแƒแƒกแƒขแƒ’แƒ แƒแƒ›แƒ, mysql, แƒขแƒแƒ แƒแƒ™แƒแƒœแƒ˜, cassandra). แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ, แƒ แƒแƒ› แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ›แƒ โ€žแƒแƒกแƒขแƒแƒขแƒ›แƒโ€œ แƒกแƒฎแƒ•แƒ IDE-แƒ“แƒแƒœ (แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒฃแƒœแƒ˜แƒ•แƒ”แƒ แƒกแƒแƒšแƒฃแƒ แƒ˜) แƒจแƒ”แƒซแƒšแƒแƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ“แƒแƒคแƒแƒ แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒฃแƒœแƒแƒ แƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒช แƒจแƒ”แƒซแƒšแƒแƒก, แƒ”แƒก แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒžแƒ”แƒฅแƒขแƒแƒ™แƒšแƒ˜ แƒ’แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒฅแƒ•แƒ”แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก, แƒกแƒฌแƒแƒ แƒแƒ“ แƒ“แƒ แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜, แƒ’แƒแƒฎแƒแƒ“แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ, แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ™แƒแƒ›แƒคแƒแƒ แƒขแƒฃแƒšแƒ˜.

แƒแƒกแƒ”แƒ•แƒ”, แƒ‘แƒ”แƒ•แƒ  DBMS-แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒกแƒฎแƒ•แƒ DBMS-แƒ”แƒ‘แƒจแƒ˜. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ–แƒ”, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ—แƒแƒ•แƒแƒ“ DBMS-แƒ–แƒ”แƒช, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, โ€žแƒ›แƒแƒ™แƒšแƒแƒ—โ€œ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒ’แƒแƒ•แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ”แƒแƒšแƒ˜, แƒ’แƒแƒ•แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ— แƒขแƒ แƒแƒกแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— โ€žแƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกโ€œ แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ.

แƒแƒฎแƒšแƒ แƒชแƒแƒขแƒ แƒ“แƒแƒ•แƒฎแƒแƒขแƒแƒ—

แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒแƒ’แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒแƒฎแƒ•แƒ แƒšแƒแƒ›แƒแƒ– แƒกแƒฃแƒ แƒแƒ—แƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒš IDE-แƒก, แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš "แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก" แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒแƒก, แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒš แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒš แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒก. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ“แƒแƒฎแƒแƒ–แƒแƒ•แƒ”แƒœ แƒ แƒแƒฆแƒแƒชแƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก โ€žแƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ—โ€œ แƒ“แƒ แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ” แƒ›แƒชแƒ˜แƒ แƒ”แƒ“ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒ›แƒแƒฎแƒ“แƒ”แƒœแƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒฉแƒ”แƒ™ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ”แƒก แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜, แƒฃแƒคแƒ แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒ“แƒ แƒ”แƒšแƒ”แƒ’แƒแƒœแƒขแƒฃแƒ แƒ˜ แƒ“แƒ แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ—. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ แƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ (DOT, GraphML แƒ“แƒ แƒ.แƒจ.) แƒ“แƒ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒแƒคแƒแƒœแƒขแƒ•แƒ (GraphViz, PlantUML, Mermaid), แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒœ แƒแƒกแƒ”แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒฃแƒ แƒแƒ“ แƒฌแƒแƒ แƒ›แƒแƒแƒฉแƒ˜แƒœแƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜. . แƒ˜แƒกแƒ”, แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ•แƒ˜แƒชแƒ˜แƒ— แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒžแƒแƒขแƒแƒ แƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒแƒ“แƒ”แƒก PlantUML-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ”แƒ›แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ PostgreSQL-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ›แƒแƒ แƒชแƒฎแƒœแƒ˜แƒ• แƒแƒ แƒ˜แƒก SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒแƒก PlantUML-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฎแƒแƒšแƒ แƒ›แƒแƒ แƒฏแƒ•แƒœแƒ˜แƒ• แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜):

"แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜" แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

select '@startuml'||chr(10)||'hide methods'||chr(10)||'hide stereotypes' union all
select distinct ccu.table_name || ' --|> ' ||
       tc.table_name as val
  from table_constraints as tc
  join key_column_usage as kcu
    on tc.constraint_name = kcu.constraint_name
  join constraint_column_usage as ccu
    on ccu.constraint_name = tc.constraint_name
 where tc.constraint_type = 'FOREIGN KEY'
   and tc.table_name ~ '.*' union all
select '@enduml'

แƒ“แƒ แƒ—แƒฃ แƒชแƒแƒขแƒแƒก แƒชแƒ“แƒ˜แƒšแƒแƒ‘, แƒ›แƒแƒจแƒ˜แƒœ แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” ER แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜ PlantUML-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ แƒแƒฆแƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ  ER แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒแƒกแƒ—แƒแƒœ:

SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ

-- ะจะฐะฟะบะฐ
select '@startuml
        !define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
        !define primary_key(x) <b>x</b>
        !define unique(x) <color:green>x</color>
        !define not_null(x) <u>x</u>
        hide methods
        hide stereotypes'
 union all
-- ะขะฐะฑะปะธั†ั‹
select format('Table(%s, "%s n information about %s") {'||chr(10), table_name, table_name, table_name) ||
       (select string_agg(column_name || ' ' || upper(udt_name), chr(10))
          from information_schema.columns
         where table_schema = 'public'
           and table_name = t.table_name) || chr(10) || '}'
  from information_schema.tables t
 where table_schema = 'public'
 union all
-- ะกะฒัะทะธ ะผะตะถะดัƒ ั‚ะฐะฑะปะธั†ะฐะผะธ
select distinct ccu.table_name || ' "1" --> "0..N" ' || tc.table_name || format(' : "A %s may haven many %s"', ccu.table_name, tc.table_name)
  from information_schema.table_constraints as tc
  join information_schema.key_column_usage as kcu on tc.constraint_name = kcu.constraint_name
  join information_schema.constraint_column_usage as ccu on ccu.constraint_name = tc.constraint_name
 where tc.constraint_type = 'FOREIGN KEY'
   and ccu.constraint_schema = 'public'
   and tc.table_name ~ '.*'
 union all
-- ะŸะพะดะฒะฐะป
select '@enduml'

"แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜" แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ—แƒฃ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒกแƒ’แƒแƒ•แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก. แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ, แƒ”แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒฆแƒ แƒ›แƒแƒ "แƒ›แƒงแƒแƒ แƒแƒ“ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜" แƒ—แƒแƒ•แƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ“แƒ แƒซแƒœแƒ”แƒšแƒ˜ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒแƒ› แƒแƒฆแƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ•แƒ—แƒฅแƒ•แƒแƒ— แƒ›แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒแƒ–แƒ”.

แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ แƒ“แƒ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜

แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒ แƒ—แƒฃแƒš แƒ—แƒ”แƒ›แƒแƒ–แƒ” - แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜. แƒ›แƒแƒฎแƒกแƒแƒ•แƒก แƒžแƒแƒขแƒแƒ แƒ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒ›แƒ‘แƒแƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ›แƒ˜แƒงแƒ•แƒ โ€žแƒ”แƒ แƒ—แƒ›แƒ แƒฉแƒ”แƒ›แƒ›แƒ แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ แƒ›แƒโ€œ. แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒ“แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ DBA แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ›แƒ แƒ›แƒแƒก แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒ˜แƒชแƒœแƒแƒ‘แƒ“แƒ แƒแƒœ แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒฃแƒœแƒแƒฎแƒแƒ•แƒก แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ (แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ›, แƒญแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒแƒฎแƒ›แƒแƒ“, แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ แƒกแƒแƒ“แƒฆแƒแƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒแƒ แƒžแƒฃแƒกแƒจแƒ˜). "X" แƒกแƒแƒแƒ—แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒ˜แƒ“แƒ˜ แƒกแƒแƒชแƒแƒšแƒ แƒ•แƒแƒญแƒ แƒแƒ‘แƒ˜แƒก แƒกแƒแƒฌแƒแƒ แƒ›แƒแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ› แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ“แƒแƒ˜แƒฌแƒงแƒ "แƒชแƒฃแƒ“แƒแƒ“ แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ", แƒ›แƒแƒœ แƒฉแƒฃแƒ›แƒแƒ“ แƒ’แƒแƒ›แƒแƒแƒ’แƒ–แƒแƒ•แƒœแƒ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ”แƒ‘แƒ˜ Oracle Enterprise Manager-แƒ˜แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ›แƒแƒœ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒ— แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ˜แƒ— แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ˜แƒ— แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ˜แƒ— แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ˜แƒ— แƒแƒฆแƒœแƒ˜แƒจแƒœแƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜ แƒ›แƒแƒ แƒ™แƒ”แƒ แƒ˜แƒ— "แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“" ( แƒ”แƒก, แƒ แƒ‘แƒ˜แƒšแƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ“แƒ˜แƒ“แƒแƒ“ แƒแƒ  แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ). แƒ“แƒ แƒแƒ› "แƒคแƒแƒขแƒ แƒ‘แƒแƒ แƒแƒ—แƒ˜แƒก" แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ›แƒ™แƒฃแƒ แƒœแƒแƒšแƒแƒ‘แƒ. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒแƒ แƒแƒ•แƒ˜แƒก แƒฐแƒฅแƒแƒœแƒ“แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒซแƒ•แƒ˜แƒ แƒคแƒแƒก (แƒแƒ› แƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒ—) แƒกแƒแƒฌแƒแƒ แƒ›แƒแƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ—แƒแƒœ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ, แƒฃแƒชแƒ”แƒ‘ โ€žแƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ แƒแƒฆแƒแƒชแƒแƒก แƒฌแƒแƒแƒฌแƒงแƒ“แƒ”แƒ‘แƒ˜แƒแƒœ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒ”แƒœโ€œ. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ "แƒ”แƒ›แƒžแƒ˜แƒ แƒ˜แƒฃแƒšแƒแƒ“" แƒ˜แƒžแƒแƒ•แƒ”แƒก แƒ›แƒฃแƒฎแƒ แƒฃแƒญแƒ”แƒ‘แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒฃแƒจแƒ•แƒ”แƒก แƒžแƒแƒฉแƒ˜. แƒ—แƒฃ DBA-แƒก แƒ›แƒฃแƒฅแƒแƒ แƒ˜แƒก แƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒฃแƒแƒฎแƒšแƒแƒ”แƒก แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒแƒฆแƒแƒ  แƒฉแƒแƒ›แƒแƒ•แƒ˜แƒ“แƒแƒ“แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒแƒ›แƒแƒ˜แƒกแƒฃแƒœแƒ—แƒฅแƒแƒ•แƒ“แƒ แƒ“แƒ แƒ“แƒแƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒš แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒก (แƒแƒฎแƒแƒš แƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ›แƒ“แƒ”).

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒฃแƒคแƒ แƒ แƒกแƒแƒฎแƒแƒšแƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒฃแƒšแƒ˜, แƒ“แƒ แƒ แƒแƒช แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ, แƒงแƒ•แƒ”แƒšแƒแƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ”. แƒ›แƒ˜แƒกแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ›แƒแƒ˜แƒœแƒช, แƒ แƒแƒ’แƒแƒ แƒช แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ (แƒ แƒแƒช แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ“แƒ แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ). แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ DBMS แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒแƒ“ แƒ“แƒ แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒฃแƒคแƒแƒกแƒแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ˜แƒ›แƒแƒ•แƒ” โ€žแƒกแƒ˜แƒกแƒฎแƒšแƒ˜แƒแƒœโ€œ Oracle DB-แƒจแƒ˜, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒกแƒ”แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ‘แƒฃแƒคแƒ”แƒ แƒฃแƒšแƒ˜ แƒฅแƒ”แƒจแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒ›แƒ“แƒ” (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, DBA แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ "แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜"). Postgresql-แƒก แƒแƒกแƒ”แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ—แƒแƒ˜แƒ’แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜, แƒ™แƒ”แƒ แƒซแƒแƒ“ แƒ˜แƒก, แƒ แƒแƒช แƒจแƒ”แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ DBA-แƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ˜แƒฃแƒ  แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ pg_stat_activity, pg_stat_database, pg_stat_bgwriter. MySQL-แƒก แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ” แƒกแƒฅแƒ”แƒ›แƒแƒช แƒ™แƒ˜ แƒแƒฅแƒ•แƒก. แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก_แƒกแƒฅแƒ”แƒ›แƒ. In Mongo แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ”แƒ แƒ˜ แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒแƒจแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ.แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜.

แƒแƒ›แƒ’แƒ•แƒแƒ แƒแƒ“, แƒจแƒ”แƒ˜แƒแƒ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒแƒœแƒ”แƒ แƒ˜แƒ— (Telegraf, Metricbeat, Collectd), แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒก แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ sql แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜, แƒแƒ› แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ (InfluxDB, Elasticsearch, Timescaledb) แƒ“แƒ แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜ (Grafana, Kibana), แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒญแƒ˜แƒ“แƒ แƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒแƒกแƒ—แƒแƒœ (แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ, OS-แƒ“แƒแƒœ แƒ“แƒ แƒ.แƒจ.). แƒ แƒแƒ’แƒแƒ แƒช, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ”แƒก แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ pgwatch2-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก InfluxDB + Grafana แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ. แƒกแƒแƒ‘แƒแƒŸแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ.

แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜

แƒ“แƒ แƒ”แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ SQL แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ , แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜. แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  (แƒ“แƒ แƒ แƒแƒช แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ แƒ แƒแƒขแƒแƒ›) แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฏแƒ”แƒ แƒ–แƒ” แƒฉแƒแƒ แƒ—แƒ•แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ