Bảng cột mysql

Xin chào các bạn, trong bài học hôm nay mình sẽ hướng dẫn các bạn sử dụng câu lệnh để thêm cột vào bảng

lục mục

Giới thiệu

 

Để thêm cột mới vào bảng hiện có, bạn sử dụng câu lệnh ALTER TABLE ADD COLUMN như sau

in which

  • Đầu tiên, bạn chỉ định tên bảng sau mệnh đề ALTER TABLE
  • Thứ hai, bạn đặt tên cột mới và định nghĩa nó sau mệnh đề ADD COLUMN. Lưu ý rằng từ khóa COLUMN là tùy chọn để bạn có thể bỏ qua nó
  • Thứ ba, MySQL cho phép bạn thêm cột mới làm cột đầu tiên của bảng bằng cách chỉ định từ khóa FIRST. Nó cũng cho phép bạn thêm cột mới sau cột hiện có bằng cách sử dụng mệnh đề SAU KHI hiện tại_column. Nếu bạn không chỉ định rõ vị trí của cột mới, MySQL sẽ bổ sung nó làm cột cuối cùng

Để thêm hai hoặc nhiều cột vào một bảng cùng một lúc, bạn sử dụng cú pháp sau

Chúng ta hãy xem một số ví dụ về việc thêm cột mới vào bảng hiện có

Ví dụ về câu lệnh thêm cột trong mysql

Đầu tiên, chúng ta tạo một bảng có tên là nhà cung cấp

Thứ hai, chúng ta thêm cột mới có tên là điện thoại vào bảng nhà cung cấp. Bởi vì chúng ta xác định vị trí của cột phone một cách rõ ràng sau cột tên, MySQL sẽ tuân theo điều này

Thứ ba, chúng ta thêm một cột mới có tên vendor_group vào bảng vendors. Tại thời điểm này, chúng tôi không chỉ định vị trí của cột mới để MySQL thêm cột vendor_group làm cột cuối cùng của bảng nhà cung cấp

Bây giờ chúng ta hãy thêm một vài hàng vào trong bảng nhà cung cấp

Chúng tôi có thể truy cập dữ liệu của các nhà cung cấp bảng để xem các thay đổi

Thứ tư, thêm hai cột email và hourly_rate vào bảng nhà cung cấp cùng một lúc

Lưu ý rằng cả hai cột email và hourly_rate đều được gán cho giá trị NOT NULL, tuy nhiên, bảng nhà cung cấp đã có dữ liệu. Trong những trường hợp như vậy, MySQL sẽ sử dụng các giá trị mặc định cho những cột mới này

Kiểm tra dữ liệu trong bảng nhà cung cấp

Cột email được điền bằng các giá trị rỗng, không phải giá trị NULL. And column hourly_rate được điền bằng giá trị 0,00

Nếu bạn vô tình thêm một cột đã tồn tại trong bảng, MySQL sẽ thông báo lỗi. Ví dụ, nếu bạn thực hiện câu lệnh sau

bạn sẽ nhận được một thông báo lỗi

Mời bạn tham khảo các bài viết liên quan MySQL

  • Mệnh đề like trong MySQL
  • Mệnh đề WHERE trong MySQL
  • Câu lệnh Chèn trong MySQL

Kết luận

Như vậy trong bài học hôm nay mình đã hướng dẫn các bạn sử dụng câu lệnh ADD COLUMN trong Mysql để thêm các cột vào trong bảng. Trong bài học tiếp theo chúng ta sẽ tìm hiểu về câu lệnh DROP COLUMN trong MySQL

Kết nối với MySQL với tư cách người dùng bằng Create_user_priv và Grant_priv. Xác định người dùng nào có các đặc quyền này bằng cách chạy truy vấn sau. Người dùng của bạn sẽ cần có đặc quyền CHỌN trên MySQL. người dùng để chạy truy vấn

