Sử dụng biến người dùng (@) thay cho & trong MySQL
Oracle sử dụng &variable cho biến thay thế (substitution variable). MySQL sử dụng @variable (user-defined variable).
Cú pháp MySQL
SET @var1 = value1, @var2 = value2, @var3 = value3, ...; INSERT INTO yourTableName VALUES (@var1, @var2, @var3, ...);
Ví dụ: Chèn dữ liệu sinh viên
Tạo bảng:
mysql> CREATE TABLE Student_Information (
-> StudentId INT,
-> StudentName VARCHAR(100),
-> StudentAge INT,
-> StudentMarks INT,
-> StudentCountryName VARCHAR(10)
-> );
Gán biến và chèn:
mysql> SET @Id = 10001, @Name = 'Carol', @Age = 23, @Marks = 89, @CountryName = 'US'; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO Student_Information VALUES (@Id, @Name, @Age, @Marks, @CountryName); Query OK, 1 row affected (0.19 sec)
Kiểm tra:
mysql> SELECT * FROM Student_Information;
Kết quả:
+-----------+-------------+------------+--------------+--------------------+ | StudentId | StudentName | StudentAge | StudentMarks | StudentCountryName | +-----------+-------------+------------+--------------+--------------------+ | 10001 | Carol | 23 | 89 | US | +-----------+-------------+------------+--------------+--------------------+
So sánh Oracle vs MySQL
| Đặc điểm | Oracle (&) | MySQL (@) |
|---|---|---|
| Ký hiệu biến | &var_name | @var_name |
| Phạm vi | Session (SQL*Plus) | Session (connection) |
| Gán giá trị | DEFINE var = value | SET @var = value |
| Sử dụng trong SQL | WHERE col = &var | WHERE col = @var |
Lưu ý
- Biến @ trong MySQL không cần khai báo trước, tự động tạo khi SET
- Kiểu dữ liệu tự suy diễn từ giá trị gán
- Có thể dùng trong stored procedure, trigger
- Không dùng được trong prepared statement (cần dùng ? placeholder)