11、truncate和delete的區(qū)別维雇?
1. truncate在各種表上無論是大的還是小的都非嘲0龋快派任。如果有rollback命令delete將被撤銷砸逊,而truncate則不會被撤銷。
2. truncate是一個DDL語言而delete是DML語句掌逛,向其他所有的DDL語言一樣师逸,他將被隱式提交,不能對truncate使用rollback命令豆混。
3. truncate將重新設(shè)置高水平線和所有的索引篓像。在對整個表和索引進(jìn)行完全瀏覽時,經(jīng)過truncate操作后的表比delete操作后的表要快得多崖叫。
4. truncate不能觸發(fā)觸發(fā)器遗淳,delete會觸發(fā)觸發(fā)器。
5. truncate當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小心傀,而delete則不能。
12拆讯、說出一些數(shù)據(jù)庫優(yōu)化方面的經(jīng)驗(yàn)脂男?
1.用PreparedStatement 一般來說比Statement性能高
2.有外鍵約束會影響插入和刪除性能养叛,如果程序能夠保證數(shù)據(jù)的完整性,那在設(shè)計數(shù)據(jù)庫時就去掉外鍵宰翅。
3.使用子查詢語句替代關(guān)聯(lián)查詢弃甥,以提高查詢效率。
4.表中允許適當(dāng)冗余汁讼,譬如淆攻,主題帖的回復(fù)數(shù)量和最后回復(fù)時間等
將姓名和密碼單獨(dú)從用戶表中獨(dú)立出來。
5.sql語句全部大寫嘿架,特別是列名和表名都大寫瓶珊。
19、簡要介紹SQL語言的特點(diǎn)耸彪?
SQL(Structured Query Language,即結(jié)構(gòu)化查詢語言伞芹,又簡稱SQL語言)在關(guān)系型數(shù)據(jù)庫中的地位就猶如英語在世界上的地位一樣,它是數(shù)據(jù)庫系統(tǒng)的通用語言蝉娜,
1.SQL結(jié)構(gòu)比較簡單唱较,其命令總數(shù)不超過30個
2.SQL語句對大小寫不敏感,但其關(guān)鍵詞常用大寫來表示召川。
3.SQL語言簡單易學(xué)南缓、風(fēng)格統(tǒng)一.
20、簡要介紹數(shù)據(jù)庫表之間的連接類型及其特點(diǎn)荧呐?
連接類型可分為三種:內(nèi)連接西乖、外連接和交叉連接。
內(nèi)連接(INNER JOIN)使用比較運(yùn)算符進(jìn)行表間某(些)列數(shù)據(jù)的比較操作坛增,并列出這些表中與連接條件相匹配的數(shù)據(jù)行获雕。根據(jù)所使用的比較方式不同,內(nèi)連接又分為等值連接收捣、自然連接和不等連接三種届案。
外連接分為左外連接(LEFT OUTER JOIN或LEFT JOIN)、右外連接(RIGHT OUTER JOIN或RIGHT JOIN)和全外連接(FULL OUTER JOIN或FULL JOIN)三種罢艾。與內(nèi)連接不同的是楣颠,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)咐蚯、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數(shù)據(jù)行童漩。
交叉連接(CROSS JOIN)沒有WHERE 子句,它返回連接表中所有數(shù)據(jù)行的笛卡爾積春锋,其結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)矫膨。