• 数据库基础知识


    数据持久化 - 将数据从内存转移到硬盘(长久保存数据的存储介质)

    数据库基础知识

    数据库 - 存储数据,管理数据

    关系(型)数据库/非关系型数据库 。 关系型数据库比非关系型数据存储更为重要。

    数据体量大,但是没那么不重要的时候。 就用非关系数据库

    非关系型数据库: - > NoSQL数据库

    ~KV数据库

    ~文档数据库

    ~列族数据库

    ~图数据库

    理论基础: 关系模型 - 关系代数 - 关系运算 - 谓词逻辑

    具体表现: 用二维表保存数据

    ​ ~行(row) - 记录(record) - 元组(tuple)

    ​ ~列(column) - 字段(field) - 属性 (attribute)

    ​ ~ 主键(primary key)

    ​ ~外键(foreign key)

    编程语言:SQL - 结构化查询语言

    通用的语言结构

    ​ 1. ​ 数据定义语言(DDL):create(创建)/drop(丢弃)/alter(修改)/rename/truncate
    ​ 2. ​ 数据操作语言(DML):增删改查:insert/delete/update/select
    ​ 3. ​ 数据控制语言(DCL):grant / revoke
    ​ 4. ​ 事务控制语言(TCL):。。。

    Unicode —> utf-8 / utf - 16 / utf -32

    ‘a’ —> 1字节

    ‘索’ —> 3字节

    ‘🐖’ —> emoji字符 ---->4字节

    使用MySQL的命令行:

    show databases; 展示所有数据库

    show tablses; 显示数据表

    desc 表名; 显示该表的所有列

    help data types; 显示所有的数据类型(当你不知道有mysql有哪些数据类型的时候)

    create detabase db_school_system default charset utf8mb4;    
    
    • 1

    创建数据库 语法 create database 数据库名 编码值

    utf8mb4 - 最大4字节的utf-8编码 -MySQL8默认

    drop database if exists school;   
    
    • 1

    删除数据库 如果这个数据库存在就删除,不存在就什么也不做。

    alter database school default charset utf8mb4;   
    
    • 1

    修改 数据的的编码值

    use school; 切换数据库 语法 use 数据库名

    caeate table; 创建表

    创建二维表
    创建二维表语法:

    create table 表名(属性1,属性2,…,primary key (某列的属性名)) engine=innodb;

    每个属性或者最后的后面都可以用comment 后面接注释。

    (用元组表示每一列中的属性值)

    实例:
    create table tb_student
    (
    stu_id integer not null comment '学号',
    stu_name varchar(20) not null comment '姓名',    
    stu_gender boolean not null default 1 comment '性别',     
    stu_birth date default '2000-1-1' comment '出生日期',
    primary key (stu_id)
    ) engine=innodb comment '学生表';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    not null : 不允许为空(非空约束)
    default 1 :默认为1,表示True(默认约束)
    primary key : 表示创建哪个为主键
    engine=innodb : 引擎选择innodb

    comment : 表示注释,对后面的内容不影响表

    数据类型

    整数 :

    ​ bigint (64bit —>8byte —>-263~263-1) —> bigint unsigned (0~2^64-1)

    ​ integer/ int (32bit —>4byte —>-231~231-1) —> int unsigned(0~2^32-1)

    ​ smallint (16bit —> 2byte —> -32768~32767)

    ​ tinyint (8bit —> 1byte —> -128~127)

    小数:

    ​ float / double —>不推荐使用

    ​ decimal —> decimal (20,2) 前面表示该数字长度最大为20,保留两位小数。第一个参数默认值为10,第二个参数默认值为0.

    字符串:

    ​ char

    ​ varchar —>varchar(20) —> 65535 / 16383(如果是utfmb4) 表示可变的字符

    ​ longtext —> 4G —> 不推荐使用 —>最好保存数据链接地址

    日期时间:

    ​ date

    ​ time

    ​ datetime

    ​ timestamp —> 不推荐使用

    布尔:

    ​ boolean

    JSON:

    ​ json数组

    ​ json对象

    修改表内容
    增加一列
     alter table tb_student add column stu_addr varchar(200) default '' comment '家庭住址';   
    
    • 1
    删除表中某一列的数据
     alter table tb_student drop column stu_tel;
    
    • 1
    改变表中某列的属性(不能修改字段名)
     alter table tb_student modify column stu_gender char(1) default '男' comment '性别';
    
    • 1
    改变表中某列的属性(能修改字段名)
     alter table tb_student change column stu_gender stu_sex char(1) no null default 'M' comment '性别'; 
    
    • 1
    修改表名
     alter table tb_student rename to tb_abc;
    
    
    • 1
    • 2
    总结思路:先登录MySQL,然后创建数据库,切换数据库,在数据库中创建数据表。

    高级文本编辑工具

    ~VSCode
    Sublime

    ~Atom

    ~Textmate

    ~Notepad++

    ~Editplus

  • 相关阅读:
    单片机——基础概念
    权限维持专题:域控制器权限维持
    谷粒学苑_第五天
    java springboot tk.mybatis demo LTS
    172版本关闭背钻后自动添加反盘和禁布的功能
    2022年全国最新消防设施操作员(中级消防设施操作员)真题题库及答案
    第五章:Ajax高级
    深度学习_5_模型拟合_梯度下降原理
    MongoDB 的简介
    关于椭球的一点形象的解说
  • 原文地址:https://blog.csdn.net/ZiXiaoAo/article/details/126697933