zoukankan      html  css  js  c++  java
  • mysql四:数据操作

    一、介绍

    MySQL数据操作: DML

    ========================================================

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

    1. 使用INSERT实现数据的插入
    2. UPDATE实现数据的更新
    3. 使用DELETE实现数据的删除
    4. 使用SELECT查询数据以及。

    ========================================================

    二、插入数据INSERT

    1. 插入完整数据(顺序插入)
        语法一:
        INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
    
        语法二:
        INSERT INTO 表名 VALUES (值1,值2,值3…值n);
    
    2. 指定字段插入数据
        语法:
        INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);
    
    3. 插入多条记录
        语法:
        INSERT INTO 表名 VALUES
            (值1,值2,值3…值n),
            (值1,值2,值3…值n),
            (值1,值2,值3…值n);
    
    4. 插入查询结果
        语法:
        INSERT INTO 表名(字段1,字段2,字段3…字段n) 
                        SELECT (字段1,字段2,字段3…字段n) FROM 表2
                        WHERE …;

      往一张表里插记录可以用select代替values,把查的结果直接传给表相应的字段,查出来的结果必须和表的字段一一对应。

    三、更新数据UPDATE

    语法:
        UPDATE 表名 SET
            字段1=值1,
            字段2=值2,
            WHERE CONDITION;
    
    示例:
        UPDATE mysql.user SET password=password(‘123’) 
            where user=’root’ and host=’localhost’;

      更新mysql库下的user表,设置字段password=password('123'),用来将密码加密,where指定需要改掉密码的记录,用户为root且地址为localhost的记录。定位到记录后,把符合条件的password都进行修改。

    四、删除数据DELETE

    语法:
        DELETE FROM 表名 
            WHERE CONITION;
    
    示例:
        DELETE FROM mysql.user 
            WHERE password=’’;
    
    练习:
        更新MySQL root用户密码为mysql123
        删除除从本地登录的root用户以外的所有用户

      删除符合条件的一些记录用delete。

      如果要删除整张表,可以用truncate。# 应该用truncate清空表,比起delete一条一条地删除记录,truncate是直接清空表,在删除大表时用它

    语法:
        truncate 表名;
    示例:
        truncate student1;

    五、查询数据SELECT

      单表查询:http://www.cnblogs.com/xiugeng/p/9028541.html

      多表查询:http://www.cnblogs.com/xiugeng/p/9030720.html

    六、权限管理和Navicat工具

    1、权限管理

      授权:对文件夹,对文件,对文件某一字段的权限。授权操作只能通过root用户!!

      查看帮助:help grant

      常用权限有:select,update,alter,delete all可以代表除了grant之外的所有权限。

    #授权操作只能通过root用户!!
    
    set global validate_password_policy=0;
    set global validate_password_length=1;
    # 安全设置问题,查看这个:http://www.jb51.net/article/95399.htm
    创建账号:
      # 本地账号
      create user 'egon'@'localhost' identified by '1234';    # mysql -uegon -p123
      # 远程账号
      create user 'egon'@'192.168.31.10' identified by '1234';   # mysql -uegon -p123 -h 服务端ip
        # 让一个网段内所有机器都可以登录
        create user 'egon'@'192.168.31.%' identified by '1234';
        # 让所有能Ping通机器都可以登录
        create user 'egon'@'%' identified by '1234';
    
    授权级别
        user:*.* 对所有库所有表
        db:db1.* 对db1库里所有表
        table_priv:db1.t1 对某一个表开放权限
        columns_priv:id,name 对某一个字段开放权限
    
    授权方法
        # user级别    select * from mysql.userG;可以查看授权情况
            # 授权  
            grant select on *.*;  授权所有库所有表的select
            grant select on *.* to 'egon'@'localhost'; 
            grant all on *.* to 'egon'@'localhost';  授权对所有库下所有表的权限(all不包含grant权限)
            # 收回权限
            revoke select on *.* from 'egon'@'localhost'; 
        # db级别    select * from mysql.dbG;可以查看授权情况
            # 授权
            grant selcect on db1.* to 'egon'@'localhost';
            # 收回权限
            revoke select on db1.* from 'egon'@'localhost';
        # table     select * from mysql.tables_privG;查看授权情况
            # 授权
            grant select on db1.t2 to 'egon'@'localhost';
            # 收回权限
            revoke select on db1.t2 from 'egon'@'localhost';
        # 字段级别
            # 授权
            grant select(id,name), update(age) on db1.t2 to 'egon'@'localhost';  # 字段的查看、字段的更新权限
            # 收回权限
            revoke select(id,name),update(age) from db1.t2 to 'egon'@'localhost';  

    2、Navicat

      在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库

    官网下载:https://www.navicat.com/en/products/navicat-for-mysql
    
    网盘下载:https://pan.baidu.com/s/1bpo5mqj
    
    需要掌握的基本操作
    
    掌握:
    #1. 测试+链接数据库
    #2. 新建库
    #3. 新建表,新增字段+类型+约束
    #4. 设计表:外键
    #5. 新建查询
    #6. 备份库/表
    
    #注意:
    批量加注释:ctrl+?键
    批量去注释:ctrl+shift+?键
  • 相关阅读:
    golang 操作json
    CloudFoundry应用部署记录
    Stream流
    学做8位计算机
    无废话技术选型之--消息中间件选型(rabbitMQ、rocketMQ、kafka)
    无废话设计模式(22)行为型模式--解释器模式
    无废话设计模式(21)行为模式--迭代器模式
    无废话设计模式(20)行为型模式--职责链模式
    无废话设计模式(19)行为模式--访问者模式
    无废话设计模式(18)行为型模式--命令模式
  • 原文地址:https://www.cnblogs.com/xiugeng/p/9028357.html
Copyright © 2011-2022 走看看