PHP和MySQL Web开发读书笔记---创建Web数据库

先写个题外话,老是要忘记,byte和bit的区别,1byte=8bit,即一个字节有8位

1.创建权限 GRANT命令

  GRANT privileges [columns]          //privileges是由逗号分开的一组权限 columns可以对每一列进行权限的设置

  ON items      //items是新权限所应用于的数据库或表 可以将项目指定为*.*,这叫赋予全局权限,dbname.*表示指定数据库中的所有表,以dbname.tablename    制定单个表

  TO user_name [IDENTIFIED BY 'password']    //user_name可以包含一个主机名 如 allen@allen.com

  [REQUIRE ssl_options]   //require子句允许指定用户是否必须通过加密套接字连接,或者指定其他的ssl选项

  [WITH [GRANT OPTION|limit_options]]//WITH GRANT OPTION 选项如果指定,表示允许用户再向别人授予自己所拥有的权限

  我们也可以指定MAX_REQUIRE_PER_HOUR n

          MAX_UPDATES_PER_HOUR n

         MAX_CONNECTIONS_PER_HOUR n

  这些子句可以指定每一个用户每小时执行查询、更新、和连接的次数,在共享的系统上限制单个用户的负载时,非常有用

2.关于权限控制的5个系统表:mysql.user mysql.db  mysql.host  mysql.tables_priv  mysql.columns_priv\

3.权限的类型和级别

  适用于一般用户的权限

    SELECT----------表、列-----------------选择行
    UPDATE----------表、列-----------------修改行
    DELETE----------表----------------------删除行
    INSERT----------表、列-----------------插入行
    ALTER------------表--------------------创建和拖动表索引(这个权限需需慎重考虑)
    INDEX------------表----------------------改变表的结构
    CREATE----------数据库、表-------------创建数据库或表
    DROP------------数据库、表-------------拖动(删除)数据库或表

     适用于赋予管理员的权限 

    CREATE TEMPORRARY TABLES--------------允许在使用create tables 的时候使用temporary关键字
    FILE--------------------------------------允许将数据从文件读入表,或从表读入文件(这个权限一般也会给一般用户,但要注意)
    LOCK TABLES-------------------------------允许使用lock tables语句
    RELOAD-----------------------------------允许重新载入授权表、清空授权、主机、日志、表
    PERLICATION CLIENT-----------------------允许在复制主机和从机上使用show status
    PERLICATION SLAVE-----------------------允许复制从服务器连接到主服务器
    SHOW DATABASES-------------------------允许查看所有数据库
    SHUTDOWN-------------------------------允许关闭mysql服务器
    SUPER------------------------------------允许关闭属于任何用户的线程

  几个特定的权限   

    ALL------------------------------------授予上述两表的所有权限,也可以写成ALL PRIVILEGE
    USAGE-----------------------------------创建一个用户仅允许他登录,但不允许进行任何操作

4.删除权限 REVOKE权限

  REVOKE privilege [(columns)]

  ON items

  FROM user_name

  如果给出WITH GRANT OPTION子句,可以如下子句撤销(以及所有其他权限) 

    REVOKE All PRIVILEGES,GRANT
    FROM user_name

  下面是几个例子:

mysql-> grant all privileges
	      on *
	      to fred identified by '123456'
	      with grant option;

mysql-> grant usage
	      on books.*
	      to sally;

mysql-> grant select,alter,updetes
              on books.*
	      to fred;

mysql-> revoke alter
	      on books.*
              from fred; 

5.指定了auto_increment的列必须是索引列

6.char类型的列,系统将为其自动填充空格,varchar类型可以根据需要分配存储空间,这样占用空间小,但是速度没有前者快

7.创建索引

  CREATE [UNIQUE|FULLTEXT] INDEX index_name               //FULLTEXT用来索引文本字段

  ON table_name (index_column_name[(length)] [ASC|DESC])          //length 可以指定该字段前length个字符被索引,默认升序

8.MySQL中的数据库将被映射到具有某种文件结构的目录,而数据表将被映射为某个文件

    需要配置目录和包含数据文件的位置,如mysqladmin -h host -u root -p variables;然后再查询datadir变量

9.MySQL列数据类型共3种:

  数字(整型和浮点型)

  日期和时间(date,time,datetime,timestamp[(m)],year[(2|4)])

  字符串(普通字符串(char和varchar),TEXT和BLOB,SET和ENUM)

posted @ 2013-04-12 23:05  山贼一名  阅读(241)  评论(0)    收藏  举报