• mysql


    mysql


    登录

    mysql -u root -p   
    
    • 1

    在这里插入图片描述
    然后输入自己的密码即可



    数据库操作


    创建数据库

    CREATE DATABASE 数据库名;
    
    • 1

    例子

    create databases app;
    
    • 1

    删除数据库

    drop database 数据库名;
    
    • 1

    例子

    drop databases app;
    
    • 1

    显示所有数据库

    show databases;
    
    • 1

    选择数据库

    use 数据库名;
    
    • 1

    例子

    use app;
    
    • 1



    mysql数据类型


    数值类型

    • 严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

    • 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

    • BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

    • 作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。


    菜鸟上

    在这里插入图片描述


    个人常用

    类型存储(字节)范围(有符号)范围(无符号)用途
    INT或INTEGER 4 4 4 − 2 16 {-2}^{16} 216 ~ 2 16 − 1 {2}^{16} - 1 2161 0 0 0 ~ 2 32 − 1 {2}^{32} - 1 2321大整数值
    BIGINT 8 8 8 − 2 32 {-2}^{32} 232 ~ 2 32 − 1 {2}^{32} - 1 2321 0 0 0 ~ 2 64 − 1 {2}^{64} - 1 2641极大整数值
    DOUBLE 8 8 8双精度 浮点数值

    double

    • 小数部分能精确到小数点后的15位,加上小数点前的一位 有效位数为16位
    • 整数位和小数位一起存储。在不指定精度时。默认会按照实际的精度来显示
    • double(m, d) 中 m其实没太大关系, 只是最后是四舍五入保留d位

    日期和时间类型

    • 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

    • 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

    菜鸟上

    在这里插入图片描述


    字符串类型

    • 字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

    菜鸟上

    在这里插入图片描述

    • 注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

    • CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换

    • BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

    • BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

    • 有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。


    另外

    more

    会处理尾部空格:如果存储数据末尾包含空格,则会删除末尾空格

    类型最大存储字符特点说明查询速度
    char(m)255 定常类型不够m个长度就在尾部补上空格,凑齐m个长度。会处理尾部空格最快
    varchar(m)65535变长类型不用补全空格,m建议越小越好,长度够用即可。不处理尾部空格次之
    text65535文本类型不用加默认值,有排序规则和字符集。不处理尾部空格最慢
    blob二进制类型没有排序规则或字符集

    char 和 varchar
    • 在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是:VARCHAR存储可变长度的字符串。
    • 当数据为CHAR(M)类型时,不管插入值的长度是实际是多少它所占用的存储空间都是M个字节;而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1
    插入值插入char(3)中char存储大小插入varchar(3)中varchar存储大小
    ‘’‘’3个字节‘’1个字节
    ‘a’‘a’3个字节‘a’2个字节
    ‘ab’‘ab’3个字节‘ab’3个字节
    ‘abc’‘ab’3个字节‘abc’4个字节
    ‘abcd’‘ab’3个字节‘abc’4个字节



    数据表操作

    插入用户

    使用CREATE USER 语句创建新用户

    CREATE USER '用户名'@'LOCALHOST' IDENTIFIED BY '密码';
    
    • 1
    给予权限
    grant select, insert, update, delete, create, drop, alter on *.* to 'dipa-user'@'localhost' with grant option;
    
    • 1
     flush privileges;
    
    • 1

    使用GRANT 语句创建新用户

    grant select,insert on *.* to '用户名'@'localhost' identified by '密码';
    
    • 1

    修改密码策略

    • 在创建用户是可能会出现
    • ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看密码策略
    SELECT @VALIDATE_PASSWORD_POLICY;
    
    • 1
    show variables like '%validate_password.policy%';
    show variables like '%validate_password.length%';
    
    • 1
    • 2
    修改密码策略
    set global validate_password_policy = 0;  #设置为弱口令
    
    • 1
    set global validate_password.policy=0;  #设置为弱口令
    set global validate_password.length=1;  #密码最小长度为1
    
    • 1
    • 2

    新建数据表

    CREATE TABLE 数据表名 (数据名 数据类型);
    
    • 1

    例子

    create table app(
    	id int not null auto_increment,
    	username varchar(255) not null,
    	password varchar(255) not null,
    	nickname varchar(255),
    	phone varchar(255),
    	sex int default '0',
    	primary key('id')
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • not null 非空
    • auto_increment 自增
    • default 默认值
    • primary key() 设置默认值。 设置多个变量时,中间用逗号分隔

    删除数据表

    DROP TABLE 表名;
    
    • 1

    例子

    drop table app;
    
    • 1

    显示数据表所有信息

    select * from 表名;
    
    • 1

    例子

    select * from app;
    
    • 1

    修改数据表

    插入数据

    INSERT INTO 数据表 ( 字段1, 字段2, ..., 字段N ) VALUES  
                                       ( 数据1, 数据2, ..., 数据N );
    
    • 1
    • 2

    或者全部字段都要插入 没有指定字段的插入

    INSERT INTO 数据表 VALUES ( 数据1, 数据2, ..., 数据N );
    
    • 1

    例子

    insert into app (id, username, password) values
                            (1, 'admin', 'admin');
    
    • 1
    • 2

    或者

    insert into app values (1, 'admin', 'admin', 'admin', '13333333333', '0');
    
    • 1



    修改数据库密码

    set password for 用户名@localhost=password('新密码');
    
    • 1



    可能会出现的问题


    数据库未启动

    net start mysql
    
    • 1

    菜鸟教程的mysql

    大佬的mysql

  • 相关阅读:
    Java常用API之String
    项目经理必看!4个万能公式,轻松搞定即兴发言!
    dpdk 多进程模型对 pmd 驱动实现的要求
    马斯克嘲讽元宇宙:谁会整天戴着头显设备?
    async-validator
    python笔记
    JavaScript事件监听器总结
    虹科产品丨HK-TrueNAS SCALE可使用公共云存储
    Java项目:SSM网上外卖订餐管理系统
    Nevron Vision for .NET 2023.1 Crack
  • 原文地址:https://blog.csdn.net/weixin_52136008/article/details/126922344