DBMS:数据库管理系统
Not Only SQL非关系型数据库
tab键上面的键
数据库引擎
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、truncate不能进行回滚操作。
3、truncate不触发任何delete触发器。
5、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。
6、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
小结:
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。如果DELETE不加WHERE子句, DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。如果一个表中有自增字段,使用TRUNCATE TABLE和没有WHERE子句的DELETE删除所有记录后,这个自增字段将起始值恢复成1.如果你不想这样做的话,可以在DELETE语句中加上永真的WHERE,如WHERE 1或WHERE true。DELETE FROM table1 WHERE 1;
在两张表中查询sudentNo,StudentName,SubjectNo,StudentResult:表连接查询
连接查询:join。。。on。。。
等值查询:where
left join以左表为基准,right join以右表为基准
自连接淘淘数据库练习代码:
SELECT tb1.`name` AS 'name1',tb2.`name` AS 'name2'
FROM `tb_content_category` AS tb1
INNER JOIN `tb_content_category` AS tb2
ON tb1.id = tb2.parent_id
sql语句的执行过程是:
from–>where–>group by -->having --> select— >order by;
聚合函数针对结果集,where并不是在结果集后运行。
having针对结果集,把聚合函数放在having之后。
where中不能使用聚合函数,要在having中使用
数据库中钱的类型用decimal
第二范式和第三范式的区别
第二范式指的是非主键列必须全部依赖于主键,但是一张表中可能存在一个以上主键可能存在传递依赖
第三范式就是消除传递依赖,举个栗子,学生表中有两列字段是班主任和班主任联系方式,这两列字段全部依赖于学生学号,但是班主任联系方式这个字段是先依赖于班主任,再依赖于所管理学生,这就是传递依赖,第三范式的含义便是消除这种传递依赖
增、删、改的操作全部都是用的statement对象的executeUpdate()方法
查询使用executeQuery()方法