• 记录的相关操作


    记录的相关操作

    一. 介绍

    mysq数据操作: DML

    在mysql管理软件中,可以通过sql语句中的DML语言来实现数据的操作,包括

    -- 使用insert 实现数据的插入
    -- update 实现数据的更新
    -- delete 实现数据的删除
    -- select 实现数据的查询以及链表,子查询...
    

    二. 插入数据 insert

    插入完整数据(顺序插入)

    按照字段的顺序插入数据

    -- 语法1:
    insert into 表名(字段1,字段2,字段3...) values(值1,值2,值3..);
    -- 语法2:
    insert into 表名 values(值1,值2,值3...);
    

    为指定字段插入数据

    -- 语法:
    insert into 表名(字段3,字段1,字段2...) values(值3,值1,值2...);
    

    插入多条记录

    -- 语法
    insert into 表名 values(值1,值2,值3),(值4,值5,值6),(值7,值8,值9);
    

    插入查询结果

    -- 语法
    insert into 表名(字段1,字段2,字段3...)
    	select (字段1,字段2,字段3) from 表2 where ...;
    -- 例如
    insert into user select host,user,password from mysql.user;
    
    -- 将表中数据去重并保存
    CREATE table user1(
    	id int PRIMARY KEY auto_increment,
    	username varchar(24),
    	password varchar(16)
    );
    
    insert into user1(username,password) 
    
    SELECT username,`password` from user where username!='' GROUP BY username;
    
    drop TABLE user;
    alter table user1 rename user;
    

    三. 更新数据 update

    -- 语法
    update 表名 set
    	字段1=值1,
    	字段2=值2,
    	where condition;
    -- 例如
    update mysql.user set password=password('123')
    	where user='jkey' and host='l27.0.0.1';
    

    四. 删除数据delete

    -- 语法
    delete from 表名
    	where conition;
    -- 实例
    	delete from t8 where id = 1;  # 将t8表中id=1的记录删除了
    

    练习:

    1.将root用户密码改为123

    -- 5.6 版本更新
    update mysql.user set password=password('123') where user='root';
    flush privileges;
    exit -- 退出mysql重新进入
    
    -- 5.7 版本
    update mysql.user set authentication_string=password('123') where user='root';
    update mysql.user set password_expired='N' where user='root';
    flush privileges;
    quit -- 退出重新进入mysql
    

    2.删除除本地登录的root用户以外的所有用户

    delete from mysql.user where user!='root';
    

    用户权限 DB

    在我们以前的程序中,我们登录是将用户输入的数据和我们的文件中的数据进行比较,而在mysql中我们的文件就是表,

    mysql中四张权限表

    1. user(用户权限)->db(库权限)->table_priv(表权限)->columns_priv(字段权限)

      权限是越来越低的

    user表信息

    • select * from user/G;
    • localhost root password...
    • 127.0.0.1 root
    • ::1 root
    • localhost

    创建账号

    1. 只创建账号

      create user tom@"客户端的ip" identified by "密码";

      客户端:192.168.1.11 服务器端:192.168.1.1

      创建账户和密码
      只允许192.168.1.11的客户端登录
      create user tom@"192.168.1.11" identified by "123"; 
      允许192.168.1.网段的客户端登录
      create user tom@"192.168.1.%" identified by "123"; 
      允许任何可以ping通的网段的客户端登录
      create user tom@"%" identified by "123"; 
      
      客户端登录
      mysql -utom -p"123" -h 192.168.1.1 -P 3306;
      

      注意:这样创建的账号是没有权限的

    2. 创建账户,并且授权(只有root才可以为其他账号授权grant)

      1. *(代表库).*(代表表) ==> 对应着user级别的权限(mysql.user)

        grant all on *.* to "tom"@"192.168.1.1" identidied by "123";

        all代表除了grant(为其他账号授权的权限)的所有权限

      2. db1.*===>对应着mysql.db(库)

        grant all on db1.* to "jack"@"192.168.1.1" identidied by "123";

      3. db1.t1 ==>对应着mysql.tables_priv(表)

        grant all on db1.t1 to "rose"@"192.168.1.1" identidied by "123";

      4. select(id),update(name) db1.t1 ==>对应着mysql.columns_priv(字段)

        grant select(id),update(name) on db1.t1 to "jj"@"192.168.1.1" identidied by "123";

    修改完权限一定要 flush privileges; 刷新权限信息

    删除账号

    drop user "tom"@"192.168.1.1";
    drop user "jack"@"192.168.1.1";
    drop user "rose"@"192.168.1.1";
    drop user "jj"@"192.168.1.1";
    flush privileges;
    
  • 相关阅读:
    深入理解Aspnet Core之Identity(1)
    vscode同步插件 sync(gist,token)
    括号匹配问题
    EI目录下载地址及保护密码
    极简单的方式序列化sqlalchemy结果集为JSON
    OpenCvSharp 通过特征点匹配图片
    HttpWebRequest提高效率之连接数,代理,自动跳转,gzip请求等设置问题
    子网掩码划分
    使用批处理复制并以时间规则重命名文件
    九步确定你的人生目标
  • 原文地址:https://www.cnblogs.com/jkeykey/p/14457401.html
Copyright © 2020-2023  润新知