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,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");

    存储结果如下图所示

  • 相关阅读:
    Educational Codeforces Round 86 (Rated for Div. 2) D. Multiple Testcases
    Educational Codeforces Round 86 (Rated for Div. 2) C. Yet Another Counting Problem
    HDU
    HDU
    HDU
    HDU
    Good Bye 2019 C. Make Good (异或的使用)
    Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam
    codeforces 909C. Python Indentation
    codeforces1054 C. Candies Distribution
  • 原文地址:https://www.cnblogs.com/libolun/p/13556754.html
Copyright © 2011-2022 走看看