个人数据库基础笔记,将各类数据库从环境搭建到使用简单回忆整理,方便自己回顾知识点,也同大家分享下:

关系型数据库(一般基于Jdbc和Sql语法):Mysql   、Oracle 、SqlServer

非关系型数据库(基于<key , value>结构):Redis 、Memcached 、mongoDB

相关文件个人网盘下载地址  yun.zyp168.cn  (亦可官网自己下载),图片看不清可以右击在新标签打开图片,所有cmd下操作建议用管理员模式;

cmd常用命令:

服务管理   net  start service  ;       net  stop  service ;    sc config  service   start= disabled/ auto / demand

端口进程管理  netstat -aon|findstr "80"   ;    tasklist|findstr "2448"    ;     taskkill /F /pid 1408;

Mysql环境搭建:

Mysql特点:

轻量级关系型数据库,免费,简单;默认端口3306,bin下主要常用指令程序 mysqld.exe  、MySQLInstanceConfig.exe  、mysql.exe,常用配置文件my.ini;常用用户root作为管理员,默认数据库有4个:information_schema   performance_schema   mysql   test  ; 常用图形界面工具 sqlyog ;

Mysql数据库常用概念:实例、数据库、表、行、列、主键、外键、自增长、更新、查询、Sql语句、索引;

核心服务:Mysql服务(必须)

Mysql登录:

Mysql   /bin文件下的常用操作指令:

mysql   -u root -p

mysqldump -h  127.0.0.1 -u root  -p  test  > d:\test.sql   导出

Mysql  登录后操作指令:

show databases;

use  databases;

show tables;

desc  mytable;

exit ;

drop table mytable;

truncate table mytable;

source d:\test.sql  ;导入

insert into mysql.user(Host,User,Password)  values("localhost","test",password("1234"));   创建用户
GRANT privileges(如select,insert,update,all等) ON  databasename.tablename(如test.*) TO  'username'@'host'    授权

Mysql   crud命令:

创建表单

DROP TABLE IF EXISTS `mytb`;
CREATE TABLE `mytb` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(10) DEFAULT NULL COMMENT '名称',
  `pid` int(11) DEFAULT NULL COMMENT '外键',
  PRIMARY KEY (`id`),
  KEY `FK_mytb_youtb` (`pid`),
  CONSTRAINT `FK_mytb_youtb` FOREIGN KEY (`pid`) REFERENCES `youtb` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

自增长的增加

INSERT INTO  mytb VALUES(NULL,"name",1);

分页

SELECT * FROM mytb LIMIT 0,2;

oracle环境搭建:(将两个压缩文件都解压到同一文件夹内,然后开始安装)(OracleEX试用版本占内存小,适合练习)

oracle数据库:商用收费的关系型数据库,默认端口1521;常用图形界面工具plsql ;

oracle数据库常用概念:实例     表空间   表  序列   sql  等;

核心服务: OracleOraDb11g_home1TNSListener  和  OracleServiceORCL (必须)

常用帐户 :管理员帐户sys/system(必须as sysdba登录)  普通用户scott

oracle登录如下:

Oracle数据库表、序列的创建:

Oracle常用指令:

创建临时表空间

create temporary tablespace Demo_temp 
tempfile 'D:\JavaTools\Oracle11g\tablespace\Demo_temp.dbf' 
size 5m  
autoextend on  
next 5m maxsize 50m  
extent management local;

grant connect,resource to scott ;

创建表空间

create tablespace Demo_date 
logging  
datafile 'D:\JavaTools\Oracle11g\tablespace\Demo_date.dbf' 
size 5m  
autoextend on  
next 5m maxsize 50m  
extent management local;

grant connect,resource to scott ;

重命名表空间

alter tablespace mytablespace_date rename to mynewtablespace_data

创建表

create table "ADMIN"
(
   id                 NUMBER(6)            not null,
   name               VARCHAR2(30)         not null,
   constraint PK_ADMIN primary key (id),

constraint AK_ADMIN unique (id,name)
) tablespace  Demo_date;

创建序列

create sequence seq_sysmsg start with 1 increment by 1 minvalue 1  ;

INSERT INTO ADMIN VALUES(SEQ_ADMIN.NEXTVAL,'ZHANG','Z','123','0',to_date('2015-05-01','yyyy-mm-dd'))

添加外键

ALTER TABLE ADMIN_ROLE  ADD CONSTRAINT FK_ADMIN FOREIGN KEY(ADMIN_ID) REFERENCES ADMIN(ID);

分页操作:

