>>Suy Ngẫm: Tính cách không thể phát triển một cách dễ dàng và yên lặng. Chỉ qua trải nghiệm thử thách và gian khổ mà tâm hồn trở nên mạnh mẽ hơn, hoài bão hình thành và thành công đạt được.
Character cannot be developed in ease and quiet. Only through experience of trial and suffering can the soul be strengthened, ambition inspired, and success achieved.
Helen Keller
.

Hiện kết quả từ 1 tới 1 của 1

Chủ đề: Các câu lệnh truy vấn căn bản trong Sql Mapbasic

  1. #1
    Đời không sách bút đời không rộng Avatar của Đinh Xuân Hà
    Tham gia ngày
    Mar 2011
    Bài gửi
    223

    Level: 33 [?]
    Experience: 502.573
    Next Level: 555.345

    Thanks
    16
    Thanked 189 Times in 53 Posts
    Level: 13 [♥ Mr.Km ♥♥ Mr.Km ♥♥ Mr.Km ♥♥ Mr.Km ♥]
    Life: 0 / 323
    Magic: 74 / 5836
    Experience: 94%

    Mặc định Các câu lệnh truy vấn căn bản trong Sql Mapbasic

    SELECT
    Phá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
    Mã:
    SELECT * FROM {table} WHERE {condictions}
    Các phép toán so sánh trong condictions (điều kiện) :

    Mã:
    
    > : 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 id1; 
    Các phép toán logic trong condictions:
    Mã:
    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 :
    Mã:
    Mã:
    ORDER BY columnname DESC
    ORDER BY columnname1 + columnname2 DESC
    ORDER BY columnname ASC
    ORDER BY columnname1 + columnname2 ASC
    Giả sử ta có 1 cái table `person` với các field `LastName`,`FirstName`,`Address `,`City`
    Mã:
     -----------------------------------------------------\
    LastName | FirstName | Address | City
    -----------------------------------------------------|
    Cuc | Cu | Tổ chim | Bầu trời
    Mào | Gà | PHP | Nỏ biết
    -----------------------------------------------------/
    Bây giờ muốn truy vấn tất cả các giá trị trong table `person` thì chúng ta sử dụng câu lệnh SQL như sau :
    Mã:
    Mã:
    SELECT * FROM person
    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:


    Mã:
    SELECT {tên field} FROM {tên table}
    
    SELECT LastName FROM person
    Kết quả :
    Mã:
    -------------\
    LastName
    -------------|
    Cuc
    
    Mào
    -------------/
    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ụ :
    Mã:
      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ụ:
    Mã:
      SELECT DISTINCT id,total ,amount FROM tableOrdersDetails ORDER BY total
    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:
    Mã:
      UPDATE <table name> SET <column>=<value>,[<column>=<value>] 
    [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:


    Mã:
      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ể


    Mã:
      UPDATE Users SET username='newadmin' , password='123456' , [Only registered and activated users can see links. Click Here To Register...]=' [Only registered and activated users can see links. Click Here To Register...] ' 
    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 )
    Mã:
      UPDATE tableOrders SET Price (SELECT DISTINCT Cost FROM tableItems 
    WHERE ItemsId=tableOrders.ItemsId ) WHERE Price <1000
    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:

    Mã:
      INSERT INTO <table name>[<column name list>]
    Ví dụ

    ta muốn dùng phát biểu INSERT vào field username,password , [Only registered and activated users can see links. Click Here To Register...] của bảng (table ) Users với các giá trị admin, admin , [Only registered and activated users can see links. Click Here To Register...]


    I
    Mã:
    NSERT INTO Users
    Mã:
    (username,password,[Only registered and activated users can see links. Click Here To Register...]) VALUES ('admin',' admin' , ' [Only registered and activated users can see links. Click Here To Register...] ');

    Muốn INSERT vào table từ giá trị của table khác ta dùng cấu trúc
    Mã:
      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,[Only registered and activated users can see links. Click Here To Register...]) với các giá trị lấy từ table User và được sắp xếp theo thứ Alphalbet
    Mã:
      INSERT INTO UserOrders (username,password,[Only registered and activated users can see links. Click Here To Register...]) SELECT username,password,[Only registered and activated users can see links. Click Here To Register...] 
    FROM User ORDER BY username ASC
    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:

    Mã:
      INSERT INTO <table name>[<column name list>]
    Ví dụ

    ta muốn dùng phát biểu INSERT vào field username,password , [Only registered and activated users can see links. Click Here To Register...] của bảng (table ) Users với các giá trị admin, admin , [Only registered and activated users can see links. Click Here To Register...]


    Mã:
      INSERT INTO Users (username,password,[Only registered and activated users can see links. Click Here To Register...]) VALUES ('admin',' admin' , ' [Only registered and activated users can see links. Click Here To Register...] ');
    Muốn INSERT vào table từ giá trị của table khác ta dùng cấu trúc
    Mã:
      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,[Only registered and activated users can see links. Click Here To Register...]) với các giá trị lấy từ table User và được sắp xếp theo thứ Alphalbet
    Mã:
      INSERT INTO UserOrders (username,password,[Only registered and activated users can see links. Click Here To Register...]) SELECT username,password,[Only registered and activated users can see links. Click Here To Register...] 
    FROM User ORDER BY username ASC
    Theo: Computer

    Bài Viết Cùng Chuyên Mục:


  2. The Following User Says Thank You to Đinh Xuân Hà For This Useful Post:

    nghi.geology (12-13-2013)

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Đánh dấu

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •