当前位置:   article > 正文

狂神 MYSQL 笔记整理_java狂神mysql

java狂神mysql

1. 初识MySQL

JavaEE: 企业级Java开发 Web

前端(页面: 展示, 数据)

后台(连接点: 链接数据库 JDBC, 链接前端 (控制, 控制视图跳转, 和给前端传递数据))

数据库 (存数据, txt, excel, word)

只会写代码, 学好数据库, 基本混饭吃

操作系统, 数据结构与算法! 当一个不错的程序猿

离散数学, 数字电路, 体系结构, 编译原理. + 实战经验, 高级程序员

为什么学习数据库

  • 岗位需求
  • 现在的世界, 大数据时代, 得数据者得天下
  • 被迫需求: 存数据
  • 数据库是所有软件体系中最核心的存在 DBA

什么是数据库

数据库 (DB, DataBase)

概念: 数据仓库, 软件, 安装在操作系统(windows, linux, mac, …) 之上. SQL可以存储大量的数据, 500万

作用: 存数据, 管理数据

数据分类

关系型数据库: Excel(行, 列) (SQL)

  • MySQL, Oracle, Sql Server, DB2, SQLlite
  • 通过表和表之间, 行和列之间的关系进行数据的存储

非关系型数据库: {key: value} (NoSQL)

  • Redis, MongoDB
  • 非关系型数据库, 对象存储, 通过对象的自身的属性来决定

DBMS

  • 数据库的管理软件, 科学有效的管理我们的数据, 维护和获取我们的数据
  • MySQL, 数据库管理系统

MySQL简介

MySQL是一个关系型数据库库管理系统

前世: 瑞典MySQL AB公司

今生: 属于Oracle旗下产品

MySQL是最好的RDBMS应用软件之一, 开源的数据库软件之一

体积小, 速度快, 总体拥有成本低, 招人成本比较低, 所有人必须要

安装:

1.尽量不要使用exe, 注册表

2.尽可能使用压缩包安装~

连接数据库

命令行连接

mysql -uroot -p123456 -- 连接数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost'; -- 修改用户密码
flush privileges;  -- 刷新权限

-- 所有的语句都使用分号结尾
show databases; -- 查看所有的数据库

use school; -- 切换数据库 use数据库名

show tables; -- 查看数据库中所有的表

describe student; -- 显示数据库中所有的表的信息

create database westos; -- 创建一个数据库

exit; -- 退出连接

-- 单行注释
/*
多行注释
*/ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

数据库 xxx 语言 CRUD 增删改查 -

  • DDL 定义
  • DML 管理
  • DQL 查询
  • DCL 控制

2. 操作数据库

操作数据库 > 操作数据库中的表 > 操作数据库中表的数据

操作数据库

  • 创建数据库

    CREATE DATABASE [IF NOT EXISTS] westos
    
    • 1
  • 删除数据库

    DROP DATABASE [IF EXISTS] westos
    
    • 1
  • 使用数据库

    -- 如果你的表名或字段名是一个特殊字符, 就需要带`
    USE `school`
    
    • 1
    • 2
  • 查看数据库

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

数据库的列类型

数值

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

字符串

  • char 字符串固定大小的 0-255
  • varchar 可变字符串 0-65535
  • tinytext 微型文本 2^8-1
  • text 文本串 2^16-1

时间日期

java.util.Date

  • date YYYY-MM-DD, 日期格式
  • time HH: mm: ss , 时间格式
  • datetimeYYYY-MM-DD HH: mm: ss 最常用的时间格式
  • timestamp 时间戳, 1970.1.1 - 现在的毫秒数
  • year 年份表示

null

  • 没有值, 未知
  • 注意: 不要使用null进行运算, 结果为NULL

数据库的字段属性 (重点)

  • Unsigned
    • 无符号的整数
    • 声明了该列不能声明为负数
  • zerofill
    • 0填充的
    • 不足的位数, 使用0来填充
  • 自增
    • 自动在上一条记录的基础上+1
    • 通常用来设置唯一的主键
    • 可以自定义设计主键自增的起始值和步长
  • 非空
    • 假设设置为not null, 如果不给它赋值, 就会报错
    • NULL, 如果不填写值, 默认就是null
  • 默认
    • 设置默认值
    • sex, 默认值为男, 如果不指定该列的值, 则会有默认值
/*
	每一个表, 都必须存在以下五个字段, 未来做项目用的, 表示一个记录存在的意义
	
	id				主键
	'version'		乐观锁
	is_delete		伪删除
	gmt_create		创建时间
	gmt_update		修改时间
*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

创建数据库表

-- 目标: 创建一个school数据库
-- 创建学生表(列, 字段)  使用SQL创建
-- 学号int 登录密码varchar(20) 姓名, 性别varchar(2) 出生日期(datatime) 家庭住址, email
CREATE TABLE
IF NOT EXISTS `student` (
	`id` INT (4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR (30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`password` 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 CHARSET = utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

常用命令

SHOW CREATE DATABASE school  -- 查看创建数据库的语句
SHOW CREATE TABLE student    -- 查看student数据表的定义语句
DESC student  -- 显示表的结构
  • 1
  • 2
  • 3

数据表的类型

-- 关于数据库的引擎
/*
INNODB 默认使用
MYISAM 早些年使用
*/
  • 1
  • 2
  • 3
  • 4
  • 5
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大, 约为2倍

常规使用操作:

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

在物理空间存在的位置

所有的数据库文件都存在 data 目录下

本质还是文件的存储

MYSQL 引擎在物理文件上的区别

  • INNODB 在数据库表中只有一个*.frm文件, 以及上级目录下的ibdata1 文件
  • MYISAM 对应文件
    • *.frm 表结构的定义文件
    • *.MYD 数据文件 (data)
    • *.MYI 索引文件 (index)

设置数据库表的字符集编码


                
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号