狂神说MySql笔记

本文是关于MySQL数据库的学习笔记,涵盖了数据库的初识、操作、数据管理、查询、函数、事务、索引、备份与权限等内容,特别强调了DQL查询、数据库设计规范和JDBC的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、初识MySQL

去年刚开始学java的时候,看的狂神老师的视频,现在整合一下之前做的笔记,发布出来供大家参考

javaEE:企业级java开发 Web

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

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

数据库(存数据,Txt,Excel,word)

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

操作系统,数据结构算法,一个不错的程序员

离散数学,数字电路,体系结构,编译原理+实战经验

1.1、为什么要学数据库

1.岗位需求

2.现在是大数据时代~,得数据中获得天下

3.被迫需求:存数据

4.数据库是所有软件体系最核心的存在 DBA

1.2、什么是数据库

数据库(DB,DataBase)

概念:数据仓库,软件,安装在操作系统(window,linux,mac)之上,可以存大量的数据

1.3、数据库分类

关系型数据库:SQL

  • MySql ,Qracle,Sqlrver,DB2,SQLlite
  • 通过表和表之间,行和列之间的关系

非关系型数据库 NOSQL Not Only

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

DBMS(数据库管理系统)

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

1.4、MySQL介绍

关系型数据库管理系统

开源的数据库软件

体积小,速度快,成本低,招人成本低

1.4、连接数据库

命令连接

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


-----------------------
所有语句";"结尾
show databases ---查看全部的数据库
user 数据库名字  ---查看数据库
show tables ----查看数据库表里的名字
describe 表名字----显示数据库里面表的信息
 create database 数据库名字--创建一个数据库
 exit--退出连接
 #
 --单行注释
 /*
 多行注释
 
 */

DDL 数据库定义语言

DML 数据库操作语言

DQL 数据库查询语言

DCL 数据库控制语言

2、操作数据库

2.1、操作数据库

1、创建数据库

CREATE DATABASE [IF NOT EXISTS] znb;

2、删除数据库

DROP DATABASE [IF EXISTS] znb;

3.使用数据库

USE school

4.查看数据库

SHOW DATABASES ;查看所有的数据库

2.2、数据库的列类型

数值

  • tinyint 十分小的数据 一个字节
  • smallint 较小的数据 , 两个字节
  • mediumint 中等大小的数据 三个字节
  • int 标准的整数 四个字节
  • big 较大的数据 八个字节
  • float 浮点数 四个字节
  • double 浮点数 八个字节(精度问题)
  • decimal 字符串形式的浮点数 金融计算的时候,一般用decimal

字符串

  • char 字符串固定大小 0~255
  • varchar 可变字符串 0~65535 常用的String
  • tinytext 微形文本 2^8-1
  • text 文本穿 2^16-1

时间日期

java,util.Date

  • date yyyy-mm-dd,日期
  • time hh:mm:ss 时间格式
  • datetime yyyy-mm-dd hh:mm:ss 最常用的时间格式
  • timestamp 时间戳 1970.1.1到现在的毫秒数 较为常用
  • year 年份表示

null

  • 没有数值,未知
  • 不要用null运算,结果为null

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

unsign

  • 无符号的整数
  • 声明了该列不能声明为负数

zerofill

  • 0填充
  • 不足的尾数用0来填充 int(3),5.········005

自增

  • 在上一条的基础上加一
  • 通常设置唯一的主键盘,必须是整数
  • 可以自己设定数字

非空 NULL not null

  • 假如设置为非空,不填数值就报错

默认

  • 设置默认值
  • sex 默认值为男,如果不指定该列的数值,都为默认

拓展

/*每一个表都要存在以下字段
id 主键
version 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_uodate修改时间
*/

2.4、创建数据库表(重点)

CREATE TABLE IF NOT EXISTS `student`
(
`id`INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`pwd` VARCHAR(30) NOT NULL DEFAULT '***' COMMENT'密码',
`name` VARCHAR(30) NOT NULL  DEFAULT '张三' COMMENT '姓名',
`sex` VARCHAR(50) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` VARCHAR (20) NOT NULL COMMENT '生日',
`address` VARCHAR(30) NOT NULL COMMENT'住址',
`emill` VARCHAR (30) NOT NULL COMMENT'邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式

CREATE TABLE [IF NOT EXISTS]`表名`
(
    `字段名` 类型 [属性] [索引] [注释],
     `字段名` 类型 [属性] [索引] [注释],
     `字段名` 类型 [属性] [索引] [注释],
    )
 `字段名` 类型 [属性] [索引] [注释]

)[表类型][字符集设置][注释]

常用命令

​```sql
SHOW CREATE TABLE student--查看创建表的语句

SHOW CREATE DATABASE school--查看创建数据库的语句

DESC student--显示表的结构

2.5、数据表的类型

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

*/
INNODB MYISAM
事务支持 支持 不支持
数据行锁定 支持 不支持
外键约束 支持 不支持
全文索引 不支持 支持
表空间的大小 较大,为myisam的两倍 较小

常规使用操作

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

在物理空间存在的位置

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

本质还是文件的存储!

Mysql引擎在物理引擎文件上面的区别

innoDB 在数据库表中只有一个*fm文件

2.6、修改和删除

修改

--修改表名
ALTER TABLE student RENAME AS student1
--修改约束
ALTER TABLE student  MODIFY age1 FLOAT(10)
--修改表的属性名字
ALTER TABLE student CHANGE age1 age INT(10)
--删除表的字段
ALTER TABLE student DROP age

删除

 DROP TABLE [IF EXISTS] teacher

所有的创建删除最好加上判断,避免出错

3、MySQL数据管理

3.1、外键

方法一:在创建表的时候增加约束

CREATE TABLE IF NOT EXISTS `student`
(
`id`INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`pwd` VARCHAR(30) NOT NULL DEFAULT '***' COMMENT'密码',
`name` VARCHAR(30) NOT NULL  DEFAULT '张三' COMMENT '姓名',
`sex` VARCHAR(50) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` VARCHAR (20) NOT NULL COMMENT '生日',
`address` VARCHAR(30) NOT NULL COMMENT'住址',
`emill` VARCHAR (30) NOT NULL COMMENT'邮箱',
`gradeid` INT(4) NOT NULL COMMENT '学生的年级',
PRIMARY KEY(`id`),
KEY `FK_gradeid`(`gradeid`) ,
CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

方式二:创建表成功后再去添加

ALTER TABLE student
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);

3.2、DML语言

  • Insert
  • update
  • delete

3.3添加

insert

--插入一个语句
INSERT INTO `student` (`name`) VALUES ('刘水龙')

--插入多个语句,用英文逗号隔开
INSERT INTO `student` (`name`,`sex`,`pwd`) VALUES
('李四','女','123154') ,('王五','女','1232154') ,

('刘三','女','123154') ,('赵四','女','12355154') 

注意事项:

1.字段可以省略,但是后面的数值要一一对应

2.可以同时插入多个护具,VALUES后面的数值需要使用隔开即可

3.4修改

update 修改谁(条件) set 原来的数值=新数值

---带了条件
UPDATE `student` SET `name`='傻逼' WHERE id=3;

----不带条件会修改全部的数值
UPDATE `student` SET `name`='傻逼' ;

--多个属性用逗号隔开
UPDATE `student` SET `name`='傻逼',`pwd
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code_BinBin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值