java核心技术第一篇之数据库基础
01.数据库的概念:
1).数据库的概念:数据库(Database),就是存储数据的仓库。
2).作用:用来存储和管理大量数据的。内部采用了非常便于查询的机制来存储数据,能保证我们在大量数据的情况下
可以很快,并且很准确为我们查询到所需记录。
3).什么是数据库管理系统:指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,
以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
02.数据库内部的结构:
数据库软件:
|--逻辑数据库(跟项目相关)
|--表
|--列
|--行(记录)
|--表
....
|--逻辑数据库(跟项目相关)
....
03.Java和数据库的对应关系:
java 数据库
--------------------------------------------
项目 逻辑数据库
类 表
类中成员属性 表的字段(列)
属性的数据类型 字段的数据类型
对象 表中的一行记录
04.常见的数据库管理系统
MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2:IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
SQLite : 嵌入式的小型数据库,应用在手机端。
常用数据库:MYSQL,Oracle.
这里使用MySQL数据库。MySQL中可以有多个数据库,数据库是真正存储数据的地方。
05.MySQL的安装和客户端连接:
1.连接MySQL服务器端:
1).使用命令行:Mysql数据库root密码重置
1) 停止mysql服务器 运行输入services.msc 停止mysql服务
2) 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
3) 新打开cmd 输入mysql -u root -p 不需要密码
use mysql;
update user set password=password('abc') WHERE User='root';
4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程
5) 在服务管理页面 重启mysql 服务
密码修改完成
mysql -uroot -p密码 (回车)
可以在命令行上通过命令来开启与关闭服务器
开启 net start mysql
关闭 net stop mysql
Mysql数据库root密码重置
1) 停止mysql服务器 运行输入services.msc 停止mysql服务
2) 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
3) 新打开cmd 输入mysql -u root -p 不需要密码
use mysql;
update user set password=password('abc') WHERE User='root';
4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程
5) 在服务管理页面 重启mysql 服务
密码修改完成
Mysql重置管理密码的操作
Mysql 使用过程中,难免会忘记管理密码,肿么办?
这里先介绍种比较通用的解决办法,包含 Windows 和 Linux 二种操作系统环境下:
一、停止正在运行的 Mysql 进程
killall -TERM mysqld -------- LINUX
windows 下可通过停止系统服务 net stop mysql 或 结束进程 ;
二、安全模式启动 Mysql
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables & -----LINUX
windows 有二种途径:
1、在命令提示符下 进入安装路径: X:\。。。\bin\mysqld --skip-grant-tables
2、安装路径下编辑配置文件:X:\etc\my.ini 在最后一行加上 skip-grant-tables ,然后启动 服务 www.2cto.com
三、进入数据库,并修改管理密码
直接进入数据库,密码已恢复为空:
use mysql; -------------- 选择mysql 数据库;
update user set password=password('123') where user='root'; ------------ 更改管理密码为 123
flush privileges; --------------- 刷新权限表
2).使用SQLYog客户端:
直接启动,在连接
界面填写:服务器IP,端口,用户名、密码,点击:连接
06.SQL语句的介绍:
1.普通话:标准的SQL语言,各个数据库厂商必须遵守的。
2.方言:个数据库厂商自己开发的基于的SQL的一些新功能的语法。只在自己的数据库
上有效。
07.SQL语言的分类:
1.DDL:数据定义语言,来定义数据库对象:逻辑数据库,表,列等。关键字:create(创建),alter(修改),drop(删除)等
2.DCL:数据控制语言.用来定义数据库的访问权限和安全级别,及创建用户。
3.DML【重点掌握】:数据操作语言。用来对数据库中表的"记录"进行更新。关键字:insert(添加),delete(删除),update(修改)等
4.DQL【重点掌握】:数据查询语言。用来查询数据库中表的"记录"。关键字:select(选择),from(从),where(在哪里)等
08.SQL通用语法:
1.SQL语句可以单行或多行书写,以分号结尾
2.可使用空格和缩进来增强语句的可读性
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
例如:SELECT * FROM user。
4.注释:
1).#单行注释
2).--(空格)单行注释
3)./* ... */ 多行注释
09.数据库操作的相关语句:
1.创建数据库:
create database 数据库名;
或者
create database 数据库名 character set 字符集;
2.查看所有数据库:
show databases;
3.查看某个数据库的定义的信息:
show create database 数据库名;
4.删除数据库:
drop database 数据库名;
5.查看当前正在使用的数据库:
select database();
6.切换数据库:
use 数据库名;
10.表操作的相关语句:
1.创建表:
create table 表名(
字段名1 数据类型[长度] [约束],
字段名2 数据类型[长度] [约束],
...
字段名n 数据类型[长度] [约束]
);
例如创建一个学员信息表,存储:学号、姓名、性别、年龄
create table student(
stuNo int,
stuName varchar(200),
stuSex char(5),
stuAge int
);
2.Java的数据类型与MySQL中的数据类型
java数据类型 MySQL数据类型
------------------------------------------------------------
整数:
int int
小数:
float/double float/double/decimal(m,n)
字符:
char char
字符串:
String char(定长)/varchar(不定长)
在Java中char表示一个字符;而MySQL中的char表示:可变的字符串;
在MySQL中char和varchar的区别:
1.char:定长字符串:例如定义字段为:char(5):表示最多存储5个字符,如果不足5个字符,剩下的用空字符填充。
例如:定义char(5)-->要存储字符串"abc"-->在硬盘上存储的格式-->"abc "
要存储字符串"abcd"-->在硬盘上存储的格式-->"abcd "
2.varchar:不定长字符串:例如定义字段为:varchar(5):表示最多存储5个字符,如果不足5个字符,不填充空字符。
例如:定义varchar(5)-->要存储字符串"abc"-->在硬盘上存储的格式-->"abc"
要存储字符串"abcd"-->在硬盘上存储的格式-->"abcd"
注意:
1.char类型的在查询效率上要高于varchar,所以,尽量选择char类型;
2.对于字段的平均长度相同或者变化不大的数据,优先使用char类型。
例如:手机号码、身份证号、银行卡号....
3.对于字段的平均长度相差比较大的数据,建议使用varchar类型。
例如:个人介绍......
日期类型:
String
Date date(日期常用) 范围:YYYY-MM-DD 1000-01-01~9999-12-3
datetime【常用】(日期和时间)范围:YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
大文本:
String Text
文本二进制
byte[] binary
二进制(图片,视频)
byte[] Blob
3.查看数据库中的所有表:
show tables;
4.查看表结构:
desc 表名;
5.删除表:
drop table 表名;
6.修改表:
alter table 表名 add 列名 类型(长度) [约束];
作用:修改表添加列.
例如:
#1,为分类表添加一个新的字段为分类描述 varchar(20)
ALTER TABLE category ADD `desc` VARCHAR(20);
alter table 表名 modify 列名 类型(长度) 约束;
作用:修改表修改列的类型长度及约束.
例如:
#2, 为分类表的描述字段进行修改,类型varchar(50) 添加约束 not null
ALTER TABLE category MODIFY `desc` VARCHAR(50) NOT NULL;
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
作用:修改表修改列名.
例如:
#3, 为分类表的分类名称字段进行更换更换为 snamesname varchar(30)
ALTER TABLE category CHANGE `desc`description VARCHAR(30);
alter table 表名 drop 列名;
作用:修改表删除列.
例如:
#4, 删除分类表中snamename这列
ALTER TABLE category DROP description;
rename table 表名 to 新表名;
作用:修改表名
例如:
#5, 为分类表category改名成 category2
RENAME TABLE category TO category2;
alter table 表名 character set 字符集;
作用:修改表的字符集
例如:
#6, 为分类表 category 的编码表进行修改,修改成 gbk
ALTER TABLE category CHARACTER SET gbk;
java核心技术第一篇之数据库基础的更多相关文章
- java核心技术第二篇之数据库SQL语法
#查询products表记录SELECT * FROM products WHERE price > 2000;-- 单行注释/* 多行注释*/#创建数据库CREATE DATABASE hei ...
- Flink入门-第一篇:Flink基础概念以及竞品对比
Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...
- 从.Net到Java学习第一篇——开篇
以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...
- Matlab高级教程_第一篇:Matlab基础知识提炼_01
第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...
- 第一章 oracle数据库基础
第一章 oracle数据库基础 1.oracle简介-->数据库管理系统 1.1:数据库 1.2:全局数据库名 1.3:数据库实例 1.4:表空间 1.5:数据 ...
- Python编程笔记(第一篇)Python基础语法
一.python介绍 1.编程语言排行榜 TIOBE榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员.课程和第三方厂商的数量. 2.pytho ...
- JAVA 入门第一章(语法基础)
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
- 学习java随笔第一篇:搭建java平台(java se)
电脑系统:windows8 在这里介绍一下java平台的3个版本: Java SE--Java Standard Edition,Java的标准版,主要用于桌面级的应用和数据库开发. Java EE- ...
- java 学习第一篇简单基础
Java基础 Java Java 和C#有着极为相似的语法. 和C#都是面向对象的高级程序语言. JAVA是一个开源,公开的语言,有着极其丰富的开源库和其他资源. JAVA分类 JAVA分SE EE ...
随机推荐
- Tomcat9+JDK 13报错Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
Tomcat使用的是https://tomcat.apache.org/download-90.cgi Tomcat9 之前安装的JDK 13,有JAVA_HOME环境变量地址(C:\Program ...
- C# 重置IE安全等级
打开IE设置-安全 dynamic shellObject = Interaction.CreateObject("WScript.Shell", ""); / ...
- session购物车中的移除功能部分(学生笔记)
function onclick_remove(r) { if (confirm("确认删除么!此操作不可恢复")) { var out_momey = $(".out_ ...
- Java面试基础 -- Docker篇
1.什么是Docker? Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. 2.什么是Docker镜像? Docker镜像是 ...
- canvas绘制星星和月亮
用变量的方式绘制一个五角星,首先求五角星十个顶点的坐标. 可以把每个五角星看成外顶点用一个大圆绘制,内顶点用小圆绘制.在坐标系(0deg)下,根据每个顶点的角度和圆的半径求得x,y. 而每个大顶点相差 ...
- Cesium专栏-空间分析之坡度分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- HTML5播放视频,并使用ffmpeg对视频转编码
网页加入视频可以用h5自带的video标签,这里用一个jQuery封装优化好的video视频组件videojs. videojs官方网站:https://docs.videojs.com/index. ...
- 18-搭建本地 Registry
Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 reposito ...
- 我的第一个CCS工程
直接用别人已经弄好的例程,学习创建属于自己的工程,就发现还是有很多问题的: 首先是:1. 想加载头文件到include工程文件夹中却发现总是在Document文件夹中,很是纳闷,在网上搜了搜,发现时路 ...
- MySQL 锁的监控及处理
故障模拟 # 添加两项配置 vi /etc/my.cnf [mysqld] autocommit=0 innodb_lock_wait_timeout = 3600 systemctl restart ...