You are on page 1of 4

# MySql

## What is Database ?

1. Là 1 tập hợp dữ liệu

2. Là 1 phương thức để truy cập và thao tác dữ liệu

+ Your app -> DBMS -> Database

+ DBMS: Database Management System

+ Giả sử bạn có 1 ứng dụng hẹn hò và 1 database

Bạn đang lưu trữ tất cả các loại thông tin

về tất cả những người dùng #, tất cả các tin nhắn #,

ảnh được gửi đi, nhưng về cơ bản cơ sở dữ liệu ở dây là 1 bộ tập hợp dữ liệu khổng lồ , rất
tốt để lưu trữ dữ liệu nhưng nó không thực sự cho phép chúng ta làm được gì nhiều. Để ứng
dụng của chúng tôi có thể thực hiện những việc như

cập nhật tên người dùng của ai đó trong csdl hoặc chỉnh sửa ảnh đại diện

hoặc xóa người dùng -> Có 1 hệ quản lý cơ sở dữ liệu cho phép chúng tôi giao tiếp với csdl
(nó chỉ là mã hoặc chương trình nói chuyện vs csdl)

Hay cta nói chuyện vs hệ quản trị csdl và nó nói chuyện vói csdl

## SQL vs. MySql

+ SQL

+ Structured Query Language

+ Ngôn ngữ sử dụng khi nói chuyện với cơ sở dữ liệu của mình

Đó là cách cta tương tác và truy cập dữ liệu, cập nhật dữ liệu,

thao tác dữ liệu

+ Khi làm việc với MySQL, cta thực sự viết sql mọi lúc

+ MySQL: Là 1 hệ quản trị cơ sở dữ liệu thực hiện SQL

## Table
+ Một cơ sở dữ liệu chỉ là 1 loạt cả bảng

+ Table giữ dữ liệu

+ Cột đề cập đến các tiêu đề trên bảng

# Storage Engine

+ Xuất ra danh sách các công cụ lưu trữ :

> mysql> SHOW ENGINES\G

## MyISAM

+ Tối ưu hóa cho tốc độ nén, kích thước lên tới **256TB**

+ Có thể được nén và chỉ đọc ▶️tăng tính truy vấn dữ liệu

+ Sử dụng với các bảng tin tức, chuyên mục sản phẩm

## InnoDB

+ ACID-compliant và transaction

+ Tối ưu hóa cho tính performance

+ Hỗ trợ khóa ngoại, commit, rollblack trong transaction

+ Kích thước tới 64TB

+ Khả năng khôi phục sự cố dẻ bảo vệ dữ liệu

+ Lưu trữ dữ liệu trong các chỉ mục được phân cụm để giảm I/O cho truy vấn dựa trên khóa
chính

+ Khi tạo bảng thì mặc định nó là InnoDB rồi

+ InnoDB has maximum performance when processing large data volumes.


+ Its DML operations (add, update and delete data) is ACID (atomic, consistent, isolated and
durable) model compatible, with transactions featuring commit, rollback, and crash-recovery
capabilities to protect user data.

+ Row-level locking (locks are placed on single records (rows)) system increase multi-user
concurrency and performance. All InnoDB locks held by a transaction are released when the
transaction is committed or aborted.

+ InnoDB tables arrange your data on disk to optimize queries based on primary keys.

+ InnoDB supports FOREIGN KEY constraints to maintain data integrity. Therefore inserts,
updates, and deletes are all checked to ensure they do not result in inconsistencies across
different tables.

+ It is possible to mix InnoDB tables with tables from other MySQL storage engines within the
same statement. For example, you can use a join operation to combine data from InnoDB and
MEMORY tables in a single query.

## MERGE

## Memory

+ Lưu trữ tất cả dữ liệu trong RAM

+ Sử dụng chỉ số băm để có tốc độ nhanh hơn các bảng MyISAM

+ Vòng đời sống của dữ liệu phụ thuộc vào thời gian sống của DB Server

+ Giống như bộ nhớ Heap

+ Hữu ích cho việc tra cứu nhanh dữ liệu tham chiếu và các dữ liệu giống hệt nhau

## Archive

## CSV

## FEDERATED

***

Command:
Concat_ws(‘-‘, title, author_fname, author_lname): Nếu nối nhiều thuộc tính với nhau với cùng 1
token thì ta sử dụng hàm này

Substr(string, start_index, end_index): Hiển thị chuỗi con (Trong MySql vị trí đầu tiên của chuỗi
là 1)

Substr(string, index): from index to end, index có thể âm hoặc dương

Replace(‘Hello World’, ‘Hell’, ‘???’): Thay 1 chuỗi con trong chuỗi được chỉ định = chuỗi #

– I have a column containing urls (id, url):

http://www.example.com/articles/updates/43

http://www.example.com/articles/updates/866

http://www.example.com/articles/updates/323

http://www.example.com/articles/updates/seo-url

http://www.example.com/articles/updates/4?something=test

Problem: I'd like to change the word "updates" to "news".

Solution:

UPDATE your_table

SET your_field = REPLACE(your_field, 'articles/updates/',


'articles/news/')

WHERE your_field LIKE '%articles/updates/%'

Reverse(string): Đảo ngược chuỗi

Char_length(string): Trả về số ký tự của chuỗi

length(string): sử dụng để tìm độ dài của chuỗi có kieru byte

– Actually, CHAR_LENGTH() should be a better choice. For multi-byte charsets


LENGTH() will give you the number of bytes the string occupies, while
CHAR_LENGTH() will return the number of characters

Upper(string) and Lower(string)

@ Float and Double

You might also like