Mysql 狂神学习笔记(一)

Mysql 狂神学习笔记(一)

根据狂神的mysql视频手打笔记,只供参考。

1、分类

  • 数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
  • 数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

关系型数据库

  • Mysql,Oracle,Sql Server,DB2,SQLlite
  • 通过表和表之间,行和列之间的关系进行数据的存储,学员信息表,考勤表…

非关系型数据库

  • Redis,MongDB
  • 非关系型数据库,数据库管理系统!

2、Mysql(5.7版本和8.0版本)简介

  1. 关系型数据库管理系统
  2. Oracle 公司
  3. 最好的RDBMQ 应用软件之一
  4. 体积小,速度快,成本低
  5. 适用于中小型网站

安装建议:尽量不要使用exe,注册表不好卸载。尽可能使用压缩包安装。

3、安装mysql

MySQL安装和配置,看这一篇就够了!-KuangStudy-江湖

  1. 安装包下载

  2. 环境变量 Path—>添加mysql的bin目录

  3. 创建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
    
    
  4. 管理员打开DOM命令行

    1. 切到MySQL bin目录下

    2. #清空服务,用于重新安装
      sc delete mysql
      
    3. 执行命令

    4. # 安装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
      

4、使用数据库

命令行连接!

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 操作数据库(了解)
  1. 创建数据库

    CREATE DATABASE IF NOT EXISTS westos

  2. 删除数据库

    DROP DATABASE IF EXISTS westos

  3. 使用数据库

    – tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带‘’
    USE ‘school’

  4. 查看数据库

    SHOW DATABASES;

5.2 数据库类型

一个字节,八个二进制位,无符号数0-255

数值

  • 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
5.3 数据库的字段属性

表中必须有的字段:

id 主键

‘version’ 乐观锁

is_delete 伪删除

gmt_create 创建时间

gmt_update 修改时间

Unsigned

  • 无符号的整数
  • 声明该列不为复数

zerofill

  • 0填充
  • 不足的位数,使用0来填充,int(3),5->005

自增

  • 在上一条基础加1
  • 设计唯一的主键~ index,必须整数类型
  • 可以自定义

非空 NULL not NULL

  • NULL 不填写值,默认就是null
  • not NULL 不赋值报错

默认

  • 默认的值
5.4 数据库建表
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 早些年使用
*/
MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约为2倍myisam

常规使用操作:

  • MYISAM 节约空间,速度较快

  • INNODB 安全性高,事务的处理,多表多用户操作

物理空间位置

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

本质还是文件的存储!

MYSQL 引擎在物理上的区别

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

数据库字符集编码:CHARSET=utf8

5.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大小写不敏感
  • 所有符号全英文
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值