Java 3-2、MySQL语句及高级用法

西西老师博客
菜鸟教程

一、符号

注释:
使用双中划线,-- xxx

通配符:
一般用作条件,查询或修改某字段对应的值

  • %:占位符,代表任意长度,任意内容;举例:like %xxx%

  • _:占位符,代表一个长度,任意内容;举例:like x_

  • like:模糊匹配;举例:

    • like ‘s%’:模糊匹配以s开头任意长度、任意内容的值
    • like ‘s_’:模糊匹配s后一个长度、任意内容的值
    • like ‘%s%’:模糊匹配s两头任意长度、任意内容的值
  • or:两个以上或条件;举例:name = ‘张三’ or age = 18

  • and:两个以上与条件;举例:name = ‘张三’ and age = 18

  • in:两个以上包含条件;举例:age in(1,3,6)

二、查询:SELECT

  • 常用基本查询
select * from 表名
select 字段1,字段2... from 表名
  • where:查询条件约束
select * from 表名 where 字段名=‘值’
  • limit:查询个数约束(分页)
select * from 表名 limit 2

limit 2:查询count限制n数据
limit 1,2:查询下标1~2的数据
limit 0,-1:查询所有数据,高版本已不可用
  • count:表的行数查询
select count(*) from 表名
  • distinct:不重复的行数查询(去重查询)
-- 写法1
select count(distinct 字段名) from 表名

-- 写法2,省略count()
select distinct 字段名 from 表名
  • length:查询约束长度

value是中文的情况下查询时需注意:

  • 在utf-8编码下,一个汉字占3个长度;

  • 在gbk编码下,一个汉字占2个长度;

  • 在Oracle的gbk编码下,一个汉字占1个长度

-- 如果值是纯中文,以下语句查询到的会是2个汉字以上的条件
select * from 表名 where length(字段名) >= 6

-- aCHAR_LENGTH() 能够做到一个汉字一个字符,以下语句查询到的是6个汉字或字符以上的条件
select * from 表名 where char_length(字段名) >= 6

三、插入:INSERT INTO

注意:不可空字段是必传的

  • 字段名与值一一对应
insert into 表名(字段1, 字段2 ...) value(字段1值, 字段2...)
  • 无关字段名,必须传入所有字段
insert into 表名 value(字段1值,字段2...)

四、修改:UPDATE

  • 无条件修改所有该字段的值
update 表名 set 字段 =
  • 加条件修改某字段的值
update 表名 set 字段1=字段1where 字段2=字段2or 字段3=字段3

五、删除:DELETE

  • 清空表
delete from 表名
  • 加条件删除字段
delete from 表名 where 字段1=字段1

六、高级用法

一、别名:AS
别名不修改原字段,只是在查询结果中显示,一旦拥有别名,必须使用 别名.字段

-- 表别名
select 字段 from 表名 as xxx
select xxx.字段1, xxx.字段2 from 表名 as xxx

-- 字段别名
select 字段1 as 别名1, 字段2 别名2 from 表名

二、时间

-- yyyy-MM-dd HH:mm:ss
select NOW()
select SYSDATE()

-- yyyy-MM-dd
select CURRENT_DATE

三、排序:ORDER BY
(asc是升序(默认),desc是降序)

-- 升序
select 字段 from 表名 order by 字段条件

-- 降序
select 字段 from 表名 order by 字段条件 desc

四、分组:GROUP BY

select 字段 from 表名 group by 字段条件

五、区间:BETWEEN、OR、IN

-- BETWEEN,查询区间的值
select 字段 from 表名 where 字段条件 betweenstart值’ ANDend值’

-- OR,查询符合的其中一个值 
select 字段 from 表名 where 字段1=字段1or 字段2=字段2-- IN,查询包含的值
select 字段 from 表名 where 字段条件 in(1, 3, 5)

六、聚合函数

  • SUM:总数
select sum(字段) from 表名
  • AVG:平均数
select avg(字段) from 表名
  • MAX:最大值
select max(字段) from 表名
  • MIN:最小值
select min(字段) from 表名

七、连表查询

内连接:单表查询

外连接:多表查询

  • where
-- 内连接
select * from a表名 where id = 1

-- 外连接
select * from a表名, b表名 
where a.id = b.aid
  • inner join:相连的表均有同一个字段,返回结果

使用场景:对所有数据的完整性要求较高,不允许出现空数据时使用

举例:a(1、2、3、4) b(1、3、4、5),结果(1、3、4)

select * from a表名 
inner join b表名
on a.id = b.aid
  • left join:罗列左表所有数据,右表关联数据显示,未关联数据显示NULL

使用场景:以父级表id,查询每条数据所关联的每一条子级数据,子级无数据显示NULL

举例:a(1、2、3、4) b(1、3、4、5),结果(1、2、3、4)

select * from a表名 
left join b表名
on a.id = b.aid
  • right join:罗列→表所有数据,左表关联数据显示,未关联数据显示NULL

使用场景:快速检索与上一级表关联脱钩的数据

举例:a(1、2、3、4) b(1、3、4、5),结果(1、3、4、5)

select * from a表名 
right join b表名
on a.id = b.aid

tips:

  1. 不允许有遗漏数据时,不可使用inner join
  2. 别名不修改原字段,只是在查询结果中显示,一旦拥有别名,必须使用 别名.字段
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
mysql-connector-javaJava语言操作MySQL数据库的驱动程序。您可以按照以下步骤使用mysql-connector-java: 1. 下载mysql-connector-java jar文件,可以从MySQL官网或Maven仓库中下载。 2. 将mysql-connector-java jar文件添加到Java项目中的classpath中。您可以手动将文件复制到项目的lib目录中,或者使用构建工具(如Maven)自动下载和添加依赖项。 3. 在Java代码中使用如下的代码加载并连接MySQL数据库: ```java import java.sql.*; public class MySQLConnector { public static void main(String[] args) { Connection conn = null; try { // 加载mysql-connector-java驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 String dbUrl = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "mypassword"; conn = DriverManager.getConnection(dbUrl, user, password); // 执行SQL语句 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable"); // 处理查询结果 while (rs.next()) { System.out.println(rs.getString("mycolumn")); } // 关闭数据库连接 rs.close(); stmt.close(); conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } } } ``` 在上面的代码中,我们首先通过Class.forName()方法加载mysql-connector-java驱动程序。然后,我们使用DriverManager.getConnection()方法建立与MySQL数据库的连接。接下来,我们创建一个Statement对象并使用它执行查询。最后,我们处理查询结果并关闭数据库连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯基爱蹦跶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值