-- 方法一:效率最高
select * from (
-- 查询行号小于20的[表单信息]及[行号信息(外层需使用)]
select rownum as rn , cc.*
from Contract_Conten cc 
where rownum <= 10
-- 查询行号小于20的[表单信息]及[行号信息(外层需使用)]
) temp where temp.rn >=5 ;

-- 方法二:效率其次,易拼接
select * from (
select rownum as rn ,temp1.*  from
(select cc.* from Contract_Conten cc) temp1
 where  rownum <=10
) temp2 where temp2.rn >=5 ;

解锁scott帐户

SQL> ALTER USER scott ACCOUNT UNLOCK;
  SQL> ALTER USER scott IDENTIFIED BY tiger;

SqlServer数据库的环境搭建(SqlServerEX试用版占内存小,适合练习)

SqlServer是收费的关系型数据库,默认端口1433,其登录验证方式有两种:管理员sa帐号密码、本地计算机管理员帐号密码;

SqlServer常用概念:实例   sql    T-sql    表

建议使用自带图形工具SQL Server Management Studio进行操作:

常用命令:

-- 使用数据库,无需再用test.dbo.table_01
 use test
 -- 查看表结构
 exec sp_help table_01
 -- 查看所有数据库
 exec sp_databases
 -- 删除数据库
 drop database test
 -- 删除表
 drop table table_01
 truncate table table_01

-- 分页两种方法:

-- 查询第二页5*(2-1)=5
select top 5 * from table_01 where
id >(
select MAX(id) from 
(select top 5 id from table_01 order by id) as temp
)
order by id

-- 查询第三页5*(3-1)=10

select top 5 * from table_01 where
id not in (
select top 10 id from  table_01 order by id
)
order by id

三种关系型数据库比较:

Java中关系型数据库的增删改查基于JDBC和SQL语句,常用JdbcUtil封装类+properties文件作数据库连接处理,用JdbcTemplate封装类作CRUD操作,用JdbcMapper封装类实现ORM关系映射。

package com.zyp168.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*
 * 数据库访问JDBC工具类
 */