SELECT User, Host, Super_priv, Create_user_priv, Grant_priv from mysql.user WHERE Create_user_priv = 'Y' AND Grant_Priv = 'Y';

  • Chạy truy vấn sau để tạo câu lệnh GRANT cho người dùng bị hạn chế của bạn. Thay thế 'cơ sở dữ liệu', 'người dùng' và 'máy chủ lưu trữ' bằng thông tin cụ thể cho cơ sở dữ liệu của bạn

    Lưu ý rằng các trích dẫn xung quanh myuser và mypassword là hai trích dẫn đơn, không phải kép. Các ký tự xung quanh myhost và, TABLE_NAME, là dấu ngược [phím nằm bên dưới phím thoát trên bàn phím của bạn]

    SELECT CONCAT['GRANT SELECT, SHOW VIEW ON mydatabase.`', TABLE_NAME, '` to ''myuser''@`myhost`;']
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'mydatabase';
    

    Ví dụ: nếu bạn muốn kết nối người dùng 'chartio_read_only' với cơ sở dữ liệu 'Báo cáo' của mình bằng ứng dụng khách chartio_connect, bạn sẽ chạy như sau

    SELECT CONCAT['GRANT SELECT, SHOW VIEW ON Reports.`', TABLE_NAME, '` to ''chartio_read_only''@`localhost`;']
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'Reports';
    

    Nếu bạn muốn kết nối người dùng 'chartio_direct_connect' với cơ sở dữ liệu 'Analytics' của mình bằng kết nối trực tiếp từ máy chủ của Chartio, bạn sẽ chạy như sau

    SELECT CONCAT['GRANT SELECT, SHOW VIEW ON Analytics.`', TABLE_NAME, '` to ''chartio_direct_connect''@`52.6.1.1`;']
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'Analytics';
    

  • Truy vấn sẽ có kết quả tương tự như sau

    GRANT SELECT, SHOW VIEW ON mydatabase.`Activity` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Marketing` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Operations` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Payments` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Plans` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Services` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Subscriptions` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Users` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Visitors` to 'myuser'@`myhost`;
    

  • Chỉ chọn các câu lệnh cho các bảng bạn muốn cấp quyền truy cập và chạy các truy vấn đó. Ví dụ: nếu chúng tôi chỉ muốn cấp quyền truy cập vào bảng Người dùng và Khách truy cập, chúng tôi sẽ chạy

    GRANT SELECT, SHOW VIEW ON mydatabase.`Users` to 'myuser'@`myhost`;
    GRANT SELECT, SHOW VIEW ON mydatabase.`Visitors` to 'myuser'@`myhost`;
    

  • Cung cấp cho người dùng một mật khẩu an toàn

    SET PASSWORD FOR 'chartio_read_only'@`localhost` = PASSWORD['top$secret'];
    

    hoặc

    SET PASSWORD FOR 'chartio_direct_connect'@`52.6.1.1` = PASSWORD['top$secret'];
    

  • Bây giờ bạn có thể truy cập cơ sở dữ liệu của mình một cách an toàn với người dùng này và yên tâm rằng nó chỉ có quyền đối với các bảng được chỉ định

    Cấp quyền cấp cột

    Quy trình cấp quyền cấp cột trên một bảng cụ thể rất giống với cấp quyền cấp bảng

    1. Tạo các câu lệnh GRANT cho các quyền cấp cột bằng truy vấn sau

      ________số 8

      Ví dụ: nếu bạn muốn kết nối người dùng 'chartio_read_only' với các cột cụ thể trong bảng 'Người dùng' của cơ sở dữ liệu 'Báo cáo' bằng ứng dụng khách chartio_connect, bạn sẽ chạy như sau

      SELECTCONCAT['GRANT SELECT [`', COLUMN_NAME, '`], SHOW VIEW ON Reports.`', TABLE_NAME, '` to ''chartio_read_only''@`localhost`;']
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE TABLE_SCHEMA = 'Reports' AND TABLE_NAME = 'Users';
      

    2. Truy vấn sẽ dẫn đến kết quả tương tự như sau

      SELECT CONCAT['GRANT SELECT, SHOW VIEW ON mydatabase.`', TABLE_NAME, '` to ''myuser''@`myhost`;']
      FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_SCHEMA = 'mydatabase';
      
      0

    3. Chỉ chọn các câu lệnh cho các cột bạn muốn cấp quyền truy cập và chạy các truy vấn đó. Ví dụ: nếu chúng tôi chỉ muốn cấp quyền truy cập vào cột 'User_ID' và 'Công ty', chúng tôi sẽ chạy

    Chủ Đề