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核心技术第一篇之数据库基础的更多相关文章

  1. java核心技术第二篇之数据库SQL语法

    #查询products表记录SELECT * FROM products WHERE price > 2000;-- 单行注释/* 多行注释*/#创建数据库CREATE DATABASE hei ...

  2. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  3. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  4. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  5. 第一章 oracle数据库基础

    第一章   oracle数据库基础 1.oracle简介-->数据库管理系统    1.1:数据库    1.2:全局数据库名    1.3:数据库实例    1.4:表空间    1.5:数据 ...

  6. Python编程笔记(第一篇)Python基础语法

    一.python介绍 1.编程语言排行榜 TIOBE榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员.课程和第三方厂商的数量. 2.pytho ...

  7. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  8. 学习java随笔第一篇:搭建java平台(java se)

    电脑系统:windows8 在这里介绍一下java平台的3个版本: Java SE--Java Standard Edition,Java的标准版,主要用于桌面级的应用和数据库开发. Java EE- ...

  9. java 学习第一篇简单基础

    Java基础 Java Java 和C#有着极为相似的语法. 和C#都是面向对象的高级程序语言. JAVA是一个开源,公开的语言,有着极其丰富的开源库和其他资源. JAVA分类 JAVA分SE EE ...

随机推荐

  1. 深入理解 Java 注解

    深入理解 Java 注解 本文内容基于 JDK8.注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文中没有明确指明版本的注解都是 JDK5 就已经支持的注解.

  2. 利用 chunked 类型响应实现后台请求的监听

    Koa 中实现 chunked 数据传输 中介绍了如何在 Koa 中实现 Transfer-Encoding:chunked 类型的响应分片传输.这里来看一个应用场景. 假如我们想监听后台的请求,并将 ...

  3. scrapy在pycharm配置启动(无需命令行启动)

    一.新建文件 run.py这个名字随意哈 方法一. from scrapy.cmdline import execute execute(['scrapy','crawl','爬虫程序名字','-a' ...

  4. 添加商品到购物车add_to_cart.php(学生笔记)

    <?php session_start();//启动session $goods_id = $_POST['goods_id'];//获取商品id $number = $_POST['num'] ...

  5. 清新简约风格毕业论文答辩PPT模板推荐

    不管是学生还是老师,应该经常会需要学生答辩的PPT模板,今天给大家推荐织梦58的学生答辩ppt模板. 模版来源:http://ppt.dede58.com/gongzuohuibao/26494.ht ...

  6. 为做了面向互联网部署(IFD)的Dynamics 365定制登录账号格式

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. Shell变量概述

    目录 1. Shell变量概述 1.定义变量,变量名=变量值.不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变 ...

  8. navicat premium 12 破解,本人亲测有效,针对error on decrypt request code的解决方法

    好,废话不多说,直接上步骤: 下载安装Navicat 由于本人信服官网的东西,所以Navicat premium12是在官网上边下载.下载地址:https://www.navicat.com.cn/p ...

  9. JavaScript实现点击复制按钮复制文本框的内容,兼容IOS

    <lable> <input type="text" id="txt"> <a href="javascript:;&q ...

  10. [C5W3] Sequence Models - Sequence models & Attention mechanism

    第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 基础模型(Basic Models) 在这一周,你将会学习 seq2seq(sequ ...