mysql 必备知识

来源:互联网 发布:我这一辈子电视剧知乎 编辑:程序博客网 时间:2024/06/04 00:26
一、MYSQL 连接
 命令格式:mysql -h 主机地址 -u 用户名 -P 密码
 如:连接远程主机111.111.111.111,mysql -h 111.111.111.111 -u root -p
 退出: exit(回车)
二、创建用户
命令:create user 用户名@‘%’ identified by 密码; #创建远程登入用户
create user 用户名@‘localhost’ identified by 密码; #创建本地登入用户
授予用户权限
完整命令格式:grant all privileges on 数据库名.* to 用户名@‘%’(或者@‘
localhost’); 授予某某数据库所有的权限给该用户
  grant all on *.* to 用户名@‘%’/'localhost' ;和上面一样


例如我只向授予ll用户在mydb数据库中的查询权限,(权限有很多了,如,select, insert, update, delete, create,drop )
grant select on mydb.* to ll@'localhost';
三、删除用户
命令:delete from user where user='用户名' and host='%';
删除用户权限
revoke all privileges on 数据库名.* to 用户名@‘%’;
revoke all privileges on 数据库名.* to 用户名@‘localhost’;
四、使用数据库
命令 use 数据库名;
五、数据库常用命令
show databases; 查看数据库
show tables; 查看表
show columns from 表; 查看表里的字段(列)
show grants,查看授予用户的权限
show create table ,显示创建数据库表的语句


create database 数据库名    创建数据库
drop database 数据库名      删除数据库
create table  表名
drop table   表名


在select中加上distinc 去除重复字段


六、备份和恢复数据库
备份数据库
  shell> mysqldump -h host -u root -p 数据库名 >dbname_backup.sql
  恢复数据库
  shell> mysqladmin -h myhost -u root -p create 数据库名  #先要创建数据库
  shell> mysqldump -h host -u root -p 数据库名 < dbname_backup.sql  恢复
七、alter命令
    #表position增加列test
  alter table position add(test char(10));
  #表position修改列test
  alter table position modify test char(20) not null;
  #表position修改列test默认值
  alter table position alter test set default 'system';
  #表position去掉test默认值
  alter table position alter test drop default;
  #表position去掉列test
  alter table position drop column test;
八、增、删、改、查
    insert into 表名(列1,列2) values(值1,值2);
    delete from 表名; 清空表中数据
    delete from 表名 where...  删除满足条件的项
    #将财务部修改为财务一部
  update department set name='财务一部' where name='财务部';
    select 列1,列2 from 表名 where...      查询满足条件的列;
    重要的是联表查询
    #显示系统部的人员和职位
  select a.name,b.name department_name,c.name position_name
  from staffer a,department b,s_position c
  where a.department_id=b.id and a.position_id=c.id and b.name='系统部';
    联表查询尽可能用join on
    select * from A
    inner join B on B.name = A.name
    left join C on C.name = B.name
    left join D on D.id = C.id
    where C.status>1 and D.status=1;