zoukankan      html  css  js  c++  java
  • day37:MySQL基本操作

    目录

    part1:登录mysql的完整语法

    part2:查询用户/设置密码/去除密码

    part3:给ip/网段/所有ip设置账号密码

    part4:查看权限

    part5:添加权限/删除权限/删除用户

    part6:操作数据库:database

    part7:操作表:table

    part8:操作表中的数据(记录)

    part9:MySQL中数据类型

    part10:枚举和集合

    part1:登录mysql的完整语法

    # (1) 登录mysql语法 默认root账户 是系统最高权限用户
    mysql -uroot -p 
    
    127.0.0.1 =>localhost 本地ip地址
    # (2) 退出mysql
    exit 或者 q
    
    # (3) 远程连接mysql服务器
    mysql -uroot -p -h192.168.65.135

    part2:查询用户/设置密码/去除密码

    # 查询当前登录的用户是谁
    select user()
    
    # 设置密码
    set password = password("123456")
    
    # 去除密码
    set password = password("")

    part3:给ip/网段/所有ip设置账号密码

    # 给具体某个ip设置账号密码,用来访问数据库(公网ip)
    create user 'ceshi100'@'192.168.65.1' identified by '333';
    
    # 给具体某个网段下的所有ip设置共同的账号密码,用来访问数据库(公网ip) %代表任意的ip 0~255
    create user 'ceshi101'@'192.168.174.%'  identified by '444';
    
    # 所有的ip都可以登录到服务器数据库中
    create user 'ceshi102'@'%' identified by '555';

    part4:查看权限

    # 刷新权限,立刻生效
    flush privileges
    
    # 查看哪个ip哪个用户的权限
    '''USAGE 没有任何权限'''
    show grants for 'ceshi102'@'%';
    +--------------------------------------+
    | Grants for ceshi102@%                |
    +--------------------------------------+
    | GRANT USAGE ON *.* TO 'ceshi102'@'%' |
    +--------------------------------------+

    part5:添加权限/删除权限/删除用户

    grant 权限 on 数据库.表名 to '用户名'%'ip地址' identified by '密码'
    
    """
    # 主要权限
    select 查看数据表的权限
    insert 插入数据表的权限
    update 更新数据表的权限
    delete 删除数据表的权限
    drop   删除数据库的权限
    *      代表所有
    """
    
    grant select,drop on *.* to 'ceshi102'@'%' identified by "333"
    
    # all 代表所有权限
    grant all on *.* to 'ceshi102'@'%' identified by "333"
    
    # 移除权限
    # 单个
    revoke drop on  *.* from 'ceshi102'@'%'
    # 所有
    revoke all on  *.* from 'ceshi102'@'%'
    
    # 删除用户
    drop user 'ceshi102'@'%'

    part6:操作数据库:database

    # (1) 操作[数据库] (文件夹)
    ''''''
        # 创建一个数据库
        create database db0824 charset utf8;
    
    ''''''
        # 查看所有数据库
        show databases
    # 查看建立数据库的语句 show create database db0824 # CREATE DATABASE `db0824` /*!40100 DEFAULT CHARACTER SET utf8 */ '''''' alter database db0824_1 charset gbk '''''' drop database db0824_1;

    part7:操作表:table

    # (2) 操作[数据表] (文件)
    # 先选择数据库
        use 数据库名
    
    ''''''
        # 字段名1 类型1 ,字段名2 类型2 , ... ... 
        create table t1(id int , name char);
    
    ''''''
        # 查看所有表 
        show tables;
        # 查看建表语句 配合G 可以垂直显示
        show create table t1;
        """
        Create Table: CREATE TABLE `t1_1` (
          `id` int(11) DEFAULT NULL,
          `name` char(1) DEFAULT NULL
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8
        """
        
        # 查看表结构
        desc t1
    
    ''''''
        # modify 只能改变数据类型
        alter table t1 modify name char(5)
        # change  连字段名 + 类型一起改变
        alter table t1 change name newname char(4)
        # add 添加字段
        alter table t1 add age int;
        # drop 删除字段 column列
        alter table t1 drop column age
        # rename 更改表名
        alter table t1 rename t1_2
        
    ''''''
        drop table t1_2;

    part8:操作表中的数据(记录)

    # (3) 操作[记录] (文件中的数据)
    ''''''
        # 一次插入一条数据
        '''insert into 表名(字段1,字段2,...) values(值1,值2, .... )'''
        insert into t1_1(id,name) values(1,"xboy1");
    
        # 一次插入多条数据
        insert into t1_1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4");
    
        # 不指定具体字段插入(默认把所有字段对应的值插一遍)
        insert into t1_1 values(5,'xboy5');
    
        # 指定单个字段插入数据
        insert into t1_1(name) values('xboy6');    
    
    ''''''
        # * 代表所有
        select * from t1_1;
    
        # 指定字段进行查询
        select id,name from t1_1;
        
    ''''''
        # update 表名 set 字段=值  where 条件
        update t1_1 set name="王闻你真帅" where id = 1
    
        # 切记更改时,加上条件,否则全都改掉了
        update t1_1 set name="王闻你真帅" 
    
    ''''''
        # 指定id=2的这条数据删除
        delete from t1_1 where id = 1
    
        # 如果不加条件,删除所有数据
        delete from t1_1 
        
        # 重置数据表 (删除数据 + 重置id)
        truncate table t1_1;

    part9:MySQL中数据类型

    1.整型

    tinyint 1个字节 有符号(-128 ~ 127) 无符号(unsigned) (0 ~ 255) 小整型值

    int 4个字节 有符号(-21亿 ~ 21亿 左右) 无符号(unsigned) (0 ~ 42亿) 大整型值

    create table t1(id int , age tinyint );
    insert into t1 values(2200000000,1) #  error
    insert into t1 values(2100000000,1) 
    insert into t1 values(2100000000,128)  # error
    insert into t1 values(2100000000,127)  

    2.浮点型

    float(255,30) 单精度,总长度最多255位,小数长度最多30位,整数长度最多225位

    double(255,30) 双精度,总长度最多255位,小数长度最多30位,整数长度最多225位

    decimal(65,30) 金钱类型,使用字符串的形式保存小数,总长度最多65位,小数长度最多30位,整数长度最多35位

    """默认存在四舍五入"""
        create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
        insert into t2 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);

    存储结果如下图所示

    """float 默认小数保留5位,double小数位截取16位,decimal(10,0) 默认保留整数,存在四舍五入"""
        create table t3(f1 float,f2 double ,f3 decimal); 
        insert into t3 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);

    存储结果如下图所示

    3.字符串类型

    char 字符长度 255个

    varchar 字符长度 21845个 (注意:总字节数不超过65535)

    char(11) 定长 : 固定开辟11个字符长度的空间(手机号,身份证号,银行卡), 开辟空间速度上char速度更快

    varchar(11) 变长 : 最多开辟11个字符长度的空间(评论,消息留言,地址), 开辟速度相较于char慢一点.

    text 文本类型,存论文,小说,文章..

        create table t5(c char(11), v varchar(11) , t text);
        insert into t5 values('22222',"33333","44444");
        insert into t5 values('22222',"33333333333333333333","44444");  # error
        
        # concat 拼接任意长度的字符串
        select concat(c,":",v,":",t) from t5;
    
        # mysql 中函数
        select user()
        select concat()
        select concat(参数1,参数2,参数3 , ... ) 把所有的参数拼接在一起

    concat拼接后的结果如下图所示

    part10:枚举和集合 

    enum 枚举 : 从列出来的数据当中选一个,比如性别

    set 集合 : 从列出来的数据当中选多个(自动去重),比如爱好

        create table t6(
        id int,
        name varchar(10),
        money float(6,3),
        sex enum("男性","女性","禽兽","人妖","雌雄同体","半兽人","阿凡达"),
        hobby set("吃肉","抽烟","喝酒","喝假酒")
        );
    
    
        # 正常
        insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟");
        # 自动去重
        insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");

    存储结果如下图所示

  • 相关阅读:
    搜索
    c++ map与unordered_map区别及使用
    01BFS
    宇智波程序笔记55-Flutter 混合开发】嵌入原生View-iOS
    宇智波程序笔记54-解Bug之路-记一次线上请求偶尔变慢的排查
    宇智波程序笔记53-从红黑树的本质出发,彻底理解红黑树!
    宇智波程序笔记52-最受欢迎的微服务框架概览
    宇智波程序笔记51-JDK 15安装及新特性介绍
    宇智波程序笔记50-解Bug之路-记一次线上请求偶尔变慢的排查
    宇智波程序笔记49-link JDBC Connector:Flink 与数据库集成最佳实践
  • 原文地址:https://www.cnblogs.com/libolun/p/13556754.html
Copyright © 2011-2022 走看看