Mysql 狂神学习笔记(一)
根据狂神的mysql视频手打笔记,只供参考。1、分类
- 数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
- 数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
关系型数据库
- Mysql,Oracle,Sql Server,DB2,SQLlite
- 通过表和表之间,行和列之间的关系进行数据的存储,学员信息表,考勤表…
非关系型数据库2、Mysql(5.7版本和8.0版本)简介
- Redis,MongDB
- 非关系型数据库,数据库管理系统!
安装建议:尽量不要使用exe,注册表不好卸载。尽可能使用压缩包安装。
- 关系型数据库管理系统
- Oracle 公司
- 最好的RDBMQ 应用软件之一
- 体积小,速度快,成本低
- 适用于中小型网站
3、安装mysql
【二橘的java之始|Mysql 狂神学习笔记(一)】MySQL安装和配置,看这一篇就够了!-KuangStudy-江湖
- 安装包下载
- 环境变量 Path—>添加mysql的bin目录
- 创建my.ini配置文件
[client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8 # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=C:\学习资料\SQL\mysql\mysql-5.7.19-winx64\mysql-5.7.19-winx64\ # 设置mysql数据库的数据的存放目录 datadir=D:\Developer\DB\Database\mysql-5.7.31\data\ # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 允许最大连接数 max_connections=20 # 允许连接失败的次数。 max_connect_errors=10 # 严格模式 #sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" # 默认使用“mysql_native_password”插件认证 #default_authentication_plugin=mysql_native_password # 跳过密码验证,设置密码后注释掉 #skip-grant-tables
- 管理员打开DOM命令行
- 切到MySQL bin目录下
-
#清空服务,用于重新安装 sc delete mysql
- 执行命令
-
# 安装mysql的服务 mysqld -install
#初始化数据库文件 mysqld --initialize-insecure --user=mysql
#启动mysql net start mysql net stop mysql
#修改密码,不要输入密码进入 mysql -u root -p #修改密码 alter user 'root'@'localhost' identified by 'root'; #刷新权限 flush privileges;
注释掉ini文件中跳过密码的代码 重启mysql
- 切到MySQL bin目录下
命令行连接!
mysql -uroot -proot --连接数据库show databases;
--查看所有数据库
mysql>use school --切换数据库 use 数据库名
Database changed--
show tables;
--查看数据库中所有的表
desc或者describe 表名--显示数据库中所有表的信息--
create database 数据库名exit;
--退出
--
/**/
5、操作数据库
- DDL 定义
- DML 操作
- DQL 查询
- DCL 控制
mysql关键字不区分大小写
5.1 操作数据库(了解)
- 创建数据库
CREATE DATABASE IF NOT EXISTS westos
- 删除数据库
DROP DATABASE IF EXISTS westos
- 使用数据库
– tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带‘’
USE ‘school’
- 查看数据库
SHOW DATABASES;
数值
- tinyint 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- mediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节 常用的 int
- bigint 较大的数据 8个字节
- float 浮点数 4个字节
- double 浮点数 8个字节
- decimal 字符串形式的浮点数 金融计算的时候使用
字符串
- char 字符串固定大小 0-255
- varchar 可变字符串 0-65535 常用的 String
- tinytext 微型文本 2^8-1
- text 文本串 2^16-1 保存大文本
时间日期java.util.Data
- data YYYY-MM-DD 日期格式
- time HH:mm:ss 时间格式
- datatime YYYY-MM-DD HH:mm:ss 最常用的时间格式
- timestamp 时间戳 1970.1.1到现在的毫秒数!较为常用
- year 年份表示
null
- 没有值,未知
- 不要进行计算,结果为null
表中必须有的字段:Unsigned
id 主键
‘version’ 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
- 无符号的整数
- 声明该列不为复数
- 0填充
- 不足的位数,使用0来填充,int(3),5->005
- 在上一条基础加1
- 设计唯一的主键~ index,必须整数类型
- 可以自定义
- NULL 不填写值,默认就是null
- not NULL 不赋值报错
- 默认的值
CREATE TABLE IF NOT EXISTS ’犯得上发射点‘ (
‘id’ INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
‘name’ VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
PRIMARY KEY (‘id’)
)ENGINE=INNODB DEFAULT CHARSET=utf8 ;
常用命令:
SHOW CREATE DATABASE school;
-- 查看创建数据库的语句
SHOW CREATE TABLE student;
-- 查看创建表的语句
DESC student;
-- 显示表的结构
5.4.1 数据表类型
-- 关于数据库引擎engine
/*
INNODB 默认使用
MYISAM 早些年使用
*/
MYISAM | INNODB | ||
---|---|---|---|
事务支持 | 不支持 | 支持 | |
数据行锁定 | 不支持 | 支持 | |
外键约束 | 不支持 | 支持 | |
全文索引 | 支持 | 不支持 | |
表空间大小 | 较小 | 较大,约为2倍myisam |
- MYISAM 节约空间,速度较快
- INNODB 安全性高,事务的处理,多表多用户操作
物理空间位置所有的数据库文件都存储在data目录下
本质还是文件的存储!
MYSQL 引擎在物理上的区别
- INNODB 在数据库中只有一个*.frm文件,以及上级目录的ibdata1文件
- MYISAM对应文件
- *.frm 表结构的定义文件
- *.MYD 数据文件(data)
- *.MYI 索引文件(index)
数据库字符集编码:CHARSET=utf85.5 修改删除表
修改
-- ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE student RENAME AS student1
-- ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE student ADD age INT(11)-- 修改表的字段(重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE student MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE student CHANGE age age1 INT(1) -- 字段重命名-- 删除表的字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE student DROP age1
删除
-- 删除表
DROP TABLE IF EXISTS student
注意点:
- 字段名加单引号 ’ ’
- 注释 – /**/
- sql大小写不敏感
- 所有符号全英文
推荐阅读
- 笔记|MySQL狂神笔记(不全)
- Java毕业设计项目实战篇|Java项目:生鲜水果商城(java+SpringBoot+HTML+Thymeleaf+easyUI+bootstrap+mysql)
- datax|DBSwitch阉割版实现异构数据库表结构同步
- mysql数据库|MySQL Like模糊查询速度太慢如何进行优化
- Java编程|网上书店管理系统项目【Java数据库编程实战】
- 面试|Mysql高频面试题(后端大数据面试必备)
- 后端|Mybatis-plus实现数据库的增删改查操作
- 互联网|学前端编程还没有做过项目(30个入门练手项目,你get了么?)
- GitHub注册-创建数据库-本地项目推送GitHub远程数据库-(入门级教程)