1.数据库的概念
1.1什么是数据库?
储存数据,管理数据的仓库。
1.2数据库的分类:
常见的数据库分为:
- 关系型数据库, Oracle、MySQL、SQLServer、Access
- 非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase
【关系型数据库】与【非关系型数据库】的关系:
早期发展的数据库建立在数据的紧密关系基础上(如:母女关系),我们称其为关系型数据库;
现今数据库建立在数据的松散关系基础上(如:中国人和印度人、视频、音频),我们称其为非关系型数据库nosql(not only sql)。
1.3连接数据库:
import java.util.*;
import java.sql.*;
import java.sql.*;
public class ConnectDatabase {
public static void main(String[] args) {
Connection connection=null;
try {
//加载驱动:
Class.forName("com.hxtt.sql.access.AccessDriver");
//建立连接:
connection = DriverManager.getConnection("jdbc:Access:///d:/student.accdb");
//这里的数据库存放在D盘
}catch(Exception e) {
System.out.println(e.toString());
}
if(connection!=null)
System.out.println("数据库连接成功!");
else
System.out.println("数据库连接失败!");
}
}
step1:加载JDBC驱动:
加载驱动JDBC-MySQLl连接器的代码:
class.forName("驱动的名字(string)");
例如:
class.forName("com.mysql.cj.jdbc.Driver“);
try(class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
Eg:加载驱动Sql access数据库的代码:
class.forName("com.hxtt.sql.access.AccessDriver");
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
}catch(Exception e) {
}
step2.建立连接
一般通过connect =DriverManager.getConnection(……)方法实现,
connect =DriverManager.getConnection(url,username,passwd)
url表示连接数据库的字符串,usermame表示连接数据库的用户名,passwd表示连接数据库的密码。
connect=Diverranager.getConnection("jdbc:Access///地址”);
step3.创建statement对象(数据操作的基础对象)
Statement=connect.createStatement( ).
step4.执行sql语句,数据库操作:加、删、查、改
1) 数据查询,返回一个结果集对象(按行访问的二维表格)
resultSet =statement.executeQuery(String sql);(2)添加纪录、删除记录、更新数据(返回受影响的行数)
int rows=excuteUpdate(String sql)
step5 .对象关闭
resultSet.close(); statement.close(); connect.close();
1.4Mysql数据库
1.4.1 Mysql数据库的作用:
- mysql服务端,它来处理具体数据维护,保存磁盘
- mysql客户端,CRUD新增,修改,删除,查询
1.4.2 Mysql的数据存放位置:
在MySQL的配置文件my.ini中会进行默认配置
1.4.3Mysql的连接方式:
将DOS命令窗口当做Mysql的客户端连接并操作Mysql数据库:
登录命令:
mysql -u用户名 -p密码
mysql -u用户名 -p
密码
mysql -h主机地址 -u用户名 -p密码
mysql -h主机地址 -u用户名 -p
密码
登录的方式有很多种,使用任意一种即可.
用户名(根用户): root
密码(根密码): root
2.sql语句⭐️
2.1.什么是sql语句?
是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
注意⚠️:sql的关键字不区别大小写
2.2.sql语言的分类
- DML(Data Manipulation Language)数据操纵语言. 如:insert,delete,update,select(插入、删除、修改、检索)简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete
- DDL(Data Definition Language)数据库定义语言. 如:create table之类
- DCL(Data Control Language)数据库控制语言. 如:grant、deny、revoke等,只有管理员才有相应的权限
- DQL(Data Query Language)数据库查询语言. 如: select 语法
2.3常见操作语言
2.3.1数据库的常见操作
查询:show databases
新增:create database 库名
删除:drop database 库名
修改:alter database 库名
2.3.2表的常见操作
创建表 :create table 表名
(字段名1 字段类型1(字段长度),字段2,字段3…);
删除表 : drop table 表名
修改表 :给STU表添加classname列
alter table STU add (classname varchar(100));
查看表:show tables;
描述表:desc tb_door ;
修改列名:修改 stu 表的 gender 列名为 sex
alter table stu change gender sex ;删除列:删除 stu 表的 classname 列
alter table stu drop classname;修改表名称:修改 stu 表名称为 student
alter table stu rename to student;
2.3.3表里的记录的常见操作
新增:insert into 表名 values(‘字段1的值’ , “字段2的值” , …)
insert into tb_door values(10000,'first',"010-666888",'bj');
删除:delete from 表名
mysql> delete from tb_door;
mysql> select * from tb_door;
修改:update 表名 set 字段名=字段的新值
mysql> update tb_door set addr='shanghai';
查询:select 字段名 from 表名
select id from tb_door; --只查id列的值
select id,addr from tb_door; --查id和addr列的值
select * from tb_door; --查所有列的值 -- 低效
2.4条件查询数据
select 字段 from 表名 where 条件;
- select * from 表名;
- select 列名1,列名2,…… from 表名 [where 条件] [order by 列名[ASC|DESC]];
- select 列名1,count(*) [as 别名] from 表名 [where 条件] [group by 列名1 ];
- select 统计函数[as 别名] from 表名 [where 条件] ;
- (统计数据:count(*)数目,sum(列名),max(列名))
2.5插入记录
1. insert into 表名 (列名表) values (值表);
注意:值表中的值与列名表中的列名顺序一一对应
2.insert into 表名 values (值表);
默认插入全部列
2.6.更新数据:
1.update 表名 set 列名1=表达式1 [,列名2=表达式2, …] [where 条件 ]
2.7.删除数据:
1. delete from 表名 [WHERE 条件