ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

SQLiteÈëÃŽ̳̣¨Èý£©ºÃ¶àÔ¼ÊøConstraints(Ò»)
2014-11-24 07:19:24 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºSQLite ÈëÃÅ½Ì³Ì Ô¼Êø Constraints

Ò»¡¢Ô¼Êø Constraints
ÔÚÉÏÒ»ÆªËæ±ÊµÄ½á⣬ÎÒÌáµ½ÁËÔ¼Êø£¬ µ«ÊÇÔÚÄÇÀïÎÒ°ÑËü·­Òë³ÉÁËÏÞ¶¨·û£¬²»Ì«×¼È·£¬ÕâÀïÏȸüÕýһϣ¬Ó¦¸Ã·­Òë³ÉÔ¼Êø¸üÌùÇÐÒ»µã¡£ ÄÇôʲôÊÇÔ¼ÊøÄØ£¿

ÎÒÃÇÔÚÊý¾Ý¿âÖд洢Êý¾ÝµÄʱºò£¬ÓÐһЩÊý¾ÝÓÐÃ÷ÏÔµÄÔ¼ÊøÌõ¼þ¡£ ±ÈÈçÒ»ËùѧУ¹ØÓÚ½ÌʦµÄÊý¾Ý±í£¬ÆäÖеÄ×Ö¶ÎÁпÉÄÜÓÐÈçÏÂÔ¼Êø£º

ÄêÁä - ÖÁÉÙ´óÓÚ20Ëê¡£Èç¹ûÄãÏë¼ÈëÒ»¸öСÓÚ20ËêµÄ½Ìʦ£¬ÏµÍ³»á±¨´í
¹ú¼® - ĬÈÏÖйú¡£ËùνĬÈÏ£¬¾ÍÊÇÈç¹ûÄã²»Ìîд£¬ÏµÍ³×Ô¶¯ÌîÉÏĬÈÏÖµ
ÐÕÃû - ²»ÄÜΪ¿Õ¡£Ã¿¸öÈ˶¼ÓÐÃû×ÖÂï
Ô±¹¤ºÅ - Ψһ¡£Õâ¸ö¿É²»ÄÜÂÒ£¬¹¤×Ê·¢´íÁ˾ÍÂé·³ÁË
ÉÏÃæÌáµ½µÄ´óÓÚ¡¢Ä¬ÈÏ¡¢²»ÄÜΪ¿Õ¡¢Î¨Ò»µÈµÈ£¬¾ÍÊÇÊý¾ÝµÄÔ¼ÊøÌõ¼þ¡£ ÎÒÃÇÔÚÓà CREATE TABLE ´´½¨±íµÄʱºò£¬¾ÍÓ¦¸Ã½«Ã¿¸ö×Ö¶ÎÁеÄÔ¼ÊøÌõ¼þÊÂÏÈ˵Ã÷£¨Èç¹ûÓеϰ£©£¬ ÒÔºóÔÙÍù±íÀïÊäÈëÊý¾ÝµÄʱºò£¬ÏµÍ³»á×Ô¶¯ÎªÎÒÃǼì²éÊÇ·ñÂú×ãÔ¼ÊøÌõ¼þ£¬Èç¹û²»Âú×ãϵͳ»á±¨´í¡£

SQLite ³£ÓÃÔ¼ÊøÈçÏÂ

NOT NULL - ·Ç¿Õ
UNIQUE - Ψһ
PRIMARY KEY - Ö÷¼ü
FOREIGN KEY - Íâ¼ü
CHECK - Ìõ¼þ¼ì²é
DEFAULT - ĬÈÏ
¶þ¡¢Ö÷¼ü PRIMARY KEY
ÎÒÃÇ»¹ÊǽøÈë SQLite ÃüÁîÐл·¾³£¬½¨Á¢Ò»¸ö test.db Êý¾Ý¿âÓÃÀ´×öʵÑ飬ÈçÏÂ

myqiao@ubuntu:~/My Documents/db$ sqlite3 test.db
-- Loading resources from /home/myqiao/.sqliterc
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sqlite>

ÔËÐÐ .tables ÃüÁîûÓзµ»Ø£¬ËµÃ÷Êý¾Ý¿âÊǿյġ£Èç¹ûÄãµÄÊý¾Ý¿âÀïÃæÓÐÄÚÈݲ¢Ó°Ïìµ½ÏÂÃæµÄʵÑ飬 Äã¿ÉÒÔÓÃÎÒÃÇÉÏһƪѧµÄ DROP TABLE À´É¾³ýÔì³ÉÓ°ÏìµÄ±í£¬ »òÕßÓà ALTER TABLE ... RENAME TO ... À´¸ÄÃû¡£


