数据库 MySQL整理

这篇博客详细介绍了MySQL数据库的基础操作,包括连接、创建/删除数据库、表的增删改查,以及事务、视图、索引的概念和使用。同时,深入探讨了JDBC的工作原理,讲解了JDBC API的主要组件及访问数据库的步骤,并提供了代码示例。
摘要由CSDN通过智能技术生成
一.数据库基础

1.连接MySQL
mysql –h服务器主机地址 –u 用户名 –p密码
2.创建数据库
CREATE DATABASE 数据库名;
3.查询数据库列表
SHOW databases;
4.选择数据库
USE 数据库名;
5.删除数据库
DROP DATABASE 数据库名;
6.表-增删改查(添加主/外键)
CREATE TABLE [IF NOT EXISTS] 表名 (
字段1 数据类型 [字段属性|约束][索引][注释],
……
字段n 数据类型 [字段属性|约束][索引][注释]
)[表类型][表字符集][注释];
在这里插入图片描述
7.数据-增删改查
在这里插入图片描述
在这里插入图片描述
8.查询

查询  select
1112	select *from
	select st.name,st.sex  from student st
	select st.name as '姓名',st.sex as '性别' from student st

单个条件查询
	查询姓名为张三
	select *from student where name='张三'
	查询学号为3的学生
	select *from student where id=3

多个条件查询
	并且 AND
	查询 姓名为王五 且 性别 为女
	select *from student where name='王五' and sex='女'or 
  查询 性别为男  或者 年级编号为2
	SELECT * from student where sex='男'  or gid=2
	某个范围之间  
	1. 运算符 and
	查询 生日在2000-01-012018-12-04
	select *from student where birthday>='2000-01-01'  and birthday<='2018-12-04'  
	2.between and
	select *from student where birthday between '2000-01-01' and '2018-12-04'

	
	select * from student where id in(1,3,5,7) 

模糊查询 LIKE
 
	select *from student where name like '%李%'
	
	
-- 	select *from student where name like "%"'李'"%"


	查询 显示3行的信息  
	select *from student limit 3


分页查询  limit ?,?    0,2
	?	(页数-1)*行数  0*2=0  | 2-1=1 1*2=2 | 3-1=2 2*2=4 | 4-1=3 3*2=6
	? 行数        2
	select *from student limit 6,2

查询某个为null的列  is
	
		select *from student where gid is null;
		select *from student where gid is not null;

排序查询 order by   正序 asc    倒序 desc

	查询学号 倒序
	select * from student order by id asc
	
查询年级编号为2   按照生日从大到小排序
	select * from student where gid=2 order by birthday asc

查询年级编号 倒序 再id 倒序

	select *from student order by gid desc,id desc

9.联合查询

联合查询 (存在关系的表组合在进行查询)
		内联合   !!!!
    外联合  
						左外联合
						右外联合


内联合  特点:查询主键和外键相对应的数据

1.查询学生的信息  
		学号  姓名  性别  生日  年级名称
	select s.name,s.sex,s.birthday,g.gradename from student s,grade g 
	where s.gid=g.gid



2. 重点!!!!  语法 : 主|从表  inner join|从表  on|外键=|外键
	
	select s.name,s.sex,s.birthday,g.gradename 
	from student s INNER JOIN grade g on s.gid=g.gid


练习:

	1.查询s1年级下的学生 

		SELECT s.name,s.sex,s.birthday,g.gradename FROM 
		student s  INNER JOIN grade g on s.gid=g.gid
		where g.gradename='s1';

	
	2.查询s1年级下 性别为男 的学生

		SELECT s.name,s.sex,s.birthday,g.gradename FROM 
		student s  INNER JOIN grade g on s.gid=g.gid
		where g.gradename='s1' and s.sex='男';


	3.查询 s1年级下  生日最大 的学生

		select s.name,s.sex,s.birthday,g.gradename 
		from student s INNER JOIN grade g on s.gid=g.gid
		where g.gradename='s1'
		ORDER BY s.birthday ASC
		LIMIT 1	
		

	4.查询 每个年级的人数  ,显示的信息
		年级名称   人数
		select g.gradename,count(1) 
		FROM	student s INNER JOIN grade g on s.gid=g.gid
		GROUP BY g.gradename

	5.查询 s2年级的 男女人数

		select s.sex,COUNT(1) FROM student s INNER JOIN grade g
		on s.gid=g.gid
		where g.gradename='s2'
		GROUP BY s.sex
	
	6.查询s2年级中 性别人数>=2人的信息

		select s.sex,COUNT(1) FROM student s INNER JOIN grade g
		on s.gid=g.gid
		where g.gradename='s2'
		GROUP BY s.sex
		HAVING COUNT(1)>=1






外联合   
	
	左外联合 left outer join 可以缩写为 left join
	特点:显示 左边的所有信息,并把右表中符合条件的加到 显示的表中 
						右边中不符合条件,不会在表中显示 并且以null表示

	SELECT * from student stu  left outer join   grade g   on g.gid=stu.gid

	右外联合  right outer join 可以缩写为 right join
				显示 右边的所有信息,并把左表中符合条件的加到 显示的表中  
						右边中不符合条件,不会在表中显示 并且以null表示


	SELECT * from  student stu   right outer join  grade g   on g.gid=stu.gid

10.子查询

子查询  selectfrom!! 必须加上别名  where
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值