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           | enum('N','Y')                     | NO   |     | N       |       |
| Update_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Delete_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Create_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Drop_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Reload_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Shutdown_priv         | enum('N','Y')                     | NO   |     | N       |       |
| Process_priv          | enum('N','Y')                     | NO   |     | N       |       |
| File_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Grant_priv            | enum('N','Y')                     | NO   |     | N       |       |
| References_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Index_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Alter_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Show_db_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Super_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y')                     | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Execute_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Repl_slave_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Repl_client_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y')                     | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y')                     | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |
| Create_user_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Event_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y')                     | NO   |     | N       |       |
| ssl_type              | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |
| ssl_cipher            | blob                              | NO   |     | NULL    |       |
| x509_issuer           | blob                              | NO   |     | NULL    |       |
| x509_subject          | blob                              | NO   |     | NULL    |       |
| max_questions         | int(11) unsigned                  | NO   |     | 0       |       |
| max_updates           | int(11) unsigned                  | NO   |     | 0       |       |
| max_connections       | int(11) unsigned                  | NO   |     | 0       |       |
| max_user_connections  | int(11) unsigned                  | NO   |     | 0       |       |
+-----------------------+-----------------------------------+------+-----+---------+-------+
39 rows in set (0.02 sec)

通过这个表我们就就可以发现添加删除修改用户的信息均可(设计密码的时候不要忘记加密,否则...).最后还要FLUSH PRIVILEGES;一下使之立刻生效.

修改密码
SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');或者上面所说直接去表里面修改

猜你喜欢

转载自fortunate179.iteye.com/blog/1560074