mysql的安装:https://baijiahao.baidu.com/s?id=1629661608981614271&wfr=spider&for=pc
1.sql的增删改查
增
insert into 表名 values (#{值一},#{值二}...)
insert into 表名(列1, 列2,...)values (?,?)
删
delete from 表名 where 列名=#{值}
改
Update 表名 set 列名 =#{值} ,列名=#{值}…where 列名=#{值};
Update 表名 set 列名 = 值,列名=值 //修改所有
查
select * from 表
删除表(主键递增)
DELETE FROM table1
TRUNCATE TABLE table1
MySQL删除记录,对自增主键ID进行重新排序(id还是排在第一个字段)
#删除id列
alter table 表 drop id;
#新增id列,设为主键,并自增
ALTER TABLE 表 ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;
自增id删除数据后,在写入数据时则会跳过被删除的id
ALTER TABLE 表名 AUTO_INCREMENT = 1
自增id
<insert id="insertUserInfo" parameterType="com.example.highcitedselect3.entity.UserInfo" useGeneratedKeys="true"
keyProperty="id">
insert into userinfo(<include refid="zd"/>)
values
(#{id},#{paperTitle},#{journalTitle},#{doi},#{chubanyear},#{cishu},#{email},#{selecttime},#{choosedomain})
</insert>
批量删
<delete id="huiYiDeletList" parameterType="int[]">
<!-- delete from emp where empno in(7789,7790) -->
<!-- forEach : 用来循环 collection : 用来指定循环的数据的类型 可以填的值有:array,list,map item
: 循环中为每个循环的数据指定一个别名 index : 循环中循环的下标 open : 开始 close : 结束 separator : 数组中元素之间的分隔符 -->
delete from huiyi where id in
<foreach collection="array" item="id" index="no" open="("
separator="," close=")">
#{id}
</foreach>
</delete>
批量增加
(List)
数据库是自增id,这里就不要写id了
<insert id="save" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List">
insert into user(
//id 写上会报错
user_name,
phone,
password,
salt
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
// #{id} 写上会报错
#{item.username},
#{item.phone},
#{item.password},
#{item.salt}
)
</foreach>
</insert>
(Map)
<!--批量新增-->
<insert id="insertBatch" parameterType="java.util.Map">
insert into video_ed (video_id,user_id)
values
<foreach collection="map" item="value" index="key" separator=",">
(#{key}, #{value})
</foreach>
</insert>
2.内置函数
sysdate :展示系统当前时间
select sysdate from dual;
to_char(日期,‘日期格式’):将(系统的当前)时间 按照指定格式要求展示
select to_char(sysdate,'YYYY-MM-dd HH:MI:SS') from dual;
to_date(‘字符串’,'日期格式) 数据插入
select to_date('2019-01-01','YYYY-MM-dd') from dual
3.组函数(聚合函数)
针对一组数据进行操作的函数.
Min(列名) 最小
Max(列名) 最大
Avg(列名) 平均
Sum(列名) 和
Count(列名) 条数 不会去统计内容为null的. 支持 *
4.Having关键字
分组(group by)之后的条件判断,如果你的条件判断涉及到组函数使用,则使用having.
5.SQL 关键字顺序:
Select …* … from ... 表 … where ... group by ... having ... order by
注意:
1.非group by 当中的列名 不可以书写在Select关键字之后.
2.组函数 可以直接书写在Select之后.
3.内置函数也可以书写
6.模糊查询:
select * from sci where 字段like concat('%',#{前台输入的内容},'%')