• Mysql 基础命令增删改查


    一、数据库类型  分两大类:

    1.关系型数据库 SQL   :

    关系型数据库(SQL)   存储结构:二维表格    存储的数据:结构化数据     使用场景:存储业务数据、账户信息等
    对象: 库 ->  表 -> 二维表格形式的结构化数据  :  行(记录):用来描述一个对象的信息
                                                                                   列(字段):用来描述对象的一个属性
     

    2.非关系型数据库 NoSQL

    非关系型数据库(NoSQL)  存储结构:非二维表格结构,不同类型的NoSQL采用不同的存储结构,比如 键值对、文档、索引、时间序列 等

    缓存型   Redis   Memcached
    文档型   MongoDB
    索引型   Elasticsearch
    时序型   Prometheus   InfluxDB
    列式型   HBase

    二、MySQL中6种常见的约束:

    1. 主键约束(primary key)
    2. 外键约束(foreign key)
    3. 非空约束(not null)
    4. 唯一性约束(unique [key|index])
    5. 默认值约束(default)
    6. 自增约束(auto_increment)

    三、常用的数据类型:

    1. int :整型   无符号[0,2^32-1],有符号[-2^31,2^31-1]
    2. float :单精度浮点    4字节32位
    3. double :双精度浮点    8字节64位
    4. char :固定长度的字符类型
    5. varchar :可变长度的字符类型
    6. text :文本
    7. image :图片
    8. decimal(5,2) :5个有效长度数字,小数点后面有2位

    四、mysql授权用户权限

    五、SQL语句  关系型数据库专用的操作管理语句 

    DDL:用于管理数据库对象(库、表、索引 等)

    1. create database 库名; #查看数据库
    2. 创建表
    3. use 库名; #进入库
    4. create table 表名 (字段一 数据类型,字段二 字段类型 PRIMARY KEY(字段));
    1. show databases; #查看数据库
    2. show tables from 数据库名; #从查看数据库中的表
    3. desc 表名 +查看表的结构
    4. show create table 表名 #复杂查看表的结构
    1. drop tables 库名.表名 #删除某库中的表
    2. drop database 数据库; #删除数据库

     修改表的结构:

    1. 增删改字段
    2. alter table 旧表名 rename 新表名称; #修改表名称
    3. alter table 表名 add 新字段 数据类型; 可以加约束类型 #新增表的字段
    4. alter table 表名 change 旧字段 新字段数据类型 可以加约束类型 #修改表的字段
    5. alter table 表名 drop 字段名称 #删除字段
    6. 增加约束
    7. alter table 表名 add 约束类型;
    8. 删除约束
    9. alter table 表名 drop 约束类型;
    10. 克隆:
    11. crate table 新表名称 like 旧表名; #克隆旧表结构
    12. insert into 新表名称 select * from 旧表名 #克隆就表数据 可实现表结构和表数据与旧表都一样
    13. create table 新表明 select * from 旧表名 #表数据和旧表是一样的,新表的结构和旧表的不一定一样
    14. 清空表:
    15. delete from 表名 #一条一条的删除记录,清空表效率较慢;自增字段仍保持原有的记录
    16. truncate table 表名 #直接重建表,清空表效率较快;自增字段的记录也会重置

     DML:用于管理表数据

    1. 表中数据增删改查
    2. insert into 表名 (字段1, 字段2values (字段1的值, 字段二的值...);
    3. insert into 表名 (所有对应字段的值)
    4. 修改数据:
    5. update 表名 set 字段1=1, 字段2=2 where 条件表达式;
    6. 删除数据:
    7. delete from 表名 where 条件表达式;

    DQL:用于查询表数据

    1. 查询:
    2. select * from 表名 #查看表全部的数据
    3. select 字段1,字段2 from 表名 where 条件表达式;
    4. 分页查询:
    5. select * from 表名 limit N; #查看表的前N行的记录
    6. select 字段 from 表名 limit N,M; #查看表的第N行之后的连续M行的记录
    7. select * from 表名\G #以列表方式竖向显示

    DCL:用于管理用户和权限
     

    1. create user '用户名'@'来源地址 identified by '密码';
    2. 来源地址:
    3. localhost ip 网段 %(任意地址) 主机名
    4. 修改用户名
    5. rename user 'vc'@'%' to 'dvd'@'%';
    6. 修改密码
    7. set password for '用户名'@'来源地址' = password('密码');只可以root用户
    8. alter user '用户名'@'来源地址' identified by '密码'; 修改密码
    9. 用户权限管理:
    10. grant 权限1, 权限2 ON 库名.表名 to '主机名'@'来源地址'identified by 密码
    11. 查看权限
    12. show grant for '用户名'@'来源地址';
    13. 撤回权限
    14. revoke 权限列表 on 数据库名.表名 from '用户名'@'来源地址'

    如何找回 root 密码?

    1.修改MySQL配置文件,在 [mysqld] 配置项下面添加配置 skip-grant-tables 

    2.重启MySQL服务,使用 mysql 命令即可直接登录数据库

    1. vim /etc/my.conf
    2. skip-grant-tables #添加,使登录mysql不使用授权表
    3. systemctl restart mysqld

    3.执行命令 update mysql.user set authentication_string=password('密码') where user='root'; 来修改root用户密码

    1. 使用 update 修改 root 密码,刷新数据库
    2. UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';
    3. FLUSH PRIVILEGES; #刷新数据库
    4. quit

    4.再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务

    mysql -u root -pabc123
    

    外键约束:

    保证数据的完整性和一致性(插入数据时,需要先保证主键表的公共字段有相关数据,才能在外键表插入相关联的数据;删除数据时,需要先保证外键表已经没有相关数据,才能在主键表删除相关联的数据)
     

    1. 主键表: alter table 主表名 add primary key (公共字段);
    2. 外键表: alter table 从表名 add foreign key(公共字段) references 主表名(公共字段);
    3. # foreign key 自动生成外键名
    4. 删除外键
    5. alter table 表名 drop foreign key 键名别称
    6. alter table 表名 drop key 键名

  • 相关阅读:
    虾皮印尼买家号如何注册
    软件方面的文档标准GB/T
    Flink安装和演示
    GraphRAG学习小结(4)
    一百八十二、大数据离线数仓完整流程——步骤一、用Kettle从Kafka、MySQL等数据源采集数据然后写入HDFS
    raw图片处理软件:DxO PhotoLab 6 mac中文版支持相机格式
    Redis性能滑坡:哈希表碰撞的不速之客【redis第二部分】
    Android---Gradle 构建问题解析
    02.前后端分离中台框架前端 admin.ui.plus 学习-介绍与简单使用
    大数据之Kafka
  • 原文地址:https://blog.csdn.net/Vince15dvd/article/details/139745754