* Phát biểu câu SELECT trong mysql
Giả sử ta có 1 cái bảng (table) sinhvien bao gồm các trường LastName, FirstName, Address, City
Giả sử ta có 1 cái bảng (table) sinhvien bao gồm các trường LastName, FirstName, Address, City
LastName | FirstName | Address | City |
Khôi | Phạm Kỳ | Vĩnh Phúc | Vĩnh Yên |
Nam | Nguyen van | Ha Dong | Ha Noi |
Hoang | Nguyen Minh | Thanh Xuan | Ha Noi |
Bây giờ muốn truy vấn tất cả các giá trị trong table ` thì chúng ta sử dụng câu lệnh SQL như sau :
SELECT * FROM sinvien
Còn nếu muốn truy vấn vào 1 field nào đó .Chẳng hạn như field `LastName` thì ta sử dụng câu lệnh SQL như sau:
SELECT {tên field} FROM {tên table}
Kết quả ta được là:
LastName |
Khôi |
Nam |
Hoang |
Phát biểu SELECT với mệnh đề FROM ,WHERE ,ORDER BYPhát biểu SQL dạng SELECT là 1 trong những phát biểu yêu cầu MySQL truy vấn dữ liệu trên cơ sở dữ liệu chỉ định.
SELECT dùng để đọc thông tin từ cơ sở dữ liệu theo trường trường hợp quy định hay những biểu thức cho trường hợp đó.
Mệnh đề FROM chỉ ra tên 1 bảng hay những bảng có liên quan hệ cần truy vấn thông tin
Mệnh đề WHERE để tạo nên điều kiện cần lọc mẩu tin theo tiêu chuẩn được định nghĩa .
Thông thường WHERE dùng cột (trường) để so sánh với giá trị cột khác,hay biểu thức chứa cột (trường) bất kỳ có trong bảng (table)
Phát biểu SQL có dạng
SELECT * FROM {table} WHERE { condictions }
Các phép toán so sánh trong condictions (điều kiện) :
> : lớn WHERE id>10; < : nhỏ hơn WHERE id<10; >= :lớn hơn hoặc bằng WHERE id>=10; <= : nhỏ hơn hoặc bằng WHERE id<=10; = : bằng WHERE id=1; != : khác (ko bằng ) WHERE id!=1; <> : khác WHERE id<>1;
- Các phép toán logic trong "condictions"
AND : WHERE `id`=1 AND `username`='admin'; OR : WHERE `id`=1 OR `username`='admin'; NOT : WHERE password is not NULL; NOT IN: WHERE OrderID NOT IN( '10','20'); BETWEEN : WHERE OrderID BETWEEN 10 And 20; LIKE: WHERE username LIKE '%hatinh'; NOT LIKE : WHERE usernam NOT LIKE '%hatinh' ; IN : WHERE OrderID IN ('100','200','300');
- Thông thường trong khi truy vấn mẩu tin từ bảng dữ liệu ,kết quả hiển thị sắp xếp theo chiều tăng hay giảm dựa trên ký tự ALPHABET .Nhưng bạn cũng có thể sắp xếp theo 1 tiêu chuẩn bất kỳ .
- Cú pháp cho mệnh đề ORDER BY cùng với trạng thái tăng (ASC) ,giảm dần ( DESC )
Cú pháp :
- Cú pháp cho mệnh đề ORDER BY cùng với trạng thái tăng (ASC) ,giảm dần ( DESC )
Cú pháp :
ORDER BY columnname DESC ORDER BY columnname1 + columnname2 DESC ORDER BY columnname ASC ORDER BY columnname1 + columnname2 ASC
- Các hàm thông dụng trong MySQL
* Các hàm trong Phát biểu GROUP BY
- Hàm AVG : hàm trả về giá trị bình quân của cột hay trường (column) trong câu truy vấn
Ví dụ
* Các hàm trong Phát biểu GROUP BY
- Hàm AVG : hàm trả về giá trị bình quân của cột hay trường (column) trong câu truy vấn
Ví dụ
SELECT AVG(amount) FROM tableOrders
- Hàm MIN : hàm trả về giá tri nhỏ nhất của cột hay trường trong câu truy vấn
Ví dụ:
SELECT MIN (amount) FROM tableOrders
- Hàm MAX: hàm trả về giá tri lớn nhất của cột hay trường trong câu truy vấn
Ví dụ:
SELECT MAX (amount) FROM tableOrders
Hàm Count: hàm trả về số lượng mẩu tin trong câu truy vấn trên bảng
Ví dụ:
Ví dụ:
SELECT Count(*) FROM tableOrders
Hàm SUM: hàm trả về tổng giá trị của trường (column) , cột ,trong câu truy vấn
Ví dụ:
SELECT Sum(amount) FROM tableOrders
Hàm ASCII : hàm trả về giá trị mã ASCII của ký tự bên trái của chuỗi
Ví dụ:
Ví dụ:
SELECT ASCII ('TOI');
Hàm Char: hàm này chuyển đổi kiểu mã ASCII từ số nguyên sang dạng chuỗi
Ví dụ :
Ví dụ :
SELECT Char(35)
Hàm UPPER: hàm này chuyển đổi chuỗi sang dạng kiểu chữ hoa
Ví dụ :
Ví dụ :
SELECT UPPER('iamhatinh')
- Hàm LOWER : Hàm này chuyển đổi chuỗi sang dạng kiểu chữ thường
Ví dụ :
SELECT LOWER('IAMHATINH')
Hàm Len: Hàm này trả về chiều dài của chuỗi:
Ví dụ:
Ví dụ:
SELECT LEN('I Love You')
Hàm LTRIM : hàm này loại bỏ khoảng trống bên trái của chuỗi:
Ví dụ :
Ví dụ :
SELECT LTRIM(' kekeke');
Hàm RTRIM : hàm này loại bỏ khoảng trống bên phải của chuỗi:
Ví dụ :
Ví dụ :
SELECT RTRIM('kekeke ');
Hàm LEFT : hàm này trả về chuỗi bên trái tính từ đầu cho đến vị trí thứ n
Ví dụ :
Ví dụ :
SELECT LEFT('iamhatinh',3);
Hàm RIGHT : hàm này trả về chuỗi bên phải tính từ cuối cho đến vị trí thứ n
Ví dụ :
Ví dụ :
SELECT RIGHT('iamhatinh',3);
Kết quả : inh
Hàm Instr: hàm trả về vị trí chuỗi bắt đầu của chuỗi con trong chuỗi xét
Ví dụ :
Hàm Instr: hàm trả về vị trí chuỗi bắt đầu của chuỗi con trong chuỗi xét
Ví dụ :
SELECT INSTR('hatinh','iamhatinh');
Các hàm xử lý thời gian trong MySQLHàm CurDate() : hàm trả về ngày,tháng ,năm hiện hành của hệ thống
Ví dụ:
Ví dụ:
SELECT curdate() as 'Today is'
Kết quả :
Today is
---------
2013-09-19
Hàm curtime(): hàm trả về giờ .phút và giây hiện hành của hệ thống
Ví dụ
Today is
---------
2013-09-19
Hàm curtime(): hàm trả về giờ .phút và giây hiện hành của hệ thống
Ví dụ
SELECT curtime() as 'Bay gio la'
Kết quả : Bay gio la 05:12:26
- Hàm Period_Diff: hàm trả về số ngày trong khoảng thời gian giữa 2 ngày:
Ví dụ :
- Hàm Period_Diff: hàm trả về số ngày trong khoảng thời gian giữa 2 ngày:
Ví dụ :
SELECT Period_Diff(OrderDate,getdate()) as 'So ngay giua ngay thu tien den hom nay'
Kết quả :
So ngay giua ngay thu tien den hom nay
------------------------------------
65
62
- Hàm dayofmonth: hàm dayofmonth trả về ngày thứ mấy trong tháng
Ví dụ :
SELECT dayofmonth(curdate()) as ' hom nay ngay'
Kết quả :17
* Phát biểu SQL dạng Select với LIMIT N,M ;DISTINCT
- Phát biểu SQL dạng SELECT cho phép truy vấn chỉ 1 số mẩu tin tính từ vị trí thứ n đến vị trí thứ m trong Table (theo 1 tiêu chuẩn sắp xếp nào đó) .Để làm điều này,trong phát biểu SQL dạng SELECT bạn chỉ dùng chỉ định từ khóa LIMIT với số lượng mẩu tin cần lấy từ vị trí n đến m
Ví dụ :
SELECT * FROM tablerOrders LIMIT 0,10
Kết quả sẽ trả về 10 mẩu tin đầu tiên trong bảng tableOrders
- Bạn có thể sử dụng kết hợp LIMIT với các mệnh đề WHERE ,ODER BY nhằm tạo ra kết quả như ý muốn
- Nếu có 1 hay nhiều bảng kết nối với nhau ,sẽ xảy ra tình trạng trùng lặp nhiều mẩu tin.Nhưng trong trường hợp mà bạn chỉ muốn lấy ra 1 mẩu tin trong tập mẩu tin trùng lặp ,bạn sử dụng phát biểu SQL dạng SELECT với chỉ định DISTINCT
Ví dụ:
INSERT INTO <table name>[<column name list>]
- NHập dữ liệu bằng phát biểu SQL dạng INSERT
- Khi cần thêm mẩu tin vào bảng (table) trong CSDL MySQL ,bạn có nhiều cách để thực hiện công việc này,nhưng để sử dụng các phát biểu SQL mang tính chuyên nghiệp bạn cần sử dụng phát biểu INSERT
- Khi thêm dữ liệu ,cần chú ý kiểu dữ liệu giống hoặc tương ứng với kiểu dữ liệu đã khai báo của cột ( column ) ,nếu không phù hợp thì lỗi sẽ phát sinh
-.Ngoài ra bạn còn phải quan tâm đến quyền User đang truy cập CSDL.User phải được cấp quyền Insert dữ liệu vào từng table cụ thể (quyền này do Administator xét ).
- Muốn INSERT vào CSDL thì ta có cấu trúc như sau:
- Khi cần thêm mẩu tin vào bảng (table) trong CSDL MySQL ,bạn có nhiều cách để thực hiện công việc này,nhưng để sử dụng các phát biểu SQL mang tính chuyên nghiệp bạn cần sử dụng phát biểu INSERT
- Khi thêm dữ liệu ,cần chú ý kiểu dữ liệu giống hoặc tương ứng với kiểu dữ liệu đã khai báo của cột ( column ) ,nếu không phù hợp thì lỗi sẽ phát sinh
-.Ngoài ra bạn còn phải quan tâm đến quyền User đang truy cập CSDL.User phải được cấp quyền Insert dữ liệu vào từng table cụ thể (quyền này do Administator xét ).
- Muốn INSERT vào CSDL thì ta có cấu trúc như sau:
INSERT INTO <table name>[<column name list>]
- Ví dụ ta muốn dùng phát biểu INSERT vào field username,password , email của bảng (table ) Users với các giá trị admin, admin , [Thành viên mới nhìn thấy link.]
- Muốn INSERT vào table từ giá trị của table khác ta dùng cấu trúc
- INSERT INTO <table name1>[<columnname list>] SELECT [<columnname list>] FROM <table name2> WHERE <Condictions>
- Ví dụ .Ta muốn INSERT vào table UserOrders gồm các field (username,password,email) với các giá trị lấy từ table User và được sắp xếp theo thứ Alphalbet
INSERT INTO UserOrders(username,password,email) SELECT username,password,email FROM User ORDER BY username ASC
* Phát biểu SQL dạng UPDATE
- Phát biểu SQL dạng UPDATE dùng cập nhật lại dữ liệu đã tồn tại trong bảng.Khi UPDATE dùng cập nhật dữ liệu cho một mẩu tin chỉ định nào đó thừong lệnh này sử dụng chung với mệnh đề WHERE
- Nếu cập nhật tất cả các mẩu tin trong bảng bạn có thể bỏ mệnh đề WHERE. Cấu trúc như sau:
UPDATE table_name SET column1 = value2, column2 = value2> WHERE restrictive condictions
- Nếu cập nhật giá trị là kết quả trả về từ phát biểu SELECT trên 1 hay nhiều bảng khác.Cấu trúc như sau:
UPDATE <table name> SET <column>=<select ... FROM table name WHERE...>[WHERE <restrictive condictions>]
Ví dụ : UPDATE trên toàn bộ các cột dữ liệu từ giá trị cụ thể
- UPDATE cột với giá trị cụ thể
- UPDATE Users SET username='newadmin' , password='123456' , email='[Thành viên mới nhìn thấy link.]' WHERE id='1'
- UPDATE 1 cột với giá trị được lấy từ bảng khác
- (Giả sử chúng ta muốn update giá trị cho cột Price _nằm trong bảng tableOrders mà giá trị đó được lấy từ giá trị của cột Cost nằm bảng tableItems )
UPDATE tableOrders SET Price (SELECT DISTINCT Cost FROM tableItems WHERE ItemsId=tableOrders.ItemsId ) WHERE Price <1000
* Một số hàm tính toán trong MYSQL
- Giả sử ta có 1 table orders như sau:
id | name | city | add | gender | money | |
1 | Phạm Kỳ Khôi | Hà Nội | Cầu Giấy | phamkykhoi.info@gmail.com | Nam | 100000 |
2 | Nguyễn Hải Đăng | Hà Nội | Xuân Thủy | haidang.biz@gmail.com | Nam | 100000 |
3 | Trần Thị Phượng | Vĩnh Phúc | Bình Xuyên | phuongtran.tl43@gmail.com | Nữ | 150000 |
4 | Phạm Bảo Việt | Quảng Ninh | Quảng Ninh | baovietfc@gmail.com | Nam | 500000 |
5 | Nguyễn Văn Sáng | Nam Định | Nam Định | sangnguyen@gmail.com | Nam | 500000 |
6 | Nguyễn Duy Thuận | Vĩnh Phúc | Bình Xuyên | thuan@gmail.com | Nam | 120000 |
7 | Nguyễn Văn Trọng | Vĩnh Phúc | Bình Xuyên | trongnguyen@gmail.com | Nam | 700000 |
8 | Nguyễn Văn Đại | Hà Nội | Đại La | dainguyen@gmail.com | Nam | 100000 |
9 | Đỗ Ngọc Tình | Hà Nội | Dackac | tinh@gmail.com | Nam | 700000 |
* Cú pháp để gọi hàm trong câu lệnh SQL
SELECT function(tên_cột) FROM tên_bảng
* Một số hàm thông dụng- Hàm AVG(column): Hàm AVG trả về giá trị trung bình tính theo cột được chỉ định của các dòng được chọn. Các giá trị NULL sẽ không được xét đến khi tính giá trị trung bình.
Ví dụ: tính số tiền trung bình của các khách hàng ở Vĩnh Phúc
SELECT AVG(money) FROM orders WHERE city = 'Vĩnh phúc'
* Mệnh đề GROUP BY: Để tính trung bình của các khách hàng ta sử dụng lệnh sau
select type,AVG(money) from orders group by type
* Sử dụng AS để gán vào một tên trong MYSQL
select type,AVG(money) as 'Số tiền Trung Bình Mỗi Loại ' from orders group by type
* Hàm COUNT trong MYSQL: Dùng để đếm tổng số bản ghi trong một bảng
select count(*) from orders
Ví dụ: Đếm xem có bao nhiêu khách hàng ở Vĩnh Phúc ta làm như sau
select count(*) from orders where city='Vĩnh phúc'
N:web24h.com.vn
0 nhận xét: