| | sql quán chēng shì “ jié gòu huà chá xún yǔ yán (structuredquerylanguage) ”, zuì zǎo de shì ibm de shèng yuē sè yán jiū shí yàn shì wéi qí guān xì shù jù kù guǎn lǐ xì tǒng systemr kāi fā de yī zhǒng chá xún yǔ yán, tā de qián shēn shì square yǔ yán。 sql yǔ yán jié gòu jiǎn jié, gōng néng qiáng dà, jiǎn dān yì xué, suǒ yǐ zì cóng ibm gōng sī 1981 nián tuī chū yǐ lái, sql yǔ yán, dé dào liǎo guǎng fàn de yìng yòng。 rú jīn wú lùn shì xiàng oracle,sybase,informix,sqlserver zhè xiē dà xíng de shù jù kù guǎn lǐ xì tǒng, hái shì xiàng visualfoxporo,powerbuilder zhè xiē wēi jī shàng cháng yòng de shù jù kù kāi fā xì tǒng, dū zhī chí sql yǔ yán zuò wéi chá xún yǔ yán。
sql shì gāo jí de fēi guò chéng huà biān chéng yǔ yán, yǔn xǔ yòng hù zài gāo céng shù jù jié gòu shàng gōng zuò。 tā bù yào qiú yòng hù zhǐ dìng duì shù jù de cún fàng fāng fǎ, yě bù xū yào yòng hù liǎo jiě jù tǐ de shù jù cún fàng fāng shì, suǒ yǐ jù yòu wán quán bù tóng dǐ céng jié gòu de bù tóng shù jù kù xì tǒng kě yǐ shǐ yòng xiāng tóng de sql yǔ yán zuò wéi shù jù shū rù yǔ guǎn lǐ de jiē kǒu。 tā yǐ jì lù jí hé zuò wéi cāo zòng duì xiàng, suǒ yòu sql yǔ jù jiē shòu jí hé zuò wéi shū rù, fǎn huí jí hé zuò wéi shū chū, zhè zhǒng jí hé tè xìng yǔn xǔ yī tiáo sql yǔ jù de shū chū zuò wéi lìng yī tiáo sql yǔ jù de shū rù, suǒ yǐ sql yǔ yán kě yǐ qiàn tào, zhè shǐ tā jù yòu jí dà de líng huó xìng hé qiáng dà de gōng néng, zài duō shù qíng kuàng xià, zài qí tā yǔ yán zhōng xū yào yī dà duàn chéng xù shí xiàn de yī gè dān dú shì jiàn zhǐ xū yào yī gè sql yǔ jù jiù kě yǐ dá dào mùdì, zhè yě yì wèi zhe yòng sql yǔ yán kě yǐ xiě chū fēi cháng fù zá de yǔ jù。
sql tóng shí yě shì shù jù kù wén jiàn gé shì de kuò zhǎn míng。
sql yǔ yán bāo hán 4 gè bù fēn:
shù jù chá xún yǔ yán( _select_ yǔ jù)
shù jù cāo zòng yǔ yán( insert,update,_delete_ yǔ jù)
shù jù dìng yì yǔ yán( rú create,drop děng yǔ jù)
shù jù kòng zhì yǔ yán( rú commit,rollback děng yǔ jù)
qǔ zì "http://zh.wikipedia.org/wiki/sql"
sql(structuredquerylanguage) shì yī zhǒng zī liào kù chá xún hé chéng shì shè jì yǔ yán, yòng yú cún qǔ zī liào yǐ jí chá xún、 gēngxīn hé guǎn lǐ guān lián shì zī liào kù xì tǒng。 měi guó guó jiā biāo zhǔn jú( ansi) yǔ guó jì biāo zhǔn huà zǔ zhì( iso) yǐ jīng zhì dìng liǎo sql biāo zhǔn。 ansi shì yī gè měi guó gōng yè hé shāng yè jí tuán zǔ zhì, fā zhǎn měi guó de shāng wù hé tōng xùn biāo zhǔn。 ansi tóng shí yě shì iso hé internationalelectrotechnicalcommission( iec) de chéng yuán zhī yī。 ansi fā bù yǔ guó jì biāo zhǔn zǔ zhì xiāng yìng de měi guó biāo zhǔn。 1992 nián, iso hé iec fā bù liǎo sql de guó jì biāo zhǔn, chēng wéi sql-92。 ansi suí zhī fā bù de xiāng yìng biāo zhǔn shì ansisql-92。 ansisql-92 yòu shí bèi chēng wéi ansisql。 jìn guǎn bù tóng de guān lián shì zī liào kù shǐ yòng de sql bǎn běn yòu yī xiē chā yì, dàn dà duō shù dū zūn xún ansisql biāo zhǔn。 sqlserver shǐ yòng ansisql-92 de kuò zhǎn jí, chēng wéi t-sql, qí zūn xún ansi zhì dìng de sql-92 biāo zhǔn。
sql yǔ yán bāo kuò liǎng zhǒng zhù yào chéng shì shè jì yǔ yán lèi bié de chén shù shì: zī liào dìng yì yǔ yán( ddl) yǔ zī liào cāo zuò yǔ yán( dml)。 xià miàn wǒ men jiāng jiè shào zhè liǎng lèi yǔ yán。
ddl
ddl yòng yú dìng yì hé guǎn lǐ wù jiàn, lì rú zī liào kù、 zī liào biǎo yǐ jí jiǎn shì biǎo( dì 18 zhāng jiāng huì jiě shì hé wèi jiǎn shì biǎo)。 ddl chén shù shì tōng cháng bāo kuò měi gè wù jiàn de create、 alter yǐ jí drop mìng lìng。 jǔ lì lái shuō, createtable、 altertable yǐ jí droptable zhè xiē chén shù shì biàn kě yǐ yòng lái jiàn lì xīn zī liào biǎo、 xiū gǎi qí shǔ xìng( rú xīn zēng huò shān chú zī liào xíng)、 shān chú zī liào biǎo děng, xià miàn wǒ men huì yī yī jiè shào。
createtable chén shù shì
shǐ yòng ddl zài mydb zī liào kù jiàn lì yī gè míng wéi customer_data de fàn lì zī liào biǎo, běn zhāng hòu miàn de lì zǐ wǒ men huì shǐ yòng dào zhè gè zī liào biǎo。 rú qián suǒ shù, createtable chén shù shì kě yǐ yòng lái jiàn lì zī liào biǎo。 zhè gè fàn lì zī liào biǎo bèi dìng yì chéng sì gè zī liào xíng, rú xià suǒ shì:
usemydb
createtablecustomer_data
(customer_idsmallint,
first_namechar(20),
last_namechar(20),
phonechar(10))
go
zhè gè chén shù shì néng chǎn shēng customer_data zī liào biǎo, zhè gè zī liào biǎo huì yī zhí shì kōng de zhí dào zī liào bèi tián rù zī liào biǎo nèi。
altertable chén shù shì
altertable chén shù shì yòng lái biàngēng zī liào biǎo de dìng yì yǔ shǔ xìng。 zài xià miàn de lì zǐ zhōng, wǒ men lì yòng altertable zài yǐ jīng cún zài de customer_data zī liào biǎo zhōng xīn zēng middle_initial zī liào xíng。
altertablecustomer_data
addmiddle_initialchar(1)
go
xiàn zài zī liào biǎo de dìng yì bāo kuò liǎo wǔ gè zī liào xíng, ér bù shì zhī qián de sì gè zī liào xíng。 guān yú shǐ yòng altertable de gèng duō xì jié, qǐng cān yuè dì 15 zhāng。
droptable chén shù shì
droptable chén shù shì yòng lái shān chú zī liào biǎo dìng yì yǐ jí suǒ yòu de zī liào、 suǒ yǐn、 chù fā chéng xù、 tiáo jiàn yuē shù yǐ jí zī liào biǎo de quán xiàn。 yào shān chú wǒ men de customer_data zī liào biǎo, kě lì yòng xià liè mìng lìng:
droptablecustomer_data
go
guān yú droptable chén shù shì de xiáng xì nèi róng, qǐng cān yuè dì 15 zhāng。
dml
dml lì yòng insert、 _select_、 update jí _delete_ děng chén shù shì lái cāo zuò zī liào kù wù jiàn suǒ bāo hán de zī liào。
insert chén shù shì
insert chén shù shì yòng lái zài zī liào biǎo huò jiǎn shì biǎo zhōng chā rù yī liè zī liào。 lì rú, rú guǒ yào zài customer_data zī liào biǎo zhōng xīn zēng yī gè kè hù, kě shǐ yòng lèi sì yǐ xià de insert chén shù shì:
insertintocustomer_data
(customer_id,first_name,last_name,phone)
values(777,"frankie","stein","4895873900")
qǐng zhù yì sql chén shù shì zhōng dì 'èr xíng de zī liào xíng míng chēng qīng dān, qīng dān shàng zī liào xíng míng chēng de cì xù jué dìng liǎo zī liào shù zhí jiāng bèi fàng zài nǎ gè zī liào xíng。 jǔ lì lái shuō, dì yī gè zī liào shù zhí jiāng bèi fàng zài qīng dān liè chū de dì yī gè zī liào xíng customer_id、 dì 'èr gè zī liào shù zhí fàng zài dì 'èr gè zī liào xíng, yǐ cǐ lèi tuī。 yóu yú wǒ men zài jiàn lì zī liào biǎo shí, dìng yì zī liào zī liào xíng tián rù shù zhí de cì xù yǔ xiàn zài xiāng tóng, yīn cǐ wǒ men bù bì tè yì zhǐ dìng lán wèi míng chēng。 wǒ men kě yǐ yòng yǐ xià de insert chén shù shì dài tì:
insertintocustomer_data
values(777,"frankie","stein","4895873900")
zhù yì
rú guǒ shǐ yòng zhè zhǒng xíng shì de insert chén shù shì, dàn bèi chā rù de shù zhí cì xù shàng yǔ jiàn lì zī liào biǎo shí bù tóng, shù zhí jiāng bèi fàng rù cuò wù de zī liào xíng。 rú guǒ zī liào de xíng bié yǔ dìng yì bù fú, zé huì shōu dào yī gè cuò wù xùn xī。
--------------------------------------------------------------------------------
_select_ chén shù shì
_select_ chén shù shì yòng lái jiǎn suǒ zī liào biǎo zhōng de zī liào, ér nǎ xiē zī liào bèi jiǎn suǒ yóu liè chū de zī liào xíng yǔ chén shù shì zhōng de where zǐ jù jué dìng。 lì rú, yào cóng zhī qián jiàn lì de customer_data zī liào biǎo zhōng jiǎn suǒ customer_id yǐ jí first_name zī liào xíng de zī liào, bìng qiě zhǐ xiǎng qǔ chū měi liè zhōng first_name zī liào xíng zhí wéi frankie de zī liào, nà dài kě yǐ lì yòng yǐ xià de _select_ chén shù shì:
_select_customer_id,first_namefromcustomer_data
wherefirst_name="frankie"
rú guǒ yòu yī liè fú hé _select_ chén shù shì zhōng de biāo zhǔn, zé jiēguǒ jiāng xiǎn shì rú xià:
customer_idfirst_name
-------------------------
777frankie
update chén shù shì
update chén shù shì yòng lái gēngxīn huò gǎi biàn yī liè huò duō liè zhōng de zhí。 lì rú, yī wèi míng chēng wéi frankiestein de kè hù xiǎng yào zài jì lù zhōng gǎi biàn tā de xìng shì wéi franklin, kě shǐ yòng yǐ xià update chén shù shì:
updatecustomer_data
setfirst_name="franklin"
wherelast_name="stein"andcustomer_id=777
wǒ men zài where zǐ jù zhōng jiā rù customer_id de xiàng mù lái què dìng qí tā míng chēng wéi stein de kè hù bù huì bèi yǐng xiǎng - zhǐ yòu customer_id wéi 777 de kè hù, xìng shì huì yòu suǒ gǎi biàn。
--------------------------------------------------------------------------------
shuō míng
dāng nín shǐ yòng update chén shù shì shí, yào què dìng zài where zǐ jù tí gōng chōng fēn de shāi xuǎn tiáo jiàn, rú cǐ cái bù huì bù jīng yì dì gǎi biàn liǎo yī xiē bù gāi gǎi biàn de zī liào。
--------------------------------------------------------------------------------
_delete_ chén shù shì
_delete_ chén shù shì yòng lái shān chú zī liào biǎo zhōng yī liè huò duō liè de zī liào, nín yě kě yǐ shān chú zī liào biǎo zhōng de suǒ yòu zī liào liè。 yào cóng customer_data zī liào biǎo zhōng shān chú suǒ yòu de liè, nín kě yǐ lì yòng xià liè chén shù shì:
_delete_fromcustomer_data
huò
_delete_customer_data
zī liào biǎo míng chēng qián de from guān jiàn zì zài _delete_ chén shù shì zhōng shì xuǎn zé xìng de。 chú cǐ zhī wài, zhè liǎng gè chén shù shì wán quán xiāng tóng。
yào cóng customer_data zī liào biǎo zhōng shān chú customer_id zī liào xíng de zhí xiǎo yú 100 de liè, kě lì yòng xià liè chén shù shì:
_delete_fromcustomer_data
wherecustomer_id<100
xiàn zài wǒ men yǐ jīng kuài sù liú lǎn liǎo sql tí gōng de ddl yǔ dml chén shù shì, jiē zhù, xià miàn jiāng jiè shào t-sql。
sql zhōng de wǔ zhǒng shù jù lèi xíng
jiǎn yào miáo shù yī xià sql zhōng de wǔ zhǒng shù jù lèi xíng : zì fú xíng, wén běn xíng, shù zhí xíng, luó ji xíng hé rì qī xíng
zì fú xíng
varcharvschar
varchar xíng hé char xíng shù jù de zhè gè chā bié shì xì wēi de, dàn shì fēi cháng zhòng yào。 tā mendōu shì yòng lái chǔ cún zì fú chuàn cháng dù xiǎo yú 255 de zì fú。
jiǎ rú nǐ xiàng yī gè cháng dù wéi sì shí gè zì fú de varchar xíng zì duàn zhōng shū rù shù jù billgates。 dāng nǐ yǐ hòu cóng zhè gè zì duàn zhōng qǔ chū cǐ shù jù shí, nǐ qǔ chū de shù jù qí cháng dù wéi shí gè zì fú héng héng zì fú chuàn billgates de cháng dù。 xiàn zài jiǎ rú nǐ bǎ zì fú chuàn shū rù yī gè cháng dù wéi sì shí gè zì fú de char xíng zì duàn zhōng, nà me dāng nǐ qǔ chū shù jù shí, suǒ qǔ chū de shù jù cháng dù jiāng shì sì shí gè zì fú。 zì fú chuàn de hòu miàn huì bèi fù jiā duō yú de kònggé。
dāng nǐ jiàn lì zì jǐ de zhàn diǎn shí, nǐ huì fā xiàn shǐ yòng varchar xíng zì duàn yào bǐ char xíng zì duàn fāng biàn de duō。 shǐ yòng varchar xíng zì duàn shí, nǐ bù xū yào wéi jiǎn diào nǐ shù jù zhōng duō yú de kònggé 'ér cāo xīn。
varchar xíng zì duàn de lìng yī gè tū chū de hǎo chù shì tā kě yǐ bǐ char xíng zì duàn zhàn yòng gèng shǎo de nèi cún hé yìng pán kōng jiān。 dāng nǐ de shù jù kù hěn dà shí, zhè zhǒng nèi cún hé cí pán kōng jiān de jié shěng huì biàn dé fēi cháng zhòng yào
wén běn xíng
text
shǐ yòng wén běn xíng shù jù, nǐ kě yǐ cún fàng chāo guò 'èr shí yì gè zì fú de zì fú chuàn。 dāng nǐ xū yào cún chǔ dà chuàn de zì fú shí, yīnggāi shǐ yòng wén běn xíng shù jù。
zhù yì wén běn xíng shù jù méi yòu cháng dù, ér shàng yī jié zhōng suǒ jiǎng de zì fú xíng shù jù shì yòu cháng dù de。 yī gè wén běn xíng zì duàn zhōng de shù jù tōng cháng yào me wéi kōng, yào me hěn dà。
dāng nǐ cóng htmlform de duō xíng wén běn biān ji kuàng (textarea) zhōng shōu jí shù jù shí, nǐ yīnggāi bǎ shōu jí de xìn xī cún chǔ yú wén běn xíng zì duàn zhōng。 dàn shì, wú lùn hé shí, zhǐ yào nǐ néng bì miǎn shǐ yòng wén běn xíng zì duàn, nǐ jiù yīnggāi bù shì yòng tā。 wén běn xíng zì duàn jì dà qiě màn, làn yòng wén běn xíng zì duàn huì shǐ fú wù qì sù dù biàn màn。 wén běn xíng zì duàn hái huì chī diào dà liàng de cí pán kōng jiān。
yī dàn nǐ xiàng wén běn xíng zì duàn zhōng shū rù liǎo rèn hé shù jù ( shèn zhì shì kōng zhí ), jiù huì yòu 2k de kōng jiān bèi zì dòng fēn pèijǐ gāi shù jù。 chú fēi shān chú gāi jì lù, fǒu zé nǐ wú fǎ shōu huí zhè bù fēn cún chǔ kōng jiān。
shù zhí xíng
sql zhī chí xǔ duō zhǒng bù tóng de shù zhí xíng shù jù。 nǐ kě yǐ cún chǔ zhěng shù int、 xiǎo shù numeric、 hé qián shù money。
intvssmallintvstinyint
tā men de qū bié zhǐ shì zì fú cháng dù :
int xíng shù jù de biǎo shù fàn wéi shì cóng -2, 147, 483, 647 dào 2, 147, 483, 647 de zhěng shù
smallint xíng shù jù kě yǐ cún chǔ cóng -32768 dào 32768 de zhěng shù
tinyint xíng de zì duàn zhǐ néng cún chǔ cóng 0 dào 255 de zhěng shù , bù néng yòng lái chǔ cún fù shù
tōng cháng, wèile jié shěng kōng jiān, yīnggāi jìn kě néng de shǐ yòng zuì xiǎo de zhěng xíng shù jù。 yī gè tinyint xíng shù jù zhǐ zhàn yòng yī gè zì jié ; yī gè int xíng shù jù zhàn yòng sì gè zì jié。 zhè kàn qǐ lái sì hū chā bié bù dà, dàn shì zài bǐ jiào dà de biǎo zhōng, zì jié shù de zēngzhǎng shì hěn kuài de。 lìng yī fāng miàn, yī dàn nǐ yǐ jīng chuàng jiàn liǎo yī gè zì duàn, yào xiū gǎi tā shì hěn kùn nán de。 yīn cǐ, wéi 'ān quán qǐ jiàn, nǐ yīnggāi yù cè yǐ xià, yī gè zì duàn suǒ xū yào cún chǔ de shù zhí zuì dà yòu kě néng shì duō dà, rán hòu xuǎn zé shìdàng de shù jù lèi xíng。
numeric
wèile néng duì zì duàn suǒ cún fàng de shù jù yòu gèng duō de kòng zhì, nǐ kě yǐ shǐ yòng numeric xíng shù jù lái tóng shí biǎo shì yī gè shù de zhěng shù bù fēn hé xiǎo shù bù fēn。 numeric xíng shù jù shǐ nǐ néng biǎo shì fēi cháng dà de shù héng héng bǐ int xíng shù jù yào dà dé duō。 yī gè numeric xíng zì duàn kě yǐ cún chǔ cóng -1038 dào 1038 fàn wéi nèi de shù。 numeric xíng shù jù hái shǐ nǐ néng biǎo shì yòu xiǎo shù bù fēn de shù。 lì rú, nǐ kě yǐ zài numeric xíng zì duàn zhōng cún chǔ xiǎo shù 3.14。
dāng dìng yì yī gè numeric xíng zì duàn shí, nǐ xū yào tóng shí zhǐ dìng zhěng shù bù fēn de dà xiǎo hé xiǎo shù bù fēn de dà xiǎo。 rú :muneric(23,0)
yī gè numeric xíng shù jù de zhěng shù bù fēn zuì dà zhǐ néng yòu 28 wèi, xiǎo shù bù fēn de wèi shù bì xū xiǎo yú huò děng yú zhěng shù bù fēn de wèi shù, xiǎo shù bù fēn kě yǐ shì líng。
moneyvssmallmoney
nǐ kě yǐ shǐ yòng int xíng huò numeric xíng shù jù lái cún chǔ qián shù。 dàn shì, zhuān mén yòu lìng wài liǎng zhǒng shù jù lèi xíng yòng yú cǐ mùdì。 rú guǒ nǐ xī wàng nǐ de wǎng diǎn néng zhèng hěn duō qián, nǐ kě yǐ shǐ yòng money xíng shù jù。 rú guǒ nǐ de yě xīn bù dà, nǐ kě yǐ shǐ yòng smallmoney xíng shù jù。 money xíng shù jù kě yǐ cún chǔ cóng -922, 337, 203, 685, 477.5808 dào 922, 337, 203, 685, 477.5807 de qián shù。 rú guǒ nǐ xū yào cún chǔ bǐ zhè hái dà de jīn 'é, nǐ kě yǐ shǐ yòng numeric xíng shù jù。
smallmoney xíng shù jù zhǐ néng cún chǔ cóng -214, 748.3648 dào 214, 748.3647 de qián shù。 tóng yàng, rú guǒ kě yǐ de huà, nǐ yīnggāi yòng smallmoney xíng lái dài tì money xíng shù jù, yǐ jié shěng kōng jiān。
luó ji xíng
bit
rú guǒ nǐ shǐ yòng fù xuǎn kuàng (checkbox) cóng wǎng yè zhōng sōu jí xìn xī, nǐ kě yǐ bǎ cǐ xìn xī cún chǔ zài bit xíng zì duàn zhōng。 bit xíng zì duàn zhǐ néng qǔ liǎng gè zhí :0 huò 1。
dāng xīn, zài nǐ chuàng jiàn hǎo yī gè biǎo zhī hòu, nǐ bù néng xiàng biǎo zhōng tiān jiā bit xíng zì duàn。 rú guǒ nǐ dǎ suàn zài yī gè biǎo zhōng bāo hán bit xíng zì duàn, nǐ bì xū zài chuàng jiàn biǎo shí wán chéng。
rì qī xíng
datetimevssmalldatetime
yī gè datetime xíng de zì duàn kě yǐ cún chǔ de rì qī fàn wéi shì cóng 1753 nián 1 yuè 1 rì dì yī háo miǎo dào 9999 nián 12 yuè 31 rì zuì hòu yī háo miǎo。
rú guǒ nǐ bù xū yào fù gài zhè me dà fàn wéi de rì qī hé shí jiān, nǐ kě yǐ shǐ yòng smalldatetime xíng shù jù。 tā yǔ datetime xíng shù jù tóng yàng shǐ yòng, zhǐ bù guò tā néng biǎo shì de rì qī hé shí jiān fàn wéi bǐ datetime xíng shù jù xiǎo, ér qiě bù rú datetime xíng shù jù jīng què。 yī gè smalldatetime xíng de zì duàn néng gòu cún chǔ cóng 1900 nián 1 yuè 1 rì dào 2079 nián 6 yuè 6 rì de rì qī, tā zhǐ néng jīng què dào miǎo。
datetime xíng zì duàn zài nǐ shū rù rì qī hé shí jiān zhī qián bìng bù bāo hán shí jì de shù jù, rèn shí zhè yī diǎn shì zhòng yào de。 | | sql quán chēng shì“ jié gòu huà chá xún yǔ yán (StructuredQueryLanguage)”
sql(StructuredQueryLanguage) shì yī zhǒng shù jù kù chá xún hé chéng xù shè jì yǔ yán, yòng yú cún qǔ shù jù yǐ jí chá xún、 gēngxīn hé guǎn lǐ guān xì shù jù kù xì tǒng。
sql tóng shí yě shì shù jù kù jiǎo běn wén jiàn de kuò zhǎn míng。
sql shì gāo jí de fēi guò chéng huà biān chéng yǔ yán, yǔn xǔ yòng hù zài gāo céng shù jù jié gòu shàng gōng zuò。 tā bù yào qiú yòng hù zhǐ dìng duì shù jù de cún fàng fāng fǎ, yě bù xū yào yòng hù liǎo jiě jù tǐ de shù jù cún fàng fāng shì, suǒ yǐ jù yòu wán quán bù tóng dǐ céng jié gòu de bù tóng shù jù kù xì tǒng kě yǐ shǐ yòng xiāng tóng de sql yǔ yán zuò wéi shù jù shū rù yǔ guǎn lǐ de jiē kǒu。 tā yǐ jì lù jí hé zuò wéi cāo zuò duì xiàng, suǒ yòu sql yǔ jù jiē shòu jí hé zuò wéi shū rù, fǎn huí jí hé zuò wéi shū chū, zhè zhǒng jí hé tè xìng yǔn xǔ yī tiáo sql yǔ jù de shū chū zuò wéi lìng yī tiáo sql yǔ jù de shū rù, suǒ yǐ sql yǔ jù kě yǐ qiàn tào, zhè shǐ tā jù yòu jí dà de líng huó xìng hé qiáng dà de gōng néng, zài duō shù qíng kuàng xià, zài qí tā yǔ yán zhōng xū yào yī dà duàn chéng xù shí xiàn de gōng néng zhǐ xū yào yī gè sql yǔ jù jiù kě yǐ dá dào mùdì, zhè yě yì wèi zhe yòng sql yǔ yán kě yǐ xiě chū fēi cháng fù zá de yǔ jù。
jié gòu huà chá xún yǔ yán (StructuredQueryLanguage) zuì zǎo shì IBM de shèng yuē sè yán jiū shí yàn shì wéi qí guān xì shù jù kù guǎn lǐ xì tǒng SYSTEMR kāi fā de yī zhǒng chá xún yǔ yán, tā de qián shēn shì SQUARE yǔ yán。 sql yǔ yán jié gòu jiǎn jié, gōng néng qiáng dà, jiǎn dān yì xué, suǒ yǐ zì cóng IBM gōng sī 1981 nián tuī chū yǐ lái, sql yǔ yán dé dào liǎo guǎng fàn de yìng yòng。 rú jīn wú lùn shì xiàng Oracle、 Sybase、 Informix、 sqlServer zhè xiē dà xíng de shù jù kù guǎn lǐ xì tǒng, hái shì xiàng VisualFoxporo、 PowerBuilder zhè xiē PC shàng cháng yòng de shù jù kù kāi fā xì tǒng, dū zhī chí sql yǔ yán zuò wéi chá xún yǔ yán。
měi guó guó jiā biāo zhǔn jú (ANSI) yǔ guó jì biāo zhǔn huà zǔ zhì( ISO) yǐ jīng zhì dìng liǎo sql biāo zhǔn。 ANSI shì yī gè měi guó gōng yè hé shāng yè jí tuán zǔ zhì, fù zé kāi fā měi guó de shāng wù hé tōng xùn biāo zhǔn。 ANSI tóng shí yě shì ISO hé InternationalElectrotechnicalCommission(IEC) de chéng yuán zhī yī。 ANSI fā bù yǔ guó jì biāo zhǔn zǔ zhì xiāng yìng de měi guó biāo zhǔn。 1992 nián, ISO hé IEC fā bù liǎo sql guó jì biāo zhǔn, chēng wéi sql-92。 ANSI suí zhī fā bù de xiāng yìng biāo zhǔn shì ANSIsql-92。 ANSIsql-92 yòu shí bèi chēng wéi ANSIsql。 jìn guǎn bù tóng de guān xì shù jù kù shǐ yòng de sql bǎn běn yòu yī xiē chā yì, dàn dà duō shù dū zūn xún ANSIsql biāo zhǔn。 sqlServer shǐ yòng ANSIsql-92 de kuò zhǎn jí, chēng wéi T-sql, qí zūn xún ANSI zhì dìng de sql-92 biāo zhǔn。
sql yǔ yán bāo hán 4 gè bù fēn:
※ shù jù dìng yì yǔ yán (DDL), lì rú: CREATE、 DROP、 ALTER děng yǔ jù。
※ shù jù cāo zuò yǔ yán (DML), lì rú: INSERT、 UPDATE、 DELETE yǔ jù。
※ shù jù chá xún yǔ yán (DQL), lì rú: SELECT yǔ jù。
※ shù jù kòng zhì yǔ yán (DCL), lì rú: GRANT、 REVOKE、 COMMIT、 ROLLBACK děng yǔ jù。
sql yǔ yán bāo kuò sān zhǒng zhù yào chéng xù shè jì yǔ yán lèi bié de chén shù shì: shù jù dìng yì yǔ yán (DDL), shù jù cāo zuò yǔ yán (DML) jí shù jù kòng zhì yǔ yán (DCL)。 | | 1970: E.J. Codd fā biǎo liǎo guān xì shù jù kù lǐ lùn (relationaldatabasetheory);
1974-79: IBM yǐ Codd de lǐ lùn wéi jī chǔ kāi fā liǎo“ Sequel” , bìng zhòng mìng míng wéi "sql";
1979: Oracle fā bù liǎo shāng yè bǎn sql
1981-84: chū xiàn liǎo qí tā shāng yè bǎn běn, fēn bié lái zì IBM(DB2),DataGeneral(DG/sql),RelationalTechnology(INGRES);
sql/86: ANSI gēn ISO de dì yī gè biāo zhǔn;
sql/89: zēng jiā liǎo yǐn yòng wán zhěng xìng (referentialintegrity);
sql/92(akasql2): bèi shù jù kù guǎn lǐ xì tǒng( DBMS) shēng chǎn shāng guǎng fā jiē shòu;
1997+: chéng wéi dòng tài wǎng zhàn (Dynamicwebcontent) de hòu tái zhī chí;
sql/99: Corelevel gēn qí tā 8 zhǒng xiāng yìng de level, bāo kuò dì guī chá xún, chéng xù gēn liú chéng kòng zhì, jī běn de duì xiàng( object) zhī chí bāo kuò oids;
sql/2003: bāo hán liǎo XML xiāng guān nèi róng , zì dòng shēng chéng liè zhí (columnvalues);
2005-09-30:“ Dataisthenextgenerationinside...sqlisthenewHTML” !TimO'eilly tí chū liǎo Web2.0 lǐ niàn, chēng shù jù jiāng shì hé xīn, sql jiāng chéng wéi“ xīn de
HTML";
sql/2006: dìng yì liǎo sql yǔ XML( bāo hán XQuery) de guān lián yìng yòng;
2006: Sun gōng sī jiāng yǐ sql jī chǔ de shù jù kù guǎn lǐ xì tǒng qiàn rù JavaV6 | | DDL yòng yú dìng yì hé guǎn lǐ wù jiàn, lì rú zī liào kù、 zī liào biǎo yǐ jí jiǎn shì biǎo( dì 18 zhāng jiāng huì jiě shì hé wèi jiǎn shì biǎo)。 DDL chén shù shì tōng cháng bāo kuò měi gè wù jiàn de CREATE、 ALTER yǐ jí DROP mìng lìng。 jǔ lì lái shuō, CREATETABLE、 ALTERTABLE yǐ jí DROPTABLE zhè xiē chén shù shì biàn kě yǐ yòng lái jiàn lì xīn zī liào biǎo、 xiū gǎi qí shǔ xìng( rú xīn zēng huò shān chú zī liào xíng)、 shān chú zī liào biǎo děng, xià miàn wǒ men huì yī yī jiè shào。
CREATETABLE chén shù shì
shǐ yòng DDL zài MyDB zī liào kù jiàn lì yī gè míng wéi Customer_Data de fàn lì zī liào biǎo, běn zhāng hòu miàn de lì zǐ wǒ men huì shǐ yòng dào zhè gè zī liào biǎo。 rú qián suǒ shù, CREATETABLE chén shù shì kě yǐ yòng lái jiàn lì zī liào biǎo。 zhè gè fàn lì zī liào biǎo bèi dìng yì chéng sì gè zī liào xíng, rú xià suǒ shì:
UseMyDB
CREATETABLECustomer_Data
(customer_idsmallint,
first_namechar(20),
last_namechar(20),
phonechar(10))
GO
zhè gè chén shù shì néng chǎn shēng Customer_Data zī liào biǎo, zhè gè zī liào biǎo huì yī zhí shì kōng de zhí dào zī liào bèi tián rù zī liào biǎo nèi。
ALTERTABLE chén shù shì
ALTERTABLE chén shù shì yòng lái biàngēng zī liào biǎo de dìng yì yǔ shǔ xìng。 zài xià miàn de lì zǐ zhōng, wǒ men lì yòng ALTERTABLE zài yǐ jīng cún zài de Customer_Data zī liào biǎo zhōng xīn zēng middle_initial zī liào xíng。
ALTERTABLECustomer_Data
ADDmiddle_initialchar(1)
GO
DROPTABLE chén shù shì
DROPTABLE chén shù shì yòng lái shān chú zī liào biǎo dìng yì yǐ jí suǒ yòu de zī liào、 suǒ yǐn、 chù fā chéng xù、 tiáo jiàn yuē shù yǐ jí zī liào biǎo de quán xiàn。 yào shān chú wǒ men de Customer_Data zī liào biǎo, kě lì yòng xià liè mìng lìng:
DROPTABLECustomer_Data
GO | | DML lì yòng INSERT、 SELECT、 UPDATE jí DELETE děng chén shù shì lái cāo zuò zī liào kù wù jiàn suǒ bāo hán de zī liào。
INSERT chén shù shì
INSERT chén shù shì yòng lái zài zī liào biǎo huò jiǎn shì biǎo zhōng chā rù yī liè zī liào。 lì rú, rú guǒ yào zài Customer_Data zī liào biǎo zhōng xīn zēng yī gè kè hù, kě shǐ yòng lèi sì yǐ xià de INSERT chén shù shì:
INSERTINTOCustomer_Data
(customer_id,first_name,last_name,phone)
VALUES(777,'Frankie','Stein','4895873900')
qǐng zhù yì sql chén shù shì zhōng dì 'èr xíng de zī liào xíng míng chēng qīng dān, qīng dān shàng zī liào xíng míng chēng de cì xù jué dìng liǎo zī liào shù zhí jiāng bèi fàng zài nǎ gè zī liào xíng。 jǔ lì lái shuō, dì yī gè zī liào shù zhí jiāng bèi fàng zài qīng dān liè chū de dì yī gè zī liào xíng customer_id、 dì 'èr gè zī liào shù zhí fàng zài dì 'èr gè zī liào xíng, yǐ cǐ lèi tuī。 yóu yú wǒ men zài jiàn lì zī liào biǎo shí, dìng yì zī liào zī liào xíng tián rù shù zhí de cì xù yǔ xiàn zài xiāng tóng, yīn cǐ wǒ men bù bì tè yì zhǐ dìng lán wèi míng chēng。 wǒ men kě yǐ yòng yǐ xià de INSERT chén shù shì dài tì:
INSERTINTOCustomer_Data
VALUES(777,'Frankie','Stein','4895873900')
zhù yì
rú guǒ shǐ yòng zhè zhǒng xíng shì de INSERT chén shù shì, dàn bèi chā rù de shù zhí cì xù shàng yǔ jiàn lì zī liào biǎo shí bù tóng, shù zhí jiāng bèi fàng rù cuò wù de zī liào xíng。 rú guǒ zī liào de xíng bié yǔ dìng yì bù fú, zé huì shōu dào yī gè cuò wù xùn xī。
UPDATE chén shù shì
UPDATE chén shù shì yòng lái gēngxīn huò gǎi biàn yī liè huò duō liè zhōng de zhí。 lì rú, yī wèi míng chēng wéi FrankieStein de kè hù xiǎng yào zài jì lù zhōng gǎi biàn tā de xìng shì wéi Franklin, kě shǐ yòng yǐ xià UPDATE chén shù shì:
UPDATECustomer_Data
SETfirst_name="Franklin"
WHERElast_name="Stein"andcustomer_id=777
wǒ men zài WHERE zǐ jù zhōng jiā rù customer_id de xiàng mù lái què dìng qí tā míng chēng wéi Stein de kè hù bù huì bèi yǐng xiǎng- zhǐ yòu customer_id wéi 777 de kè hù, xìng shì huì yòu suǒ gǎi biàn。
--------------------------------------------------------------------------------
shuō míng
dāng nín shǐ yòng UPDATE chén shù shì shí, yào què dìng zài WHERE zǐ jù tí gōng chōng fēn de shāi xuǎn tiáo jiàn, rú cǐ cái bù huì bù jīng yì dì gǎi biàn liǎo yī xiē bù gāi gǎi biàn de zī liào。
--------------------------------------------------------------------------------
DELETE chén shù shì
DELETE chén shù shì yòng lái shān chú zī liào biǎo zhōng yī liè huò duō liè de zī liào, nín yě kě yǐ shān chú zī liào biǎo zhōng de suǒ yòu zī liào liè。 yào cóng Customer_Data zī liào biǎo zhōng shān chú suǒ yòu de liè, nín kě yǐ lì yòng xià liè chén shù shì:
DELETEFROMCustomer_Data
huò
DELETECustomer_Data
zī liào biǎo míng chēng qián de FROM guān jiàn zì zài DELETE chén shù shì zhōng shì xuǎn zé xìng de。 chú cǐ zhī wài, zhè liǎng gè chén shù shì wán quán xiāng tóng。
yào cóng Customer_Data zī liào biǎo zhōng shān chú customer_id zī liào xíng de zhí xiǎo yú 100 de liè, kě lì yòng xià liè chén shù shì:
DELETEFROMCustomer_Data
WHEREcustomer_id<100
xiàn zài wǒ men yǐ jīng kuài sù liú lǎn liǎo sql tí gōng de DDL yǔ DML chén shù shì, jiē zhù, xià miàn jiāng jiè shào T-sql。 | | DCL shì yòng lái guǎn lǐ shù jù kù de yǔ yán。 bāo hán guǎn lǐ quán xiàn jí shù jù gēnggǎi。
-------------------------------------------------------------------------------- | | SELECT chén shù shì yòng lái jiǎn suǒ zī liào biǎo zhōng de zī liào, ér nǎ xiē zī liào bèi jiǎn suǒ yóu liè chū de zī liào xíng yǔ chén shù shì zhōng de WHERE zǐ jù jué dìng。 lì rú, yào cóng zhī qián jiàn lì de Customer_Data zī liào biǎo zhōng jiǎn suǒ customer_id yǐ jí first_name zī liào xíng de zī liào, bìng qiě zhǐ xiǎng qǔ chū měi liè zhōng first_name zī liào xíng zhí wéi Frankie de zī liào, nà mó kě yǐ lì yòng yǐ xià de SELECT chén shù shì:
SELECTcustomer_id,first_nameFROMCustomer_Data
WHEREfirst_name="Frankie"
rú guǒ yòu yī liè fú hé SELECT chén shù shì zhōng de biāo zhǔn, zé jiēguǒ jiāng xiǎn shì rú xià:
customer_idfirst_name
-------------------------
777Frankie | SQL zhōng de wǔ zhǒng shù jù lèi xíng | jiǎn yào miáo shù yī xià sql zhōng de wǔ zhǒng shù jù lèi xíng : zì fú xíng, wén běn xíng, shù zhí xíng, luó ji xíng hé rì qī xíng
zì fú xíng
VARCHARVSCHAR
VARCHAR xíng hé CHAR xíng shù jù de zhè gè chā bié shì xì wēi de, dàn shì fēi cháng zhòng yào。 tā mendōu shì yòng lái chǔ cún zì fú chuàn cháng dù xiǎo yú 255 de zì fú。
jiǎ rú nǐ xiàng yī gè cháng dù wéi sì shí gè zì fú de VARCHAR xíng zì duàn zhōng shū rù shù jù BIllGAtES。 dāng nǐ yǐ hòu cóng zhè gè zì duàn zhōng qǔ chū cǐ shù jù shí, nǐ qǔ chū de shù jù qí cháng dù wéi shí gè zì fú héng héng zì fú chuàn BillGates de cháng dù。 xiàn zài jiǎ rú nǐ bǎ zì fú chuàn shū rù yī gè cháng dù wéi sì shí gè zì fú de CHAR xíng zì duàn zhōng, nà me dāng nǐ qǔ chū shù jù shí, suǒ qǔ chū de shù jù cháng dù jiāng shì sì shí gè zì fú。 zì fú chuàn de hòu miàn huì bèi fù jiā duō yú de kònggé。
dāng nǐ jiàn lì zì jǐ de zhàn diǎn shí, nǐ huì fā xiàn shǐ yòng VARCHAR xíng zì duàn yào bǐ CHAR xíng zì duàn fāng biàn de duō。 shǐ yòng VARCHAR xíng zì duàn shí, nǐ bù xū yào wéi jiǎn diào nǐ shù jù zhōng duō yú de kònggé 'ér cāo xīn。
VARCHAR xíng zì duàn de lìng yī gè tū chū de hǎo chù shì tā kě yǐ bǐ CHAR xíng zì duàn zhàn yòng gèng shǎo de nèi cún hé yìng pán kōng jiān。 dāng nǐ de shù jù kù hěn dà shí, zhè zhǒng nèi cún hé cí pán kōng jiān de jié shěng huì biàn dé fēi cháng zhòng yào
dàn shì VARCHAR xíng zì duàn zài dú qǔ dé xiàolǜ shàng què bǐ bù shàng CHAR, duì yú yǐ jīng xiàn dìng zì fú cháng dù de zì duàn lái shuō yòng char zé yōu yú varchar, yīn wéi kě yǐ huò dé gèng kuài dé dú qǔ sù dù。 lì rú rì qī zì duàn gù dìng gé shì wéi yyyy-MM-dd xíng dé zì duàn, gù dìng cháng dù shì 10 liǎo, nà me yòng CHAR zé dú qǔ sù dù huì gèng kuài。
wén běn xíng
TEXT
shǐ yòng wén běn xíng shù jù, nǐ kě yǐ cún fàng chāo guò 'èr shí yì gè zì fú de zì fú chuàn。 dāng nǐ xū yào cún chǔ dà chuàn de zì fú shí, yīnggāi shǐ yòng wén běn xíng shù jù。
zhù yì wén běn xíng shù jù méi yòu cháng dù, ér shàng yī jié zhōng suǒ jiǎng de zì fú xíng shù jù shì yòu cháng dù de。 yī gè wén běn xíng zì duàn zhōng de shù jù tōng cháng yào me wéi kōng, yào me hěn dà。
dāng nǐ cóng HTMLfORM de duō xíng wén běn biān ji kuàng (TEXTAREA) zhōng shōu jí shù jù shí, nǐ yīnggāi bǎ shōu jí de xìn xī cún chǔ yú wén běn xíng zì duàn zhōng。 dàn shì, wú lùn hé shí, zhǐ yào nǐ néng bì miǎn shǐ yòng wén běn xíng zì duàn, nǐ jiù yīnggāi bù shì yòng tā。 wén běn xíng zì duàn jì dà qiě màn, làn yòng wén běn xíng zì duàn huì shǐ fú wù qì sù dù biàn màn。 wén běn xíng zì duàn hái huì chī diào dà liàng de cí pán kōng jiān。
yī dàn nǐ xiàng wén běn xíng zì duàn zhōng shū rù liǎo rèn hé shù jù ( shèn zhì shì kōng zhí ), jiù huì yòu 2K de kōng jiān bèi zì dòng fēn pèijǐ gāi shù jù。 chú fēi shān chú gāi jì lù, fǒu zé nǐ wú fǎ shōu huí zhè bù fēn cún chǔ kōng jiān。
shù zhí xíng
sql zhī chí xǔ duō zhǒng bù tóng de shù zhí xíng shù jù。 nǐ kě yǐ cún chǔ zhěng shù INT、 xiǎo shù NUMERIC、 hé qián shù MONEY。
INTVSSMALLINTVSTINYINT
tā men de qū bié zhǐ shì zì fú cháng dù :
INT xíng shù jù de biǎo shù fàn wéi shì cóng -2,147,483,647 dào 2,147,483,647 de zhěng shù
SMALLINT xíng shù jù kě yǐ cún chǔ cóng -32768 dào 32768 de zhěng shù
TINYINT xíng de zì duàn zhǐ néng cún chǔ cóng 0 dào 255 de zhěng shù , bù néng yòng lái chǔ cún fù shù
tōng cháng, wèile jié shěng kōng jiān, yīnggāi jìn kě néng de shǐ yòng zuì xiǎo de zhěng xíng shù jù。 yī gè TINYINT xíng shù jù zhǐ zhàn yòng yī gè zì jié ; yī gè INT xíng shù jù zhàn yòng sì gè zì jié。 zhè kàn qǐ lái sì hū chā bié bù dà, dàn shì zài bǐ jiào dà de biǎo zhōng, zì jié shù de zēngzhǎng shì hěn kuài de。 lìng yī fāng miàn, yī dàn nǐ yǐ jīng chuàng jiàn liǎo yī gè zì duàn, yào xiū gǎi tā shì hěn kùn nán de。 yīn cǐ, wéi 'ān quán qǐ jiàn, nǐ yīnggāi yù cè yǐ xià, yī gè zì duàn suǒ xū yào cún chǔ de shù zhí zuì dà yòu kě néng shì duō dà, rán hòu xuǎn zé shìdàng de shù jù lèi xíng。
NUMERIC
wèile néng duì zì duàn suǒ cún fàng de shù jù yòu gèng duō de kòng zhì, nǐ kě yǐ shǐ yòng NUMERIC xíng shù jù lái tóng shí biǎo shì yī gè shù de zhěng shù bù fēn hé xiǎo shù bù fēn。 NUMERIC xíng shù jù shǐ nǐ néng biǎo shì fēi cháng dà de shù héng héng bǐ INT xíng shù jù yào dà dé duō。 yī gè NUMERIC xíng zì duàn kě yǐ cún chǔ cóng -1038 dào 1038 fàn wéi nèi de shù。 NUMERIC xíng shù jù hái shǐ nǐ néng biǎo shì yòu xiǎo shù bù fēn de shù。 lì rú, nǐ kě yǐ zài NUMERIC xíng zì duàn zhōng cún chǔ xiǎo shù 3.14。
dāng dìng yì yī gè NUMERIC xíng zì duàn shí, nǐ xū yào tóng shí zhǐ dìng zhěng shù bù fēn de dà xiǎo hé xiǎo shù bù fēn de dà xiǎo。 rú :MUNERIC(23,0)
yī gè NUMERIC xíng shù jù de zhěng shù bù fēn zuì dà zhǐ néng yòu 28 wèi, xiǎo shù bù fēn de wèi shù bì xū xiǎo yú huò děng yú zhěng shù bù fēn de wèi shù, xiǎo shù bù fēn kě yǐ shì líng。
MONEYVSSMALLMONEY
nǐ kě yǐ shǐ yòng INT xíng huò NUMERIC xíng shù jù lái cún chǔ qián shù。 dàn shì, zhuān mén yòu lìng wài liǎng zhǒng shù jù lèi xíng yòng yú cǐ mùdì。 rú guǒ nǐ xī wàng nǐ de wǎng diǎn néng zhèng hěn duō qián, nǐ kě yǐ shǐ yòng MONEY xíng shù jù。 rú guǒ nǐ de yě xīn bù dà, nǐ kě yǐ shǐ yòng SMALLMONEY xíng shù jù。 MONEY xíng shù jù kě yǐ cún chǔ cóng -922,337,203,685, 477.5808 dào 922,337,203,685,477.5807 de qián shù。 rú guǒ nǐ xū yào cún chǔ bǐ zhè hái dà de jīn 'é, nǐ kě yǐ shǐ yòng NUMERIC xíng shù jù。
SMALLMONEY xíng shù jù zhǐ néng cún chǔ cóng -214,748.3648 dào 214,748.3647 de qián shù。 tóng yàng, rú guǒ kě yǐ de huà, nǐ yīnggāi yòng SMALLMONEY xíng lái dài tì MONEY xíng shù jù, yǐ jié shěng kōng jiān。
luó ji xíng
BIT
rú guǒ nǐ shǐ yòng fù xuǎn kuàng (CHECKBOX) cóng wǎng yè zhōng sōu jí xìn xī, nǐ kě yǐ bǎ cǐ xìn xī cún chǔ zài BIT xíng zì duàn zhōng。 BIT xíng zì duàn zhǐ néng qǔ liǎng gè zhí :0 huò 1。
dāng xīn, zài nǐ chuàng jiàn hǎo yī gè biǎo zhī hòu, nǐ bù néng xiàng biǎo zhōng tiān jiā BIT xíng zì duàn。 rú guǒ nǐ dǎ suàn zài yī gè biǎo zhōng bāo hán BIT xíng zì duàn, nǐ bì xū zài chuàng jiàn biǎo shí wán chéng。
rì qī xíng
DATETIMEVSSMALLDATETIME
yī gè DATETIME xíng de zì duàn kě yǐ cún chǔ de rì qī fàn wéi shì cóng 1753 nián 1 yuè 1 rì dì yī háo miǎo dào 9999 nián 12 yuè 31 rì zuì hòu yī háo miǎo。
rú guǒ nǐ bù xū yào fù gài zhè me dà fàn wéi de rì qī hé shí jiān, nǐ kě yǐ shǐ yòng SMALLDATETIME xíng shù jù。 tā yǔ DATETIME xíng shù jù tóng yàng shǐ yòng, zhǐ bù guò tā néng biǎo shì de rì qī hé shí jiān fàn wéi bǐ DATETIME xíng shù jù xiǎo, ér qiě bù rú DATETIME xíng shù jù jīng què。 yī gè SMALLDATETIME xíng de zì duàn néng gòu cún chǔ cóng 1900 nián 1 yuè 1 rì dào 2079 nián 6 yuè 6 rì de rì qī, tā zhǐ néng jīng què dào miǎo。
DATETIME xíng zì duàn zài nǐ shū rù rì qī hé shí jiān zhī qián bìng bù bāo hán shí jì de shù jù, rèn shí zhè yī diǎn shì zhòng yào de。 | | yóu yú sql zhǐ lìng zài bù fèn jìn jiē shǐ yòng shí, yǔ fǎ huì yǐ zhào tè dìng tiáo jiàn lái biàn huàn, ér qiě ruò shì biǎo gé zhōng de zì duàn guò duō shí, xǔ duō kāi fā rén yuán dū huì xí guàn yǐ zì chuàn zǔ lì de fāng shì jiàn lì sql zhǐ lìng, ér qiě yòu shǐ yòng xì tǒng guǎn lǐ yuán jí de zhàng hù lián dào shù jù kù, yīn cǐ ràng hēi kè yòu jī huì lì yòng sql de zǔ lì fāng shì jìn xíng gōng jī, xiàng shì zài zhǐ lìng zhōng tiān jiā bù fèn cì tàn xìng huò pò huài xìng de zhǐ lìng ( lì rú DROPTABLE、 DROPDATABASE huò shì DELETE*FROMmyTable děng jù pò huài xìng de zhǐ lìng ), ràng shù jù kù de zī liào huò shí tǐ fú wù qì bèi pò huài, dǎo zhì fú wù zhōng duàn huò shì xì tǒng tān huàn děng hòu guǒ, cǐ zhǒng gōng jī shǒu fǎ chēng wéi sqlInjection。 mù qián shí wù shàng jiào yòu xiào de fáng yù fāng fǎ, jiù shì quán miàn gǎi yòng cān shù huà chá xún, huò shì jiǎn chá shū rù zī liào, guò lǜ diào kě néng de wēi xiǎn zhǐ lìng huò zī liào lái fáng fàn。 | sql chá xún yǔ jù jīng huá shǐ yòng jiǎn yào | jiǎn dān de Transact-sql chá xún zhǐ bāo kuò xuǎn zé liè biǎo、 FROM zǐ jù hé WHERE zǐ jù。 tā men fēn bié shuō míng suǒ chá xún liè、 chá xún de biǎo huò shì tú、 yǐ jí sōu suǒ tiáo jiàn děng。
lì rú, xià miàn de yǔ jù chá xún testtable biǎo zhōng xìng míng wéi“ zhāng sān” de nickname zì duàn hé email zì duàn。
SELECTnickname,email
FROMtesttable
WHEREname=' zhāng sān '
( yī ) xuǎn zé liè biǎo
xuǎn zé liè biǎo (select_list) zhǐ chū suǒ chá xún liè, tā kě yǐ shì yī zǔ liè míng liè biǎo、 xīng hào、 biǎo dá shì、 biàn liàng ( bāo kuò jú bù biàn liàng hé quán jú biàn liàng ) děng gòu chéng。
1、 xuǎn zé suǒ yòu liè
lì rú, xià miàn yǔ jù xiǎn shì testtable biǎo zhōng suǒ yòu liè de shù jù:
SELECT*
FROMtesttable
2、 xuǎn zé bù fēn liè bìng zhǐ dìng tā men de xiǎn shì cì xù
chá xún jiēguǒ jí hé zhōng shù jù de pái liè shùn xù yǔ xuǎn zé liè biǎo zhōng suǒ zhǐ dìng de liè míng pái liè shùn xù xiāng tóng。
lì rú:
SELECTnickname,email
FROMtesttable
3、 gēnggǎi liè biāo tí
zài xuǎn zé liè biǎo zhōng, kě chóngxīn zhǐ dìng liè biāo tí。 dìng yì gé shì wéi:
liè biāo tí = liè míng
liè míng liè biāo tí
rú guǒ zhǐ dìng de liè biāo tí bù shì biāo zhǔn de biāozhì fú gé shì shí, yìng shǐ yòng yǐn hào dìng jiè fú, lì rú, xià liè yǔ jù shǐ yòng hàn zì xiǎn shì liè biāo tí:
SELECT nì chēng =nickname, diàn zǐ yóu jiàn =email
FROMtesttable
4、 shān chú chóngfù xíng
SELECT yǔ jù zhōng shǐ yòng ALL huò DISTINCT xuǎn xiàng lái xiǎn shì biǎo zhōng fú hé tiáo jiàn de suǒ yòu xíng huò shān chú qí zhōng chóngfù de shù jù xíng, mò rèn wéi ALL。 shǐ yòng DISTINCT xuǎn xiàng shí, duì yú suǒ yòu chóngfù de shù jù xíng zài SELECT fǎn huí de jiēguǒ jí hé zhōng zhǐ bǎo liú yīháng。
5、 xiàn zhì fǎn huí de xíng shù
shǐ yòng TOPn[PERCENT] xuǎn xiàng xiàn zhì fǎn huí de shù jù xíng shù, TOPn shuō míng fǎn huí n xíng, ér TOPnPERCENT shí, shuō míng n shì biǎo shì yī bǎi fēn shù, zhǐ dìng fǎn huí de xíng shù děng yú zǒng xíng shù de bǎi fēn zhī jǐ。
lì rú:
SELECTTOP2*
FROMtesttable
SELECTTOP20PERCENT*
FROMtesttable
( èr )FROM zǐ jù
FROM zǐ jù zhǐ dìng SELECT yǔ jù chá xún jí yǔ chá xún xiāng guān de biǎo huò shì tú。 zài FROM zǐ jù zhōng zuì duō kě zhǐ dìng 256 gè biǎo huò shì tú, tā men zhī jiān yòng dòu hào fēn gé。
zài FROM zǐ jù tóng shí zhǐ dìng duō gè biǎo huò shì tú shí, rú guǒ xuǎn zé liè biǎo zhōng cún zài tóng míng liè, zhè shí yìng shǐ yòng duì xiàng míng xiàn dìng zhè xiē liè suǒ shǔ de biǎo huò shì tú。 lì rú zài usertable hé citytable biǎo zhōng tóng shí cún zài cityid liè, zài chá xún liǎng gè biǎo zhōng de cityid shí yìng shǐ yòng xià miàn yǔ jù gé shì jiā yǐ xiàn dìng:
SELECTusername,citytable.cityid
FROMusertable,citytable
WHEREusertable.cityid=citytable.cityid
zài FROM zǐ jù zhōng kě yòng yǐ xià liǎng zhǒng gé shì wéi biǎo huò shì tú zhǐ dìng bié míng:
biǎo míng as bié míng
biǎo míng bié míng
lì rú shàng miàn yǔ jù kě yòng biǎo de bié míng gé shì biǎo shì wéi:
SELECTusername,b.cityid
FROMusertablea,citytableb
WHEREa.cityid=b.cityid
SELECT bù jǐn néng cóng biǎo huò shì tú zhōng jiǎn suǒ shù jù, tā hái néng gòu cóng qí tā chá xún yǔ jù suǒ fǎn huí de jiēguǒ jí hé zhōng chá xún shù jù。
lì rú:
SELECTa.au_fname+a.au_lname
FROMauthorsa,titleauthorta
(SELECTtitle_id,title
FROMtitles
WHEREytd_sales>10000
)ASt
WHEREa.au_id=ta.au_id
ANDta.title_id=t.title_id
cǐ lì zhōng, jiāng SELECT fǎn huí de jiēguǒ jí hé jǐyǔ yī bié míng t, rán hòu zài cóng zhōng jiǎn suǒ shù jù。
( sān ) shǐ yòng WHERE zǐ jù shè zhì chá xún tiáo jiàn
WHERE zǐ jù shè zhì chá xún tiáo jiàn, guò lǜ diào bù xū yào de shù jù xíng。 lì rú xià miàn yǔ jù chá xún nián líng dà yú 20 de shù jù:
SELECT*
FROMusertable
WHEREage>20
WHERE zǐ jù kě bāo kuò gè zhǒng tiáo jiàn yùn suàn fú:
bǐ jiào yùn suàn fú ( dà xiǎo bǐ jiào ): >、 >=、 =、 <、 <=、 <>、 !>、 !<
fàn wéi yùn suàn fú ( biǎo dá shì zhí shì fǒu zài zhǐ dìng de fàn wéi ): BETWEEN … AND…
NOTBETWEEN… AND…
liè biǎo yùn suàn fú ( pàn duàn biǎo dá shì shì fǒu wéi liè biǎo zhōng de zhǐ dìng xiàng ): IN( xiàng 1, xiàng 2…… )
NOTIN( xiàng 1, xiàng 2…… )
mó shì pǐ pèi fú ( pàn duàn zhí shì fǒu yǔ zhǐ dìng de zì fú tōng pèi gé shì xiāng fú ):LIKE、 NOTLIKE
kōng zhí pàn duàn fú ( pàn duàn biǎo dá shì shì fǒu wéi kōng ): ISNULL、 NOTISNULL
luó ji yùn suàn fú ( yòng yú duō tiáo jiàn de luó ji lián jiē ): NOT、 AND、 OR
1、 fàn wéi yùn suàn fú lì: ageBETWEEN10AND30 xiāng dāng yú age>=10ANDage<=30
2、 liè biǎo yùn suàn fú lì: countryIN('Germany','China')
3、 mó shì pǐ pèi fú lì: cháng yòng yú mó hú chá zhǎo, tā pàn duàn liè zhí shì fǒu yǔ zhǐ dìng de zì fú chuàn gé shì xiāng pǐ pèi。 kě yòng yú char、 varchar、 text、 ntext、 datetime hé smalldatetime děng lèi xíng chá xún。
kě shǐ yòng yǐ xià tōng pèi zì fú:
bǎi fēn hào %: kě pǐ pèi rèn yì lèi xíng hé cháng dù de zì fú, rú guǒ shì zhōng wén, qǐng shǐ yòng liǎng gè bǎi fēn hào jí %%。
xià huàxiàn _: pǐ pèi dān gè rèn yì zì fú, tā cháng yòng lái xiàn zhì biǎo dá shì de zì fú cháng dù。
fāng kuò hào []: zhǐ dìng yī gè zì fú、 zì fú chuàn huò fàn wéi, yào qiú suǒ pǐ pèi duì xiàng wéi tā men zhōng de rèn yī gè。 [^]: qí qǔ zhí yě [] xiāng tóng, dàn tā yào qiú suǒ pǐ pèi duì xiàng wéi zhǐ dìng zì fú yǐ wài de rèn yī gè zì fú。
lì rú:
xiàn zhì yǐ Publishing jié wěi, shǐ yòng LIKE'%Publishing'
xiàn zhì yǐ A kāi tóu: LIKE'[A]%'
xiàn zhì yǐ A kāi tóu wài: LIKE'[^A]%'
4、 kōng zhí pàn duàn fú lì WHEREageISNULL
5、 luó ji yùn suàn fú: yōu xiān jí wéi NOT、 AND、 OR
( sì ) chá xún jiēguǒ pái xù
shǐ yòng ORDERBY zǐ jù duì chá xún fǎn huí de jiēguǒ 'àn yī liè huò duō liè pái xù。 ORDERBY zǐ jù de yǔ fǎ gé shì wéi:
ORDERBY{column_name[ASC|DESC]}[,… n]
qí zhōng ASC biǎo shì shēng xù, wéi mò rèn zhí, DESC wéi jiàng xù。 ORDERBY bù néng 'àn ntext、 text hé image shù jù lèi xíng jìn xíng pái xù。
lì rú:
SELECT*
FROMusertable
ORDERBYagedesc,useridASC
lìng wài, kě yǐ gēn jù biǎo dá shì jìn xíng pái xù。
èr、 lián hé chá xún
UNION yùn suàn fú kě yǐ jiāng liǎng gè huò liǎng gè yǐ shàng shàng SELECT yǔ jù de chá xún jiēguǒ jí hé hé bìng chéng yī gè jiēguǒ jí hé xiǎn shì, jí zhí xíng lián hé chá xún。 UNION de yǔ fǎ gé shì wéi:
select_statement
UNION[ALL]selectstatement
[UNION[ALL]selectstatement][… n]
qí zhōng selectstatement wéi dài lián hé de SELECT chá xún yǔ jù。
ALL xuǎn xiàng biǎo shì jiāng suǒ yòu xíng hé bìng dào jiēguǒ jí hé zhōng。 bù zhǐ dìng gāi xiàng shí, bèi lián hé chá xún jiēguǒ jí hé zhōng de chóngfù xíng jiāng zhǐ bǎo liú yīháng。
lián hé chá xún shí, chá xún jiēguǒ de liè biāo tí wéi dì yī gè chá xún yǔ jù de liè biāo tí。 yīn cǐ, yào dìng yì liè biāo tí bì xū zài dì yī gè chá xún yǔ jù zhōng dìng yì。 yào duì lián hé chá xún jiēguǒ pái xù shí, yě bì xū shǐ yòng dì yī chá xún yǔ jù zhōng de liè míng、 liè biāo tí huò zhě liè xù hào。
zài shǐ yòng UNION yùn suàn fú shí, yìng bǎo zhèng měi gè lián hé chá xún yǔ jù de xuǎn zé liè biǎo zhōng yòu xiāng tóng shù liàng de biǎo dá shì, bìng qiě měi gè chá xún xuǎn zé biǎo dá shì yìng jù yòu xiāng tóng de shù jù lèi xíng, huò shì kě yǐ zì dòng jiāng tā men zhuǎn huàn wéi xiāng tóng de shù jù lèi xíng。 zài zì dòng zhuǎn huàn shí, duì yú shù zhí lèi xíng, xì tǒng jiāng dī jīng dù de shù jù lèi xíng zhuǎn huàn wéi gāo jīng dù de shù jù lèi xíng。
zài bāo kuò duō gè chá xún de UNION yǔ jù zhōng, qí zhí xíng shùn xù shì zì zuǒ zhì yòu, shǐ yòng kuò hào kě yǐ gǎi biàn zhè yī zhí xíng shùn xù。 lì rú:
chá xún 1UNION( chá xún 2UNION chá xún 3)
sān、 lián jiē chá xún
tōng guò lián jiē yùn suàn fú kě yǐ shí xiàn duō gè biǎo chá xún。 lián jiē shì guān xì shù jù kù mó xíng de zhù yào tè diǎn, yě shì tā qū bié yú qí tā lèi xíng shù jù kù guǎn lǐ xì tǒng de yī gè biāo zhì。
zài guān xì shù jù kù guǎn lǐ xì tǒng zhōng, biǎo jiàn lì shí gè shù jù zhī jiān de guān xì bù bì què dìng, cháng bǎ yī gè shí tǐ de suǒ yòu xìn xī cún fàng zài yī gè biǎo zhōng。 dāng jiǎn suǒ shù jù shí, tōng guò lián jiē cāo zuò chá xún chū cún fàng zài duō gè biǎo zhōng de bù tóng shí tǐ de xìn xī。 lián jiē cāo zuò gěi yòng hù dài lái hěn dà de líng huó xìng, tā men kě yǐ zài rèn hé shí hòu zēng jiā xīn de shù jù lèi xíng。 wéi bù tóng shí tǐ chuàng jiàn xīn de biǎo, ěr hòu tōng guò lián jiē jìn xíng chá xún。
lián jiē kě yǐ zài SELECT yǔ jù de FROM zǐ jù huò WHERE zǐ jù zhōng jiàn lì, sì shì 'ér fēi zài FROM zǐ jù zhōng zhǐ chū lián jiē shí yòu zhù yú jiāng lián jiē cāo zuò yǔ WHERE zǐ jù zhōng de sōu suǒ tiáo jiàn qū fēn kāi lái。 suǒ yǐ, zài Transact-sql zhōng tuī jiàn shǐ yòng zhè zhǒng fāng fǎ。
sql-92 biāo zhǔn suǒ dìng yì de FROM zǐ jù de lián jiē yǔ fǎ gé shì wéi:
FROMjoin_tablejoin_typejoin_table
[ON(join_condition)]
qí zhōng join_table zhǐ chū cānyù lián jiē cāo zuò de biǎo míng, lián jiē kě yǐ duì tóng yī gè biǎo cāo zuò, yě kě yǐ duì duō biǎo cāo zuò, duì tóng yī gè biǎo cāo zuò de lián jiē yòu chēng zuò zì lián jiē。
join_type zhǐ chū lián jiē lèi xíng, kě fēn wéi sān zhǒng: nèi lián jiē、 wài lián jiē hé jiāo chā lián jiē。 nèi lián jiē (INNERJOIN) shǐ yòng bǐ jiào yùn suàn fú jìn xíng biǎo jiān mǒu ( xiē ) liè shù jù de bǐ jiào cāo zuò, bìng liè chū zhè xiē biǎo zhōng yǔ lián jiē tiáo jiàn xiāng pǐ pèi de shù jù xíng。 gēn jù suǒ shǐ yòng de bǐ jiào fāng shì bù tóng, nèi lián jiē yòu fēn wéi děng zhí lián jiē、 zì rán lián jiē hé bù děng lián jiē sān zhǒng。 wài lián jiē fēn wéi zuǒ wài lián jiē (LEFTOUTERJOIN huò LEFTJOIN)、 yòu wài lián jiē (RIGHTOUTERJOIN huò RIGHTJOIN) hé quán wài lián jiē (FULLOUTERJOIN huò FULLJOIN) sān zhǒng。 yǔ nèi lián jiē bù tóng de shì, wài lián jiē bù zhǐ liè chū yǔ lián jiē tiáo jiàn xiāng pǐ pèi de xíng, ér shì liè chū zuǒ biǎo ( zuǒ wài lián jiē shí )、 yòu biǎo ( yòu wài lián jiē shí ) huò liǎng gè biǎo ( quán wài lián jiē shí ) zhōng suǒ yòu fú hé sōu suǒ tiáo jiàn de shù jù xíng。
jiāo chā lián jiē (CROSSJOIN) méi yòu WHERE zǐ jù, tā fǎn huí lián jiē biǎo zhōng suǒ yòu shù jù xíng de dí kǎ 'ěr jī, qí jiēguǒ jí hé zhōng de shù jù xíng shù děng yú dì yī gè biǎo zhōng fú hé chá xún tiáo jiàn de shù jù xíng shù chéng yǐ dì 'èr gè biǎo zhōng fú hé chá xún tiáo jiàn de shù jù xíng shù。
lián jiē cāo zuò zhōng de ON(join_condition) zǐ jù zhǐ chū lián jiē tiáo jiàn, tā yóu bèi lián jiē biǎo zhōng de liè hé bǐ jiào yùn suàn fú、 luó ji yùn suàn fú děng gòu chéng。
wú lùn nǎ zhǒng lián jiē dōubù néng duì text、 ntext hé image shù jù lèi xíng liè jìn xíng zhí jiē lián jiē, dàn kě yǐ duì zhè sān zhǒng liè jìn xíng jiànjiē lián jiē。 lì rú:
SELECTp1.pub_id,p2.pub_id,p1.pr_info
FROMpub_infoASp1INNERJOINpub_infoASp2
ONDATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)
( yī ) nèi lián jiē
nèi lián jiē chá xún cāo zuò liè chū yǔ lián jiē tiáo jiàn pǐ pèi de shù jù xíng, tā shǐ yòng bǐ jiào yùn suàn fú bǐ jiào bèi lián jiē liè de liè zhí。 nèi lián jiē fēn sān zhǒng:
1、 děng zhí lián jiē: zài lián jiē tiáo jiàn zhōng shǐ yòng děng yú hào (=) yùn suàn fú bǐ jiào bèi lián jiē liè de liè zhí, qí chá xún jiēguǒ zhōng liè chū bèi lián jiē biǎo zhōng de suǒ yòu liè, bāo kuò qí zhōng de chóngfù liè。
2、 bù děng lián jiē: zài lián jiē tiáo jiàn shǐ yòng chú děng yú yùn suàn fú yǐ wài de qí tā bǐ jiào yùn suàn fú bǐ jiào bèi lián jiē de liè de liè zhí。 zhè xiē yùn suàn fú bāo kuò >、 >=、 <=、 <、 !>、 !< hé <>。
3、 zì rán lián jiē: zài lián jiē tiáo jiàn zhōng shǐ yòng děng yú (=) yùn suàn fú bǐ jiào bèi lián jiē liè de liè zhí, dàn tā shǐ yòng xuǎn zé liè biǎo zhǐ chū chá xún jiēguǒ jí hé zhōng suǒ bāo kuò de liè, bìng shān chú lián jiē biǎo zhōng de chóngfù liè。
lì, xià miàn shǐ yòng děng zhí lián jiē liè chū authors hé publishers biǎo zhōng wèi yú tóng yī chéng shì de zuò zhě hé chū bǎn shè:
SELECT*
FROMauthorsASaINNERJOINpublishersASp
ONa.city=p.city
yòu rú shǐ yòng zì rán lián jiē, zài xuǎn zé liè biǎo zhōng shān chú authors hé publishers biǎo zhōng chóngfù liè (city hé state):
SELECTa.*,p.pub_id,p.pub_name,p.country
FROMauthorsASaINNERJOINpublishersASp
ONa.city=p.city
( èr ) wài lián jiē
nèi lián jiē shí, fǎn huí chá xún jiēguǒ jí hé zhōng de jǐn shì fú hé chá xún tiáo jiàn (WHERE sōu suǒ tiáo jiàn huò HAVING tiáo jiàn ) hé lián jiē tiáo jiàn de xíng。 ér cǎi yòng wài lián jiē shí, tā fǎn huí dào chá xún jiēguǒ jí hé zhōng de bù jǐn bāo hán fú hé lián jiē tiáo jiàn de xíng, ér qiě hái bāo kuò zuǒ biǎo ( zuǒ wài lián jiē shí )、 yòu biǎo ( yòu wài lián jiē shí ) huò liǎng gè biān jiē biǎo ( quán wài lián jiē ) zhōng de suǒ yòu shù jù xíng。 rú xià miàn shǐ yòng zuǒ wài lián jiē jiāng lùn tán nèi róng hé zuò zhě xìn xī lián jiē qǐ lái:
SELECTa.*,b.*FROMluntanLEFTJOINusertableasb
ONa.username=b.username
xià miàn shǐ yòng quán wài lián jiē jiāng city biǎo zhōng de suǒ yòu zuò zhě yǐ jí user biǎo zhōng de suǒ yòu zuò zhě, yǐ jí tā men suǒ zài de chéng shì:
SELECTa.*,b.*
FROMcityasaFULLOUTERJOINuserasb
ONa.username=b.username
( sān ) jiāo chā lián jiē
jiāo chā lián jiē bù dài WHERE zǐ jù, tā fǎn huí bèi lián jiē de liǎng gè biǎo suǒ yòu shù jù xíng de dí kǎ 'ěr jī, fǎn huí dào jiēguǒ jí hé zhōng de shù jù xíng shù děng yú dì yī gè biǎo zhōng fú hé chá xún tiáo jiàn de shù jù xíng shù chéng yǐ dì 'èr gè biǎo zhōng fú hé chá xún tiáo jiàn de shù jù xíng shù。 lì, titles biǎo zhōng yòu 6 lèi tú shū, ér publishers biǎo zhōng yòu 8 jiā chū bǎn shè, zé xià liè jiāo chā lián jiē jiǎn suǒ dào de jì lù shù jiāng děng yú 6*8=48 xíng。
SELECTtype,pub_name
FROMtitlesCROSSJOINpublishers
ORDERBYtype
[Post=0][/Post] | | oracle | shù jù kù | zhào míng | bǎi kē cí diǎn | HID | chéng xù | gòng yòng tǐ | Transact | kōng jiān jì shù | Server | chá xún | jì suàn jī | hù lián wǎng | suō xiě | tú shū | sql&a=0&tc=&g=1"> gèng duō jiēguǒ ... |
|
|
|