2021-01-15
11、truncate和delete的区别?
1. truncate在各种表上无论是大的还是小的都非常快。如果有rollback命令delete将被撤销,而truncate则不会被撤销。
2. truncate是一个DDL语言而delete是DML语句,向其他所有的DDL语言一样,他将被隐式提交,不能对truncate使用rollback命令。
3. truncate将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过truncate操作后的表比delete操作后的表要快得多。
4. truncate不能触发触发器,delete会触发触发器。
5. truncate当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
12、说出一些数据库优化方面的经验?
1.用PreparedStatement 一般来说比Statement性能高
2.有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。
3.使用子查询语句替代关联查询,以提高查询效率。
4.表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等
将姓名和密码单独从用户表中独立出来。
5.sql语句全部大写,特别是列名和表名都大写。
19、简要介绍SQL语言的特点?
SQL(Structured Query Language,即结构化查询语言,又简称SQL语言)在关系型数据库中的地位就犹如英语在世界上的地位一样,它是数据库系统的通用语言,
1.SQL结构比较简单,其命令总数不超过30个
2.SQL语句对大小写不敏感,但其关键词常用大写来表示。
3.SQL语言简单易学、风格统一.
20、简要介绍数据库表之间的连接类型及其特点?
连接类型可分为三种:内连接、外连接和交叉连接。
内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。
外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。
交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。