mysql column constriants
mysql column constriants
● NOT NULL
● UNIQUE
● PRIMARY KEY
● FOREIGN KEY
● CHECK
● DEFAULT
CONSTRAINT DESCRIPTION
PRIMARY KEY A PRIMARY KEY constraint for a table enforces the table to
accept unique data for a specific column and this constraint
creates a unique index for accessing the table faster.
(aut_id varchar(8)NOTNULL,
aut_name varchar(50)NOTNULL,
country varchar(25)NOTNULL,
home_city varchar(25)NOTNULL);
The following picture shows that the columns will not accept the NULL values.
Adding a CHECK CONSTRAINT on a column of a table, you can limit the range of values allowed
to be stored in that column.
CREATETABLEIFNOTEXISTS
newbook_mast(book_idvarchar(15)NOTNULLUNIQUE,
book_namevarchar(50),
isbn_novarchar(15)NOTNULLUNIQUE,
cate_idvarchar(8),
aut_idvarchar(8),
pub_idvarchar(8),
dt_of_pubdate,
pub_langvarchar(15),
no_pagedecimal(5,0)
CHECK(no_page>0),
book_pricedecimal(8,2),
PRIMARYKEY(book_id)
);
MySQL UNIQUE CONSTRAINT
CREATETABLEIFNOTEXISTS
newauthor(aut_idvarchar(8)NOTNULL,
aut_namevarchar(50)
NOTNULL,
countryvarchar(25)NOTNULL,
home_cityvarchar(25)
NOTNULL,
UNIQUE(aut_id));
CREATETABLEIFNOTEXISTS
newauthor(aut_idvarchar(8)NOTNULLUNIQUE,
aut_namevarchar(50)NOTNULL,
countryvarchar(25)
NOTNULL,
home_cityvarchar(25)NOTNULL);
(pub_idvarchar(8)NOTNULLUNIQUEDEFAULT'',
pub_namevarchar(50)NOTNULLDEFAULT'',
pub_cityvarchar(25)NOTNULLDEFAULT'',
countryvarchar(25)NOTNULLDEFAULT'India',
country_officevarchar(25),
no_of_branchint(3),
estddate
CHECK((country='India'ANDpub_city='Mumbai')
OR(country='India'ANDpub_city='New Delhi')),
PRIMARYKEY(pub_id));
MySQL PRIMARY KEY CONSTRAINT
CREATETABLEIFNOTEXISTS
newauthor(aut_idvarchar(8)NOTNULL,
aut_namevarchar(50)NOTNULL,
countryvarchar(25)NOTNULL,
home_cityvarchar(25)NOTNULL,
PRIMARYKEY(aut_id));
newauthor(aut_idvarchar(8)NOTNULLPRIMARYKEY,
aut_namevarchar(50)NOTNULL,
countryvarchar(25)NOTNULL,
home_cityvarchar(25)NOTNULL);
newauthor(aut_idvarchar(8)NOTNULLPRIMARYKEY,
aut_namevarchar(50)NOTNULL,
countryvarchar(25)NOTNULL,
home_cityvarchar(25)NOTNULLUNIQUE);
newauthor(aut_idvarchar(8)NOTNULL,
aut_namevarchar(50)NOTNULL,
countryvarchar(25)NOTNULL,
home_cityvarchar(25)NOTNULL,
PRIMARYKEY(aut_id,home_city));
CREATETABLEIFNOTEXISTSnewbook_mast
(book_idvarchar(15)NOTNULLPRIMARYKEY,
book_namevarchar(50),
isbn_novarchar(15)NOTNULL,
cate_idvarchar(8),
aut_idvarchar(8),
pub_idvarchar(8),
dt_of_pubdate,
pub_langvarchar(15),
no_pagedecimal(5,0),
book_pricedecimal(8,2),
FOREIGNKEY(aut_id)REFERENCESnewauthor(aut_id));
CREATETABLEIFNOTEXISTSnewpurchase
(invoice_novarchar(12)NOTNULLUNIQUEPRIMARYKEY,
invoice_dtdate,
ord_novarchar(25),
ord_datedate,
receive_dtdate,
book_idvarchar(8),
book_namevarchar(50),
pub_langvarchar(8),
cate_idvarchar(8),
receive_qtyint(5),
purch_pricedecimal(12,2),
total_costdecimal(12,2),
INDEX(ord_no,book_id),
FOREIGNKEY(ord_no,book_id)REFERENCESneworder(ord_no,book_id),
INDEX(cate_id),
FOREIGNKEY(cate_id)REFERENCES category(cate_id));
CREATETABLEIFNOTEXISTS
newbook_mast(book_idvarchar(15)NOTNULLPRIMARYKEY,
book_namevarchar(50),
isbn_novarchar(15)NOTNULL,
cate_idvarchar(8),
aut_idvarchar(8),
pub_idvarchar(8),
dt_of_pubdate,
pub_langvarchar(15),
no_pagedecimal(5,0),
book_pricedecimal(8,2),
INDEX(aut_id),
FOREIGNKEY(aut_id)REFERENCESnewauthor(aut_id),
INDEX(pub_id),
FOREIGNKEY(pub_id)REFERENCESnewpublisher(pub_id));
CREATETABLEIFNOTEXISTSnewpurchase
(invoice_novarchar(12)NOTNULLUNIQUEPRIMARYKEY,
invoice_dtdate,
ord_novarchar(25),
ord_datedate,
receive_dtdate,
book_idvarchar(8),
book_namevarchar(50),
pub_langvarchar(8),
cate_idvarchar(8),
receive_qtyint(5),
purch_pricedecimal(12,2),
total_costdecimal(12,2),
INDEX(ord_no,book_id),
FOREIGNKEY(ord_no,book_id)REFERENCES
neworder(ord_no,book_id)
ONUPDATECASCADEONDELETERESTRICT,
INDEX(cate_id),
FOREIGNKEY(cate_id)REFERENCES category(cate_id))
CREATETABLEIFNOTEXISTSnewpurchase
(invoice_novarchar(12)NOTNULLUNIQUEPRIMARYKEY,
invoice_dtdate,
ord_novarchar(25),
ord_datedate,
receive_dtdate,
book_idvarchar(8),
book_namevarchar(50),
pub_langvarchar(8),
cate_idvarchar(8),
receive_qtyint(5),
purch_pricedecimal(12,2),
total_costdecimal(12,2),
INDEX(ord_no,book_id),
FOREIGNKEY(ord_no,book_id)REFERENCESneworder
(ord_no,book_id)
ONUPDATECASCADEONDELETE
SETNULL,
INDEX(cate_id),
FOREIGNKEY(cate_id)REFERENCES category(cate_id));
Copy
MySQL CREATE TABLE with NO ACTION
Example
CREATETABLEIFNOTEXISTS
newpurchase(invoice_novarchar(12)NOTNULLUNIQUEPRIMARYKEY,
invoice_dtdate,
ord_novarchar(25),
ord_datedate,
receive_dtdate,
book_idvarchar(8),
book_namevarchar(50),
pub_langvarchar(8),
cate_idvarchar(8),
receive_qtyint(5),
purch_pricedecimal(12,2),
total_costdecimal(12,2),
INDEX(ord_no,book_id),
FOREIGNKEY(ord_no,book_id)REFERENCES
neworder(ord_no,book_id)
ONUPDATECASCADEONDELETENOACTION,
INDEX(cate_id),
FOREIGNKEY(cate_id)REFERENCES category(cate_id));