--------------------------------------------------------------------------------

ÏÂÃæÑÔ¹éÕýת£¬ÎÒÃÇÀ´ËµËµÖ÷¼ü PRIMARY KEY ¡£

Ê×ÏÈ£¬Êý¾Ý±íÖÐÿһÌõ¼Ç¼¶¼ÓÐÒ»¸öÖ÷¼ü£¬ Õâ¾ÍÏñÎÒÃÇÿµÄÉí·ÝÖ¤ºÅÂë¡¢Ô±¹¤ºÅ¡¢ÒøÐÐÕʺţ» ·´¹ýÀ´Ò²¿ÉÒÔ˵£¬Ã¿Ò»¸öÖ÷¼ü¶ÔÓ¦×ÅÒ»ÌõÊý¾Ý¼Ç¼¡£ ËùÒÔ£¬Ö÷¼ü±ØÐëÊÇΨһµÄ¡£
Æä´Î£¬Ò»°ãÇé¿öÏÂÖ÷¼üͬʱҲÊÇÒ»¸öË÷Òý£¬ËùÒÔͨ¹ýÖ÷¼ü²éÕҼǼËٶȱȽϿ졣
µÚÈý£¬ÔÚ¹ØÏµÐÍÊý¾Ý¿âÖУ¬Ò»¸ö±íµÄÖ÷¼ü¿ÉÒÔ×÷ΪÁíÍâÒ»¸ö±íµÄÍâ¼ü£¬ ÕâÑù£¬ÕâÁ½¸ö±íÖ®¼ä¾Íͨ¹ýÕâ¸ö¼ü½¨Á¢Á˹ØÏµ¡£
×îºó£¬Ö÷¼üÒ»°ãÊÇÕûÊý»òÕß×Ö·û´®£¬Ö»Òª±£Ö¤Î¨Ò»¾ÍÐС£ ÔÚ SQLite ÖУ¬Ö÷¼üÈç¹ûÊÇÕûÊýÀàÐÍ£¬¸ÃÁеÄÖµ¿ÉÒÔ×Ô¶¯Ôö³¤¡£

--------------------------------------------------------------------------------

ÏÂÃæÎÒÃÇÀ´×öʵÑé

sqlite>
sqlite> CREATE TABLE Teachers(Id integer PRIMARY KEY,Name text);
sqlite> .tables
Teachers
sqlite> INSERT INTO Teachers(Name) Values(ÕÅÈý);
sqlite> INSERT INTO Teachers(Name) Values(ÀîËÄ);
sqlite> INSERT INTO Teachers(Name) Values(Íõ¶þÂé×Ó);
sqlite> SELECT * FROM Teachers;
Id Name
---------- ----------
1 ÕÅÈý
2 ÀîËÄ
3 Íõ¶þÂé
sqlite> INSERT INTO Teachers(Id,Name) Values(2,ËïÎò¿Õ);
Error: PRIMARY KEY must be unique
sqlite>

--------------------------------------------------------------------------------

ÎÒÃÇÏÈн¨ÁËÒ»¸ö Teachers ±í£¬²¢ÉèÖÃÁËÁ½¸ö×Ö¶ÎÁУ¬ÆäÖÐ Id ×Ö¶ÎÁÐΪÖ÷¼üÁС£ È»ºó£¬ÎÒÃÇÏòÆäÖвåÈëÈýÌõÊý¾Ý²¢²éѯ£¬·´À¡Ò»ÇÐÕý³£¡£

×¢Ò⣺ÔÚ²åÈëǰÈýÌõÊý¾ÝµÄʱºò£¬ÃüÁîÖв¢Ã»ÓÐÃ÷È·Ö¸Ã÷ Id µÄÖµ£¬ÏµÍ³×Ô¶¯¸³Öµ£¬²¢ÇÒÊýÖµ×Ô¶¯Ôö³¤¡£

²åÈëµÚËÄÌõÊý¾ÝµÄʱºò£¬ÎÒ¸øÁËÒ»¸öÃ÷È·µÄ Id ±àºÅΪ 2£¬ÒòΪÀîËĵıàºÅÒѾ­ÊÇ 2 ÁË£¬ ËùÒÔϵͳÌáʾÎÒ´íÎó£ºÖ÷¼ü±ØÐëΨһ¡£