public class JdbcUtil {
// ---单例模式---

private static JdbcUtil jdbcUtil;
private static Properties properties = new Properties();
private static String jdbc_driver;
private static String jdbc_url;
private static String jdbc_user;
private static String jdbc_pwd;
//懒汉式-单例模式
private JdbcUtil() {

}
public static JdbcUtil getInstance() {
if (jdbcUtil == null) {
jdbcUtil = new JdbcUtil();
}
return jdbcUtil;

}
// ---静态代码块---
static {
InputStream inputStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("mysqlConfig.properties");
try {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
jdbc_driver = properties.getProperty("driver");
jdbc_url = properties.getProperty("url");
jdbc_user = properties.getProperty("user");
jdbc_pwd = properties.getProperty("pwd");
try {
Class.forName(jdbc_driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

// ---获取连接---
public Connection getConnection() {
Connection connection = null;
try {

connection = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_pwd);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;

}

// ---关闭资源---
public void close(Connection connection, Statement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}

package com.zyp168.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/*
 * Jdbc的模板:提取出更新和查询方法封装
 */
public class JdbcTemplate {
// 单例模式:static修饰的字段可以直接建立引导关系(不需要使用new其类再调用,可以直接用类.方法的形式调用),且只会被创建一次,位于gc根目录不被回收,会造成内存泄露
private static JdbcTemplate jdbcTemplate;

private JdbcTemplate() {
// 默认构造方法
}

public static JdbcTemplate getInstance() {
if (jdbcTemplate == null) {
jdbcTemplate = new JdbcTemplate();
}
return jdbcTemplate;

}

// 封装更新操作(增、删、改)
public boolean update(String sql, Object[] objArr) {
// 初始化成员变量
boolean flag = false;
Connection con = null;
PreparedStatement pstmt = null;
// 注册并链接
con = JdbcUtil.getInstance().getConnection();
try {
// pstmt
pstmt = con.prepareStatement(sql);
if (objArr!=null) {
for (int i = 1; i <= objArr.length; i++) {
pstmt.setObject(i, objArr[i - 1]);
}
}
// 执行
int result = pstmt.executeUpdate();
// 受影响行数大于零返回ture
flag = (result > 0);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.getInstance().close(con, pstmt, null);

}
return flag;

}

// 封装单条查询操作
public Object findOneInfo(String sql, Object[] objArr, JdbcMapper mapper) {
// 初始化成员变量
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Object rsObject = null;
// pstmt
try {
con = JdbcUtil.getInstance().getConnection();
pstmt = con.prepareStatement(sql);
if (objArr!=null) {
for (int i = 1; i <= objArr.length; i++) {
pstmt.setObject(i, objArr[i - 1]);
}
}
// 执行
rs = pstmt.executeQuery();
if (rs.next()) {
rsObject = mapper.mappinng(rs);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 查询
JdbcUtil.getInstance().close(con, pstmt, rs);
}
return rsObject;
}

// 封装查询多条操作

public List<? extends Object> findAllInfo(String sql, Object[] objArr,
JdbcMapper mapper) {
List<Object> list = new ArrayList<Object>();
// 初始化变量
Object rsObject = null;
// Connection.createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库。
Connection con = null;
// PreparedStatement表示预编译的 SQL 语句的对象,Statement 对象的子接口
PreparedStatement pstmt = null;
// ResultSet查询获得的数据表,next方法将光标移动到下一行对象(对应数据库表中的行),没有下一行时返回 false;
ResultSet rs = null;
try {
// 注册并链接
con = JdbcUtil.getInstance().getConnection();
// 创建PreparedStatement对象
pstmt = con.prepareStatement(sql);
if (objArr!=null) {
for (int i = 1; i <= objArr.length; i++) {
pstmt.setObject(i, objArr[i - 1]);
}
}
// 执行
rs = pstmt.executeQuery();
while (rs.next()) {
rsObject = mapper.mappinng(rs);
list.add(rsObject);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.getInstance().close(con, pstmt, rs);
}
return list;

}
}

package com.zyp168.util;

import java.sql.ResultSet;

/*
 * 对象映射接口
 */
public interface JdbcMapper {
public abstract Object mappinng(ResultSet rs);
}

package com.zyp168.model.mapper;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.zyp168.model.User;
import com.zyp168.util.JdbcMapper;

public class UserMapper implements JdbcMapper {

@Override
public Object mappinng(ResultSet rs) {
User user = new User();
try {
//ORM映射 
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPwd(rs.getString("pwd"));
} catch (SQLException e) {
// 实体类属性和数据库表中字段的映射关系不匹配
e.printStackTrace();
}
return user;
}

}

非关系型数据库

Redis环境搭建和使用:

安装redis服务:

redis-server --service-install redis.windows.conf

如果出现maxheap导致错误,请在redis.windows.conf 添加     maxheap 1024000000 (大小自己定)

设置内存大小:

redis-server redis.windows.conf --maxmemory 200m

卸载服务:

redis-server --service-uninstall

使用Redis:

Redis简介:基于<key,value>结构,value支持多种类型如String 、List 、Set 、Hash、Zset(对应不同操作指令),有0-15总共16个库,Redis数据库之间可以相互通信,Redis 数据可以持久化到关系型数据库;默认端口号6379;可设置密码管理(无用户帐号管理);单线程,有效减少并发问题。

常用指令:

key *

flushdb

flushall

exists key

select (库号0-15)

dbsize

move(key ,dbindex)   将key移动到某个库

del key

type key[hhy]

save

bgsava

shundown

对于String类型常用命令:

set(key,value)

get  (key)

对于List类型常用命令:

rpush( key ,value)

llen(key)

lindex(key,index)

更多请参考度娘

Memcached环境搭建:

安装服务

memcached -d install

设置内存大小

memcached.exe -p 10000 -m 512 -d start

(sc create Memcachedserver11212 binpath= "F:\memcached\memcached.exe -d runservice -m 500 -p 11212" start= auto displayname= "Memcached server (11212)")

使用telnet登录(打开和关闭window服务中启用)

net start memcached   启动服务

telnet 127.0.0.1 11211

memcachde简介:基于<key-value>,不支持持久化,memcached之间不通信,支持类型有限(String),默认端口11211,无加密管理;

常用5个指令:set     add     replace   get    delete

mongoDB 的环境搭建和使用

安装mongoDB:

安装后在mongoDB 文件夹下添加db和log文件夹并新建\mongo.conf和\log\mongo.log文件,其中\mongo.conf文件内容如下(地址按实际情况)

dbpath=D:\Program Files\MongoDB\db
logpath=D:\Program Files\MongoDB\log\mongo.log

安装mongoDB服务指令:

mongod       --dbpath "D:\Program Files\mongodb\data\db"       --logpath "D:\Program Files\mongodb\data\log\MongoDB.log"     --install(安装)\remove(移除)

[     --serviceName   "memcached1(名称)" ]   ([ ]可选,路经要绝对路径)

例如:

mongod       --dbpath "D:\Program Files\mongodb\db"       --logpath "D:\Program Files\mongodb\log\mongo.log"    -install

或者建议使用配制文件

mongod       --dbpath "D:\Program Files\mongodb\mongo.conf"    install

测试使用MongoDB指令:

mongoDB简介:文档型数据库(介于关系和非关系型之间),适用轻量级小文件存储,分布式,可持久化,高性能,高可用,自动分片,有用户和密码管理,默认端口号27017,重要相关概念:库        集合(即表,格式为key-value,value即文档)     文档(基于JSON格式)

命令举例,详细问度娘:

show  dbs;(默认有admin和local)

use localdatabase;

show  collections;

使用Java操作NoSql数据库相关见个人云盘yun.zyp168.cn,先简单纪录到这里,待后期补充!

数据库笔记——Mysql、Oracle、Sqlserver || Redis、Memcached、mongoDB环境搭建相关推荐

  1. redis常用命令及安全Redis集群环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> redis 安装 在centos 上很简单 yum install redis 即可完成redis的安装 安装redis cd ...

  2. Redis之Redis基础、环境搭建、主从切换

    Redis基础.环境搭建.主从切换 一.Redis简介 1.引入NoSQL的背景 2.Redis简介 二.环境部署 1.server1源码安装redis,并创建redis实例 2.server2主机, ...

  3. 2W 字详解 Redis 集群环境搭建实践

    点击上方 "终端研发部"关注, 星标或置顶一起成长 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. ...

  4. Redis集群环境搭建实践

    本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. Redis集群简介 Redis集群(Redis Cluster) 是R ...

  5. Django + mysql + 微信 抢票之本地环境搭建

    Django + mysql + 微信 抢票之本地环境搭建 环境准备 1. Django安装 2. mysql安装 3. 微信环境配置 申请微信公众平台测试号 微信接入 环境准备 1. Django安 ...

  6. RN学习笔记01:概述、特点与环境搭建

    RN学习笔记01:概述.特点与环境搭建 一.RN概述 React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 Reac ...

  7. 图数据库JanusGraph实战[6]: JanusGraph+HBase+ElasticSearch的环境搭建

    图数据库JanusGraph实战[6]: JanusGraph+HBase+ElasticSearch的环境搭建 作者:胡佳辉(家辉)  日期:2019年01月14日 CSDN博客:https://b ...

  8. 数据库:MySQL、SqlServer、Oracle对比

    一.MySQL 查看全文 http://www.taodudu.cc/news/show-891300.html 相关文章: 软件:分享9款实用电脑软件,值得看一看 Nginx:限流.缓存.黑白名单等 ...

  9. 常见NoSQL的对比及使用场景(Redis,memcached,mongodb)

    转自:https://my.oschina.net/liyurong/blog/1921898 1. NoSQL NoSQL(Not Only SQL),泛指非关系型的数据库(mysql.oracle ...

最新文章

  1. 微信公众号H5订阅消息开发 uniapp订阅消息
  2. Python 之 matplotlib (十一) 3D
  3. Android开发关于网络的书记,Android开发需要了解的网络协议
  4. Sizeof与Strlen的区别与联系
  5. 学习笔记(五)——JavaScript(二)
  6. sql复制表定义及复制数据行
  7. 哪吒之魔童降世视听语言影评_豆瓣评分8.7,这个“新哪吒”不一般|《哪吒之魔童降世》影评...
  8. 加密用户向阿桑奇捐赠超40万美元的BTC用于法律辩护
  9. Java8中list转map方法总结
  10. 5.1 RNN 情感识别、tensorflow实现——python实战
  11. 零信任学习系列一——研读NIST零信任架构(正式版)
  12. Flash 0day漏洞(CVE-2018-5002)千万不要乱打开Excel文档!
  13. coolpad大神f2Android,酷派大神f2致命缺点和优点有什么【图文】
  14. [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush
  15. 基于JAVA3D的网络三维技术的设计与实现
  16. metaRTC(yangwebrtc)-中国人自己的webrtc
  17. 怎么从图片中提取文字?
  18. 用华秋DFM作为PCB Viewer
  19. 解决UITableView xib添加到Storyboard出现IB Designables错误
  20. cas之soo单点登录初步探究

热门文章

  1. thinkphp5oa管理系统
  2. 如何区分好老师和坏老师?以及中国的音乐培训圈都多不要脸
  3. 两块STM32之间 SPI DMA通信
  4. 科技兴盛下,传统银行该如何转型?
  5. 买电脑时,i5和i7处理器有什么区别?
  6. Siege 压力测试
  7. TIDB-分布式关系型数据库讲解
  8. 随机洗牌算法+matlab,洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
  9. 了解光纤宽带与普通宽带ADSL区别、光纤的通信原理
  10. 什么是网络号,主机号,主机地址,网络地址,主机地址,子网号,子网地址