mysql基础操作


一、数据库环境准备

1、破解navicat

参考这个网站

2、远程连接

我是去连接虚拟机的mysql,但是远端服务器拒绝访问

(1)进入虚拟机的mysql的命令行,并输入密码

(2)use mysql;

(3)查看能远程访问root的主机地址,很显然禁止root远程连接
select host from user where user =’root’;

(4)只要把localhost改为%就可以了
update user set host = '%' where user ='root';

这里报错不用管

(5)刷新权限
flush privileges;

(6)回到本机去测试

二、数据库操作

1、查看库

show databases;

2、创建库

create database school default charset=utf8;

3、删除库

drop database school;

三、数据表操作

1、查看数据库中所有的表

查看表前一定要先use 数据库名;
show tables;

查看表结构
desc 表名;

查看建表语句: show create table 表名;

2、创建表

(1)用法一
create table 表名(字段名 类型,字段名 类型)engine=innodb default charset=utf8;
示例:
create table student(uid int,name varchar(40))engine=innodb default charset=utf8;

(2)用法二
create table if not exists 表名(字段名 类型,字段名 类型)engine=innodb default charset=utf8;
注意:表存在就不添加,不存在则创建
存在表测试:
create table if not exists student(id int,pid int)engine=innodb default charset=utf8;

创建一个不存在表:
create table if not exists teacher(id int,name varchar(40))engine=innodb default charset=utf8;

3、修改表名

rename table 表名 to 新表名;
示例:
rename table teacher to teachers;

4、删除表

drop table 表名;
不示例了后面还要用

四、数据库字段操作

1、修改列名

alter table 表名 change 原列名 新列名 类型;
示例:
alter table teacher change name uname varchar(40);

2、添加表字段

alter table 表名 add 字段名 类型(值);
示例:
alter table teacher add phoneNum int;

3、删除表字段

alter table 表名 drop 字段名
示例:
alter table teacher drop phoneNum;

4、修改字段类型

alter table 表名 modify 字段 类型;
示例:
alter table teachers modify uname int;

五、表中数据操作

1、插入

(1)insert into 表名(字段1,字段2,字段3) values (值1,值2,值3);
示例:
insert into students(id,name) values(1,'张三');

这里截图截残了,后来才发现,将就将就吧

(2)插入多行数据
insert into 表名(字段1,字段2,字段3) values (a值1,a值2,a值3),(b值1,b值2,b值3);
示例:
insert into students(id, name) values(2,'李四'),(3,'无罪');

2、查询数据

(1)查询表中所有数据
select * from 表名;
示例:
select * from students;

(2)查询单个字段
select 字段 from 表名;
示例:
select id from students;

(3)查询多个字段
select 字段1,字段2,字段3 from 表名;
示例(我这里只有两个字段):
select id,name from students;

(4)简单的条件查询
select * from 表名 where 字段=某个值;
示例:
select * from students where id = 3;

3、修改表中数据

update 表名 set 字段=某个值 where 条件;
示例:
update students set name = '有罪' where id = 3;

4、删除

delete from 表名 where 字段=某个值;
示例:
delete from students where id =3;

六、数据库备份与恢复

1、备份数据表

(1)导出数据库中的指定的数据表
mysqldump -u root -p 数据库名 表1 表2 > 导出文件名

(2)导出整个库中的所有表,不包含库本身
mysqldump -u root -p 数据库名 > 文件名

2、备份数据库

(1)导出指定的数据库
mysqldump -u root -p --databases 库名1 库名2 > 导出文件名

(2)导出所有的数据库
mysqldump -u root -p --all-databases > 导出文件名

3、还原数据

(1)还原备份的数据表 (不写分号)
mysql -u root -p 已存在的库名 < 要导入的文件

(2)还原备份的数据库 (不写分号)
mysql -u root -p < 要导入的文件

(3)mysql命令行
选择数据库后source 数据表文件路径
示例:
MariaDB [xxoo] > source d:/data.sql (source后边为sql文件存放位置)

4、导出数据库的结构

mysqldump -u root -p -d 数据库名 > 导出的文件名

七、权限与用户管理

1、添加用户

create user ‘新用户名‘@’localhost’ identified by ‘密码’;
示例:
create user 'user1'@'localhost' identified by '1234';

2、grant控制权限

grant 具体权限 on 库.表 to ‘用户名‘@’%’ identified by ‘密码’;
示例:
grant select,insert on student.stu to 'user1'@'%' identified by '1234';

show grants for user1; #查看权限

3、收回权限

REVOKE [权限] ON [库.表] FROM [用户名]@[IP];
示例:
revoke insert on student.stu from 'user1'@'%';

4、删除用户

drop user ‘用户名‘@’%’;

八、编码问题

在cmd中操作phpstudy中的mysql数据库出现中文乱码

解决方法一(不长久)

我第一次修改mysql.ini中的default-character-set和character-set-server的值为gbk,虽然解决了当时的问题,但是在我重启环境重连之后又出现中文不显示的编码问题。

解决方法二

cmd输入mysql -hIp -uroot -p连上数据库之后

直接输入set charset gbk;即可,原因如下:

//执行set charset gbk;等于执行下面两条命令
set character_set_client=gbk; //告诉我客户端这边的文字编码
set character_set_results=gbk;  //告诉mysql希望返回的结果集编码;测试中发现只要客户端是gbk编码的,只要设置这个就可以解决乱码这个问题。

如果显示的格式有问题可以输入charset gbk;解决


文章作者: xi3w3n
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xi3w3n !
评论
  目录