zoukankan      html  css  js  c++  java
  • JAVA / MySql 编程——第六章 Mysql 创建账户的相关命令

    1、        创建普通用户:

    语法:

    CREATE USER `user`@`host` [IDENTIFIED 'password'];   //user:用户名,host:主机名,password:密码;

    Eg:创建本地用户teacher,密码为123456

    CREATE USER `teacher`@`localhost` IDENTIFIED BY '123456';

    Eg:本地用户student,无密码

    CREATE USER `student`@`localhost`;   

    `@`localhost`本地用户,允许登录其他主机可省略

    2、        创建用户并授权:

    GRANT语句可实现创建用户同时授权或为已存在的用户授权;

    语法:

    GRANT priv_type ON databasename.tablename   // priv_type:用户操作权限列表;  // databasename.tablename:权限范围,即库名.表名

    TO `user`@`host`[IDENTIFIED BY 'password'] [WITH GRANT OPTION];  //赋予GRANT权限

     常用操作权限

      CREATE和DROP权限

      INSERT、DELETE、SELECT和UPDATE权限

      ALTER权限

    注:1.如果授予所有权限, priv_type可使用ALL

    2.为所有数据库和表授权,权限范围可使用*.*

    Eg:创建本地用户xiaoming,密码123456,赋予myschool数据库中student表增加和查询权限

        GRANT INSERT,SELECT ON myschool.student TO `xiaoming`@`localhost`  IDENTIFIED BY '123456';

    Eg:为student@localhost用户授予myschool数据库中view_student视图的查询权限

    GRANT SELECT ON myschool.view_student TO `student`@`localhost`;

    创建用户报错的:

    mysql> grant all on epet.*to `QINGG`@`localhost` identified  by '1234';

    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

    解决方法:

    mysql> flush privileges

    Query OK, 0 rows affected (0.01 sec)

    mysql> grant all on epet.*to `QINGG`@`localhost` identified  by '1234';

    Query OK, 0 rows affected, 1 warning (0.01 sec)

    3、        使用mysqladmin命令修改root账户密码:

    语法:

      mysqladmin–u username –p password "newpassword"    // newpassword:新密码

    注:mysqladmin需在DOS命令行执行,回车后输入原密码;

    Eg:将root密码修改为1234

      mysqladmin –u root –p password "1234"

    Enter password:****

    4、        使用SET命令修改用户密码:登录MySQL服务器后,使用SET命令修改当前用户密码;

    语法:

      SET PASSWORD  [FOR `username`@`host`]= PASSWORD("newpassword")   //[FOR `username`@`host`]:可指定修改其他用户密码

    注:只有超级管理员用户(如root用户)才能修改其他用户密码,如果是普通用户,可修改自己的密码;

    Eg修改当前用户密码

    SET PASSWORD = PASSWORD("0000");

    Eg修改其他用户密码

    SET PASSWORD  FOR `teacher`@`localhost`= PASSWORD("8888");    

    5、        删除用户:

    语法:
      
    DROP USER `username1`@`host`[,`username2`@`host`……];

      EgDROP USER `student`@`localhost`;      

    6、        DISTINCT:distinct一般是用来去除查询结果中的重复记录的,而且这个语句在select、insert、delete和update中只可以在select中使用;

    Eg:在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。

    A

     

    B:

     

    1.作用于单列

    select distinct name from A

    执行后结果如下:

     

    2、作用于多列

    Eg

    select distinct name, id from A

    执行后结果如下:

     

    实际上是根据nameid两个字段来去重的,这种方式AccessMySQLSQL Server同时支持。

    Eg

    select distinct xing, ming from B

    返回如下结果:

     

    返回的结果为两行,这说明distinct并非是对xingming两列字符串拼接后再去重的,而是分别作用于了xingming列。

    注意:从上例中可以发现,当distinct应用到多个字段的时候,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,

    而且distinct只能放到所有字段的前面

    如下语句是错误的:

    SELECT xing, distinct ming from B; // 该语句是错误的

    抛出错误如下:

    [Err] 1064 - You have an error in your SQL syntax;

    check the manual that corresponds to your MySQL server version for the right syntax to use near ‘DISTINCT province from B’ at line 1

    3COUNT统计

    select count(distinct name) from A;   --表中name去重后的数目, SQL ServerMySQL支持,而Access不支持

    count是不能统计多个字段的,下面的SQL无法运行。

    select count(distinct name, id) from A;

    若想使用,请使用嵌套查询,如下:

    select count(*) from (select distinct xing, name from B) AS M;

    4distinct必须放在开头:

    distinct应用到多个字段的时候,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct只能放到所有字段的前面,

    select id, distinct name from A;   --会提示错误,因为distinct必须放在开头

    5、针对NULL的处理:distinctNULL是不进行过滤的,即返回的结果中是包含NULL值的。

    6、与ALL不能同时使用

    默认情况下,查询时返回所有的结果,此时使用的就是all语句,这是与distinct相对应的,如下:

    select all country, province from person

    7、与distinctrow同义

    select distinctrow expression[,expression...] from tables [where conditions];

    这个语句与distinct的作用是相同的。

    8、对*的处理:*代表整列,使用distinct*操作
    select DISTINCT * from person 

    相当于

    select DISTINCT id, `name`, country, province, city from person;

    9其他

    distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A备注列,如果想获取distinc name,以及对应的备注字段,想直接通过distinct是不可能实现的。

     

  • 相关阅读:
    状态模式
    策略模式Strategy(对象行为型)
    模板方法模式
    Java_观察者模式(Observable和Observer) -转
    Cordova自定义插件
    MongoVUE查询备忘
    C#关于HttpClient的统一配置(一)
    C#邮件收发
    WebApi统一输出接口
    移动开发兼容性问题及性能优化
  • 原文地址:https://www.cnblogs.com/HQING/p/9347553.html
Copyright © 2011-2022 走看看