Hiển thị kết quả từ 1 đến 3 / 3
  1. #1
    Tham gia
    13-05-2017
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts

    Newbie Hỏi về ràng buộc trong SQL

    Mọi người giúp mình với, mình mới bắt đầu học về SQL nên có nhiều chổ mình chưa nắm rõ.
    Phần tạo bảng, mình thấy đa số các bài viết trên mạng là tạo bảng xong rồi mới add constraint trong lệnh alter table, nhưng có một bài được viết như vầy(MON và KHOA là hai bảng đã được tạo trước):
    CREATE TABLE ketqua
    (
    mssv int NOT NULL,
    ho varchar(255) NOT NULL,
    ten varchar(255),
    maKhoa int constraint mk_msv foreign key references KHOA(maKhoa)
    maMH int constraint mmh_msv foreign key references MON(maMH)
    tien decimal(15,2) constraint ck_diem check (tien>0)
    add constraint pk_k primary key (maKhoa,maMH)
    ).
    MÌnh muốn hỏi 2 điều:
    Thứ nhất: khai báo foreign key trong từng cột như trên được không, nếu không thì viết lại như thế nào cho đúng?
    Thứ 2: dòng "add constraint pk_k primary key (maKhoa,maMH)" đặt ở vị trí này được không hay add chỉ có thể viết trong ALTER được thôi.
    MÌnh đã tìm trên các trang web khác thì chưa thấy trang nào viết như trên cả nên mình không biết viết như vậy có đúng hay không. Mong mọi người giải đáp giúp mình, mình cảm ơn rất nhiều.
    Quote Quote

  2. #2
    Tham gia
    13-05-2017
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    Không ai trả lời giúp mình với

  3. #3
    Tham gia
    02-02-2017
    Bài viết
    60
    Like
    56
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi hhtienanh View Post
    Mọi người giúp mình với, mình mới bắt đầu học về SQL nên có nhiều chổ mình chưa nắm rõ.
    Phần tạo bảng, mình thấy đa số các bài viết trên mạng là tạo bảng xong rồi mới add constraint trong lệnh alter table, nhưng có một bài được viết như vầy(MON và KHOA là hai bảng đã được tạo trước):
    CREATE TABLE ketqua
    (
    mssv int NOT NULL,
    ho varchar(255) NOT NULL,
    ten varchar(255),
    maKhoa int constraint mk_msv foreign key references KHOA(maKhoa)
    maMH int constraint mmh_msv foreign key references MON(maMH)
    tien decimal(15,2) constraint ck_diem check (tien>0)
    add constraint pk_k primary key (maKhoa,maMH)
    ).
    MÌnh muốn hỏi 2 điều:
    Thứ nhất: khai báo foreign key trong từng cột như trên được không, nếu không thì viết lại như thế nào cho đúng?
    Thứ 2: dòng "add constraint pk_k primary key (maKhoa,maMH)" đặt ở vị trí này được không hay add chỉ có thể viết trong ALTER được thôi.
    MÌnh đã tìm trên các trang web khác thì chưa thấy trang nào viết như trên cả nên mình không biết viết như vậy có đúng hay không. Mong mọi người giải đáp giúp mình, mình cảm ơn rất nhiều.
    1. Bạn có thể viết foreign key cho từng cột được, nhưng nếu viết cho từng cột thì chỉ cần: FOREIGN KEY REFERENCES, ko cần từ contraint và đặt tên cho nó mà SQL server sẽ tự đặt tên.
    Trong trường hợp bạn muốn đặt tên, thì sau khi tạo các cột song thì bạn viết constraint riềng
    2. Khi viết constraint trong create thì ko có từ add nhé. Bạn hoàn toàn có thể viết luôn khi create

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •