日期:2014-05-16  浏览次数:20742 次

mysql 学习一 基本入门命令
    自己写了个小的程序,结果到了tomcat上乱码,搞得我大为懊恼.虽说后来解决了,是tomcat而不是数据库的问题,但是我还是打算系统的学习下数据库.
    本系列文章主要是基于mysql5.1的参考文档总结还有一部分是使用的信息,将这些记录下来.
    首先mysql的安装信息就不讲了,直接进入正题.
    使用命令行连接mysql:  mysql -h host -u user -ppassword 如果是本地可以忽略-h host.
如果不相显示password可以使用mysql -h host -u user -p然后使用密文输入密码.

连接进入mysql后我们就可以使用mysql命令了.在mysql中sql命令是不区分大小写的.

SELECT VERSION(), CURRENT_DATE;  
select version(), current_date;
SeLeCt vErSiOn(), current_DATE;
这三句话的效果是一样的请求mysql的版本号和当前日期.

如果想查看所有的数据库使用
show databases();如果想使用某个数据库则使用命令use 数据库名;如use test;这个时候你就可以使用这个数据库中的表了.如果想查看所有表可以使用SHOW TABLES;命令就可以查看所有的表的.
  如果想查看表信息使用describe user;命令
SHOW INDEX FROM tbl_name可以查看表的索引信息.

创建用户,授权
我们最常用的就是创建用户了,在mysql里面有两种方式可以创建用户:
1使用GRANT语句
2直接操作MySQL授权表
最好的方法是使用GRANT语句,因为这样更精确,错误少
使用grant语句
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
对这句话进行解读一下,本地登录(localhost)情况下monty用户可以登录,密码是some_pass,该用户可以对本地的任何数据库(*.*)进行任何操作(ALL PRIVILEGES),并且该用户可以进行授权.
grant 权限  on 数据库.表名 to '用户名'@'登录地点' identified by '密码' (with grant option)
再举例:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.*TO 'custom'@'whitehouse.gov' IDENTIFIED BY 'obscure'; 创建用户同时授权在whitehouse.gov访问的时候在expenses这个数据库中所有的表具有SELECT,INSERT,UPDATE,DELETE,CREATE,DROP权限.

操作mysql授权表
在mysql中安装后就有一些默认的数据库,mysql是其中一个.在mysql数据库中有一个表是user表,而这个表就是记录用户信息的表,
可以查看一下主要是前面的三个字端host,user,password,后面的就是各种权限了.so 最基本的语句就是INSERT INTO user (Host,User,Password) VALUES('localhost','dummy',PASSWORD('some_pass'));
此时其他的字段默认为N.同样你也可以对其他字段进行显示的赋值Y.
1在直接操作mysqln用户表时需注意第一密码一定要加密,如上例(在grant语句中已经默认为你的密码加密了);2添加万用户后你需要FLUSH PRIVILEGES;是数据库生效,否则你只能等待服务器重启了.其实更建议看一下这个表的信息
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field                 | Type                              | Null | Key | Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host                  | char(60)                          | NO   | PRI |         |       |
| User                  | char(16)                          | NO   | PRI |         |       |
| Password              | char(41)                          | NO   |     |         |       |
| Select_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Insert_priv      &n