Èý¡¢Ä¬ÈÏÖµ DEFAULT
ÓÐÒ»Ð©ÌØ±ðµÄ×Ö¶ÎÁУ¬ÔÚÿһÌõ¼Ç¼ÖУ¬ËûµÄÖµ»ù±¾É϶¼ÊÇÒ»ÑùµÄ¡£Ö»ÊÇÔÚ¸ö±ðÇé¿öϲŸÄΪ±ðµÄÖµ£¬ÕâÑùµÄ×Ö¶ÎÁÐÎÒÃÇ¿ÉÒÔ¸øËûÉèÒ»¸öĬÈÏÖµ¡£

ÏÂÃæÎÒÃÇÀ´×öʵÑé

sqlite>
sqlite> DROP TABLE Teachers;
sqlite> .tables
sqlite>
sqlite> CREATE TABLE Teachers(Id integer PRIMARY KEY,Name text,Country text DEFAULT Öйú);
sqlite> .tables
Teachers
sqlite> INSERT INTO Teachers(Name) Values(ÕÅÈý);
sqlite> INSERT INTO Teachers(Name) Values(ÀîËÄ);
sqlite> INSERT INTO Teachers(Name) Values(Íõ¶þÂé×Ó);
sqlite> INSERT INTO Teachers(Name,Country) Values(ËïÎò¿Õ,ÌìÍ¥);
sqlite> SELECT * FROM Teachers;
Id Name Country
---- --------------- ---------------
1 ÕÅÈý Öйú
2 ÀîËÄ Öйú
3 Íõ¶þÂé×Ó Öйú
4 ËïÎò¿Õ ÌìÍ¥
sqlite>

ÏȰÑ֮ǰµÄ Teachers ±íɾ³ý£¬È»ºóÖØÐ´´½¨¡£Õâ»Ø Teachers ±í¶àÁËÒ»¸ö Country ×ֶΣ¬ ²¢ÇÒÉèÖÃĬÈÏֵΪ¡°Öйú¡±£¬È»ºóÎÒÃDzåÈëËÄÌõÊý¾Ýµ½ Teachers ±í¡£

ǰÈýÌõÊý¾Ý¶¼Ã»ÓÐÃ÷È·Ö¸Ã÷ Country ×ֶεÄÖµ£¬Ö»ÓеÚËÄÌõÊý¾ÝÖ¸Ã÷ÁË¡°ËïÎò¿Õ¡±µÄ Country Ϊ¡°ÌìÍ¥¡±¡£

²éѯÊý¾Ý£¬·¢ÏÖǰÈýÌõÊý¾Ý¶¼ÌîÉÏÁËĬÈÏÖµ£¬ÊµÑé³É¹¦¡£


--------------------------------------------------------------------------------
Êý¾ÝÏÔʾÓеã×ßÑù£¬ÃüÁî .width 4 15 15 ÉèÖõÄÁÐ¿í£¬¿ÉÒÔͨ¹ý .show ²é¿´£¬ ¿ÉÄÜÊÇÒòΪÖÐÎĵÄÔ­Òò£¬ËùÒÔûÓÐ¶ÔÆë¡£
ËÄ¡¢·Ç¿Õ NOT NULL
ÓÐһЩ×Ö¶ÎÎÒÃÇ¿ÉÄÜһʱ²»Öªµ½¸ÃÌîЩʲô£¬Í¬Ê±ËüҲûÉ趨ĬÈÏÖµ£¬ µ±Ìí¼ÓÊý¾Ýʱ£¬ÎÒÃǰÑÕâÑùµÄ×ֶοÕ×Ų»ÌϵͳÈÏΪËûÊÇ NULL Öµ¡£

µ«ÊÇ»¹ÓÐÁíÍâÒ»Àà×ֶΣ¬±ØÐë±»ÌîÉÏÊý¾Ý£¬Èç¹û²»Ìϵͳ¾Í»á±¨´í¡£ ÕâÑùµÄ×ֶα»³ÆÎª NOT NULL ·Ç¿Õ×Ö¶Î,ÐèÒªÔÚ¶¨Òå±íµÄʱºòÊÂÏÈÉùÃ÷¡£

ÏÂÃæÎÒÃÇÀ´×öʵÑé

sqlite

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºSqlServerɵ¹Ï½Ì³Ì¨D±í±¸·Ý ÏÂһƪ£ºSQLite ÈëÃŽ̳̣¨Ò»£©»ù±¾¿ØÖÆÌ¨..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)