项目 逻辑数据库
类 表
类中成员属性 表的字段(列)
属性的数据类型 字段的数据类型
对象 表中的一行记录
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;