<MySQL>MySQL的基本操作(增,删,改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
1.用户管理
    创建用户:
        create user '用户名'@'IP地址' identified by '密码';(IP地址:%代表所有)
    用户登录:
        mysql -u 用户名 -p(enter之后输入密码)
        刚安装可能出现问题:无论怎么都没法登录新建的账户,提示如下:
        ERROR 1045 (28000): Access denied for user '123'@'localhost' (using password: YES)
        原因:mysql的认证规则导则,匿名用户影响新用户的认证
        解决办法:删除匿名用户'root'@'localhosr'和''@'localhost'
    删除用户:
        drop user '用户名'@'IP地址';
    修改用户名:
        update user set user='新用户名' where user='老用户名';
    修改密码:
        set password for '用户名'@'IP地址' = password('新密码');
        可能出现的问题:输入了修改的命令,但是一直提示:
        Can't find any matching row in the user table
        原因:没有及时更新权限(或用户名)
        解决办法:先输入命令:flush privileges;(刷新权限)
 
2.权限管理
    查看权限:
        show grants for '用户名'@'IP地址';
    授权:
        grant 权限 on 数据库.表 to '用户名'@'IP地址';(all privileges除了grant以外的所有权限)
    取消权限:
        revoke 权限 on 数据库.表 from '用户名'@'IP地址';
    刷新权限:
        flush privileges;
         
3.数据库操作
    创建数据库:
        create database 数据库名字 default charset utf8;
        (创建数据库X默认编码utf-8)
    删除数据库:
        drop database 数据库名字;
        (删除数据库X)
    修改数据库:
        没有这种操作,硬要写就是----先删除原来的,在创建新的数据库
    查询数据库:
        show databases;
        (显示所有数据库)
    使用数据库:
        use 数据库名字;
 查询当前使用的数据库:
   select database();<br>
 
4.数据表操作:
    创建表:
        create table 表名(
            列名 类型 是否为空 默认值,
            (例:name char(12) not null default libai,)
            列名 类型 是否为空  自增列,
            (例:ID int not null auto_increment primary key,)(一个表只有一个自增列,主键:约束(不重复,不为空),加速查找)
        )engine=innodb default charset=utf8;
            (引擎和编码格式)
    删除表:
        drop table 表名;
    清空表:
        delete from 表名;(自增列还是接着原来的)       
        truncate table 表名;(自增列从1开始) 
    修改表:
        修改表名:
            alter table 旧表名 rename 新表名;
        添加列:
            alter table 表名 add 列名 类型;
        删除列:
            alter table 表名 drop column 列名:
            (drop column:下拉列)
        修改列名:
            alter table 表名 change 原列名 新列名 新类型;
        添加主键:
            alter table 表名 add primary key(列名);
        删除主键:
            alter table 表名 drop primary key;
        添加外键:
            alter table 从表 add constraint foreign key 从表(外键字段) references 主表(主键字段);
        删除外键:
            alter table 表名 drop foreign key 外键名称;
        修改默认值:
            alter table 表名 alter column 列名 set default 新默认值;
        删除默认值:
            alter table 表名 alter column 列名 drop default;
    查询所有表名:
        show tables;
    查询创表指令:
        show create table 表名;
 
5.数据表内容操作:
    插入数据:
        insert into 表名(列名1,列名2...) values(列值1,列值2...);
        insert into 表名(列名1,列名2) values(列值1,列值2),(列值1_1,列值2_1);#同时创建多个数据
        insert into 表名2(列名1,列名2) select 列名1,列名2 from 表名1#将表1的数据(列名1,列名2)插入表2
    删除数据:
        delete from 表名;
        delete from 表名 where 条件;
    修改数据:
        update 表名 set 列名=列值;
        update 表名 set 列名=列值 where 条件;
    查询数据:
        select * from 表名;
        select * from 表名 where 条件;
        select 列名1,列名2, from 表名 where 条件;
         
      

  

6 .备份和恢复

1.进入超级管理员

1
sudo -s

2.进入mysql目录

1
cd mysql所在目录

3.运行mysqldump命令

1
mysqldump -uroot -p 数据库名 > 指定数据生成路径/备份文件.sql;

  

恢复

1.自己创建数据库

2.恢复数据

1
mysql -uroot -p 数据库名  < 备份文件所在路径/备份文件.sql;

  

 

 

posted @   水墨黑  阅读(173)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示