1、DQL之连接查询
- 主表和从表(目前理解)
- 主表:需要显示信息的表
- 从表:主表中有的某个字段,从表有的才会显示
- 内联查询
select * from 表1,表2 where 条件 -- SQL标准格式 select * from 表1, inner join 表2 on 表1.字段i = 表2.字段i -- 例如,展示一个学生和在哪个班级的信息 select * from student s inner join class c on s.cid = c.cid
- 外连接(左连接、右连接)
发生在两个或者两个以上的表之间; 一定有主外键关系,才能进行连接查询;-- 左连接语法 select * from 表1 left join 表2 on 表1.字段i = 表2.字段i --(这里表1是主表,表2是从表) -- 右连接语法 select * from 表1 right join 表2 on 表1.字段i = 表2.字段i -- (这里表2是主表,表1是从表)
2、DQL之子查询
- 子查询
-- 语法类似 select * from 表1 where 字段 > (select * from 表1 where 字段=值) -- 例子,查询所有工资高于JONES的工资的员工 select * from emp where sal > (select sal * from emp where ename='JONES')
3、MySQL数据类型(了解)
* varchar -- 字符串
* tinyint -- 占1个字节,类似java中的byte
* smallint -- 占2个字节,类似java中的short
* mediumint -- 3个字节的整数
* int -- 占四个字节的整数,类似java中的int
* bigint --占八个字节的整数,类似java中的long
4、补充
if(ex1,ex2,ex3)
select if(条件,真返回,假返回) from test;
select name,if(sex=0,'女','男') as sex from student;
-----------------------------------------------------
case 字段
when 值 then 结果
when 值 then 结果
else 结果
end
SELECT
s.sname '姓名',
CASE s.gender
WHEN 'male' THEN '男'
WHEN 'female' THEN '女'
ELSE '保密'
END '性别'
FROM stu s
-- --------
nullif()
-- -----------------------------------
ifnull(字段,默认值)
select ifnull(age,0) from test;
----------------------------------------
isnull(字段) 如果字段为null ,返回1 ,否则返回0;
SELECT ISNULL(age) FROM stu WHERE sname='xxx';
5、JDBC(入门)
- 概念
DriverManager: 此类管理数据库驱动程序列表。使用通信协议将来自java应用程序的连接请求与适 当的数据库驱动程序匹配。 Driver:此接口处理与数据库服务器的通信,我们很少会直接与Driver对象进行交互。而是使用 DriverManager对象来管理这种类型的对象。 Connection:该接口具有用于连接数据库的所有方法。连接对象表示通信上下文,数据库的所有通信 仅通过连接对象。 Statement:使用从此接口创建的对象将SQL语句提交到数据库。用于对数据库进行通用访问 。在运行时使用静态SQL语句时很有用。Statement接口不能接受参数。 PreparedStatement 多次使用SQL语句时使用。PreparedStatement接口在运行时接 受输入参数。 ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一个迭 代器,允许我们移动其数据。 SQLException:此类处理数据库应用程序中发生的任何异常。
5.1、JDBC六部曲
- 1、导入jar包(eclipse、idea自行百度)
- 2、加载驱动
Class.forName(“com.mysql.jdbc.Driver”);
- 3、获取数据库连接
DriverManager.getConnection(url,name,pass);
- 4、获取操作数据的对象
1、connection.createStatement();
2、connection.prepareStatement(sql); - 5、执行SQL语句
1、int executeUpdate(String SQL)
2、int executeUpdate() - 6、关闭连接
createStatement.close(); //关闭操作数据库的对象
connection.close(); //关闭与数据库的连接