狂神说java之mysql篇(学完可就业+面试)

本文详细介绍了MySQL数据库,包括其定义、分类、Mysql的特点和安装过程,以及数据库的操作如数据类型、字段属性、创建数据库和数据表。此外,还讲解了SQLyog工具的使用、DML和DQL语言、事务、索引、权限管理和备份等方面的内容,适合初学者和进阶者学习。
摘要由CSDN通过智能技术生成

数据库

什么是数据库

数据库 ( DataBase , 简称DB )

概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”

作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…

数据库的分类

1、关系型数据库 ( SQL )

MySQL , Oracle , SQL Server , SQLite , DB2 , …

通过表和表之间,行和列之间的关系进行数据的存储,,学员信息表,考勤表…

2、非关系型数据库 ( NOSQL ) Not Only

Redis , MongoDB , …

非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

DBMS 数据库管理系统:

数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据
MySQL,数据库管理系统

为什么要说这个呢?

因为我们要学习的MySQL应该算是一个数据库管理系统.

Mysql的简介

概念 : 是现在流行的开源的,免费的 关系型数据库

历史 : 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。

特点 :
1、免费 , 开源数据库
2、小巧 , 功能齐全
3、使用便捷
4、可运行于Windows或Linux操作系统
5、可适用于中小型甚至大型网站应用

官网 : https://www.mysql.com/
压缩包地址:https://dev.mysql.com/get/Downloads/MySQL-5.7.19-winx64.zip

Mysql的安装

下载后得到zip压缩包.

解压到自己想要安装到的目录,本人解压到的是D:\Environment\mysql-5.7.19

添加环境变量:我的电脑->属性->高级->环境变量

选择PATH,在其后面添加: 你的mysql 安装文件下面的bin文件夹

编辑 my.ini 文件 ,注意替换路径位置

[mysqld]
basedir=D:\Program Files\mysql-5.7\
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables

启动管理员模式下的CMD,并将路径切换至mysql下的bin目录,然后输入mysqld –install (安装mysql)

再输入 mysqld --initialize-insecure --user=mysql 初始化数据文件

然后再次启动mysql 然后用命令 mysql –u root –p 进入mysql管理界面(密码可为空)

进入界面后更改root密码

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';

刷新权限:

flush privileges;

修改 my.ini文件删除最后一句skip-grant-tables

重启mysql即可正常使用

net stop mysql
net start mysql

连接上测试出现以下结果就安装好了
在这里插入图片描述
这里给大家推荐一个工具 : SQLyog .

即便有了可视化工具,可是基本的DOS命名大家还是要记住!

SQLyog

可手动操作,管理MySQL数据库的软件工具

特点 : 简洁 , 易用 , 图形化

在这里插入图片描述在这里插入图片描述
使用SQLyog管理工具自己完成以下操作 :

	连接本地MySQL数据库
	
	    新建MySchool数据库
	        字段
	        GradeID : int(11) , Primary Key (pk)
	        GradeName : varchar(50)
	        数据库名称MySchool
	        新建数据库表(grade)

在历史记录中可以看到相对应的数据库操作的语句

连接数据库

使用命令行连接:

mysql -u root -p123456 --连接数据库
alter user root@localhost identified by '123456'; --修改用户密码
flush privileges; --刷新权限

------------------------------------
--所有的语句都用;结尾
show databases;--查看所有的数据库
use school; --use 数据库名 切换数据库

show tables;--查看所有的表
desc student;--查看名为student表信息

create database westos; --创建一个名为westos的数据库 
exit;--退出链接

-- 单行注释
/*
多行注释
*/

操作数据库

数据库的操作

创建数据库

CREATE DATABASE IF NOT EXISTS westos

删除数据库

DROP DATABASE IF EXISTS westos

使用数据库

USE `school` --加单引号会变成字段 特殊的字符一眼加这个符号

查看数据库

SHOW DATABASES --查看所有的数据库

数据库的数据类型

整数:
tinyint :十分小的数据 1个字节
smallint :较小的数据 2个字节
mediumint: 中等大小的数据 3个字节
int: 标准的整数 4个字节 常用的
bigint: 较大的数据 8个字节
float :浮点数 4个字节
double :浮点数 8个字节
decimal :字符串形式的浮点数 金融计算的时候会用

字符串:
char :字符串固定大小 0~255
varchar: 可变字符串大小 0~65535 对应String
tinytest :微型文本 2^8-1
test :文本串 2^16 -1 保存大文本

时间日期:
data YYYY-MM-DD:日期格式
time HH:mm:ss
datetime YYYY-MM-DD HH:mm:ss: 最常用的时间格式
timestamp :时间戳 1970.1.1到现在的毫秒数 较为常用
year 年份标识

数据库的字段属性(重点

Unsigned:无符号的整数,声明了这里面的列不能为负数。
zirofill:0填充的
不足的位数,使用0来填充, int(3), 5— 005
自增:通常理解为自增,自动在上一条记录的基础上+1(默认)
通常用来设计唯一的逐渐~ index,必须是证书类型
可以自定义设计主键自增的起始值和步长
null和not null:假设设置为not null,如果不给它赋值,就会报错!
null 如果不填写值,默认就是null!
默认:设置默认的值sex,默认值为男,如果不指定该列的值,则会有默认的值!

创建数据库

/* 每个表,都需要存在以下五个字段  未来做项目用的,表示一个记录存在的意义  拓展
id 主键
'version'  乐观锁
is_delete 伪删除   认为被删除  实际没有
gmt_create 创建时间
gmt_update 修改时间
*/

--AUTO_INCREMENT 自增
--PRIMARY KEY 主键

CREATE TABLE IF NOT EXISTS `student`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
	`paw` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
	`sex` VARCHAR(2) NOT NULL DEFAULT'女' COMMENT'性别',
	`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
	`address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
	`email` VARCHAR(50) DEFAULT NULL COMMENT'邮箱',
	PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

create table [if not exists] `表名`(
    `字段名` 列表名 [属性] [索引] [注释],
    `字段名` 列表名 [属性] [索引] [注释],
    ......
    `字段名` 列表名 [属性] [索引] [注释]
)[表类型][字符设置][注释]

show create database school  -- 查看创造数据库的语句
show create table student -- 查看student数据表定义的语句
desc student -- 显示表的结构

数据表的类型

-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年是用的
*/


在这里插入图片描述
常规使用操作:

MYISAM 节约空间,速度较快
INNODB 安全性高,事务的处理,多表多用户操作

修改:

-- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
-- 修改表的字段(重命名,修改约束)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher1 CHANGE age age1 INT(11) -- 重命名,

-- 删除表的字段 表名 ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1



删除:

-- 删除表 DROP TABLE 表名(如果表存在再删除)
DROP TABLE [if exists] teacher1

MySql数据管理

外键(了解)

方式一:在创建表的时候,增加约束(麻烦复杂)

CREATE TABLE `grade`(
  `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id',
  `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
  PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

CREATE TABLE IF NOT EXISTS `student`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
	`paw` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
	`sex` VARCHAR(2) NOT NULL DEFAULT'女' COMMENT'性别',
	`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
	`gradeid` INT
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值