MySQL 以及 maven 项目 11_23
关于MySQL的建表语句
前情提要 : 插入 查询 修改 删除,前面已经将最为重要的插入和查询学完。今天的主要学习剩下的修改表语句 以及删除语句。(其中修改和删除表的语句都是不可逆的),因此在进行上述的操作时应该尽可能的谨慎操作。
1.创建新表。
创建 db_11_23.exam_result. 使用 (like)语句创建
create table db_11_23.exam_result like db _11_22.exam_result;(在创建完成之后应该将此表所在的库设置为Default,否则在进行其他后续的操作时应该带上库名 )
2.赋值
insert into db_11_23.exam_result select* from db_11_22.exam_result;
--select :投影 以字段进行选择(列); --where : 选择 选择行; --order by :排序 --若要使用 limit ,则必须带上 order by ; 否则结果就是在一个无序的环境之中进行筛选; --limit : 从查询的结果之中进一步过滤出一个范围; --limit n offset s ; 从结果的第s条时(其中s为下标,从0开始),保留n条数据 --此时将结果看作为数组,那么得到的结果就是[s]到[s+n - 1],这种就是以一种第固定页数的方式 进行排序,(offset 翻译为 :偏移); select* from exam_result order by id limit 4 offset 1; --假若 offset +limit 的长度大于结果 则给剩下的所有值。 --limit 的两个变形用法 select * from exam_result order by id limit 3; --视为 limit 3 offset 0; --最大的功能就是做分页功能(pegnation); --例如 select * from exam_result order by id limit 20 offset 0 ; select * from exam_result order by id limit 20 offset 20 ; -- 而按照时间线进行刷新的 TimeLine (在微博之中的应用); select * from exam_result order by id > 0 limit 20 offset 0 ; --在上一次所拿到的数据中取出id最大的一条; select * from exam_result order by id > 21 limit 20 offset 0 ; select * from exam_result order by id > 41 limit 20 offset 0 ;
--更新操作
update exam_result set chinese = 10 , math = 20,english = 30 where id between 1 and 3; update exam_result set math = math / 2 where not (id between 1 and 3); --修改的时候以原来的值作为基础进行修改 not ( ..... ) 除什么以外的所有值 --与 java 不同 不支持 math -= 10 ;只能 math = math + 10 ; --操作不可逆
--删除操作(delete)
数据库中的所有操作都是以 一行行的记录为基本的单位
delete from exam_result where id = 2 ; delete from exam_result where name = '孙%'; -- 以'孙'开头的汉子。不管几位都可以 delete from exam_result where name = '孙__';--则是以孙开头 其后只能跟两个字段的值; 不加 where 条件,则意味着将全表的数据进行删除; -- 删除的注意事项 -- 1.可以使用pk删除的尽量使用:主键不会重复,所以使用主键是最精确的 -- 2.从数据的安全角度,关键数据做好备份
对比delete 与 truncate 的区别
--delete 只是对表内的数据进行操作删除操作 --truncate exam_result;\\ -- 又称为是截断表 ;DDL操作,针对表的结构操作,视为把表的结构复位(reset); -- 此时在进行数据的插入则不能成功 -- truncate 和 delete 一样,也是谨慎使用 -- 如果我们已经明确要把表清空了,使用 truncate 会比 delete from 来的速度快 -- truncate 是时间复杂度是 O(1) :只需要动表结构,不管多少条数据 -- delete from 的时间复杂度是 O(n) :挨个记录遍历,删除
关于异常
select :
1.对于列的投影
2.对于任意的表达式,都可以给出别名。
3.distinct 是将 重复的数据进行折叠
select .. from ... where(对于其他的行的选择) ... order by .... limit ...;
from 查询源 :
表名 其中表名也可以进行 简写
例如: exam_result AS er —— 代表将er作为表的别名。
where : 让查询源中的每条记录,都经过where 指定为布尔表达式,然后保留为真的结果
order by :使得查询出来的数据按照某一字段顺序或者倒叙排列
,默认是升序(asc) 降序 (desc) order by 可以使用字段的别名
-- update 语法 update x set x where x ;
从删库到跑路 !!!! 一定要谨慎
————————————————————————————————————————
在Java之中的程序 : 真正干活的是一条条的语句;语句以方法为单位进行组织;方法以类为单位进行组织<-java 中的第一公民;类以包为单位;
在一个可以运行的程序之中所有的类 是由我们写的类 和 其他的类共同组成。
之前写的程序中一部分是我们写的 一部分是Java官方写的 类
而在使用第三方的库的操作的时候,比较麻烦
因此要学会使用 maven apache开源组织 (当前使用的最多)
maven的使用:
开发稍微复杂的项目时
1.该应用属于哪个组织 groupld
2.该应用的名称 artifactld
3.该应用的版本 1.0-snapshot (快照:内部的开发版本,不对外)
最终,应用的全名:
groupld.artifactld.1.0-snapshot
我们在创建 maven 项目时也会有名称
建议只取到 名称即可 不需要进行版本的修改
————————————————————————————————————————
XML: eXtension Markup Lauguage 扩展标记语言
例如:
其中值得注意的是 pom.xml
project Object Model
项目 对象 模型