- mysql只是一个数据存储工具,具有一些它自己的命令来对数据进行出路,在日常中的使用情况其实很简单,主要分为以下几个环节:
1、建立数据库
不同平台通过对应的方式建立数据库,配置好环境,权限等。
windows下建立mysql数据库:
linux下建立mysql数据库:
采用了ubuntu操作系统,使用最新的软件安装工具apt进行操作,打开终端,输入命令:
sudo apt install mysql-server
开始安装,安装会自动配置顶级用户,使用命令查看名称和密码:
@ubuntu:sudo gedit /etc/mysql/debian.cnf
或
@ubuntu:@ubuntu:sudo vim /etc/mysql/debian.cnf
记录下user及 password,在终端进入mysql
@ubuntu:mysql -u 刚刚查看的user -p
@ubuntu:Enter password: 刚刚查看的密码
登陆之后,可以进行用户管理操作,包括增加、删除、改名、改密码等。
#查看已有数据库
mysql> show databases;
#查看已有用户信息
mysql>use mysql;
mysql>show tables;
mysql>select user,host from user;
#更改root用户密码(仍在mysql数据库中)
mysql>update mysql.user set authentication_string=password('新密码') where user='root' and Host ='localhost';
mysql>update user set plugin="mysql_native_password"; #照抄此行
#更改刚刚查看的user的密码(仍在mysql数据库中)
mysql>update user set authentication_string=password('新密码') where user='刚刚查看的user' and Host ='localhost';
mysql>update user set plugin="mysql_native_password";
mysql>flush privileges;#更新所有操作权限
#修改用户名
mysql>update user set user ='新用户名' where user ='旧用户名'
#创建新用户
mysql>create user 'test'@'%' identified by '123321';#新用户名是test,新host是%,代表任何人均可访问
#用户权限设置
mysql>GRANT ALL PRIVILEGES ON *.* TO 'king'@'%' IDENTIFIED BY '密码 WITH GRANT OPTION;#%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接
#退出重启生效
mysql> quit;
@ubuntu:~$ sudo service mysql restart #重新启动服务
@ubuntu:~$ mysql -u root -p #可以正常使用了
2、使用数据库
可以通过命令行方式来使用数据库,也可以通过图形界面软件来操作数据库,从而来更新数据获取数据等。
数据库操作的常用命令:
show databases;显示全部数据库名称
use database 数据库名称;进入某个数据库内
show tables;查看当前数据库下全部数据表
desc table 数据表名称;显示某数据表的描述性信息:字段、字段类型、NULL、KEY、Default、Extra。
select * from table 数据表名称;显示数据表内的全部信息
select 目标字段q,目标字段n from 数据表名称 where 字段条件(eg 字段m>50),group by 字段k,字段j having 字段k/j 字段条件(<>‘北京’),order by 字段o desc(降序)/asc(升序);按照字段条件约束选择目标数据
select 目标字段n form 数据表A INNER/LEFT/RIGHT JOIN 数据表B on A.key=B.key;选择符合主键 约束条件的目标字段
select 数据表A.目标字段m,n from 数据表A union (all) select 数据表B.目标字段m,n from 数据表B;拼接两个数据表的查询结果,union连接会去除字段组合下的重复项。字段单独重复并不会去重复
select distinct 目标字段 from 数据表;不重复的显示数据表中目标字段的值
select 目标字段 from 数据表A where 子条件查询(eg: in、any、all、exist)
select 数据表快捷命名.字段 from 数据表 as 数据表快捷命名;将表名称的书写简化,用as
select 目标字段 from 数据表A,limit 3;显示前三条结果
alter table 数据表名称 rename 新数据表名称;
--------------------------------modify 目标字段 新的数据类型 #可选参数 first/after 某个字段,用来排序;
--------------------------------change 目标字段 新的字段名字 新的数据类型;
--------------------------------add 新的字段 新的字段类型 约束条件;
--------------------------------drop 字段名称;删除字段
drop from 数据表 where 条件;删除符合条件的记录
update 数据表 set 字段名=concat(自定义名称,原始名称);在字段名称前加上新的字符
load data local infile ‘文件路径\文件名称.文件类型‘ into table 数据表名称,fields terminated by ’分隔符‘,ignore 1 linies;导入txt格式的数据文件,每个数据的分割用的是分隔符,导入的数据忽略第一行。
show variables like ‘%secure%’;查询导出条件和导出路径
select 目标字段 into outfile ‘/var/lib/mysql-files/test.xls’ from 数据表+约束条件;windows下路径需要两个
其他:
导入导出格式说明:\t 的意思是 横向跳到下一制表位置=TAP键,’\r’是回车,前者使光标到行首,’\n’是换行,后者使光标下移一格,windows下换行并到行首的操作是’\r\n’,而linux是’\n’。
fileds terminated by 是每个数据的分割符指定,lines terminated by 是每行的分割指定。数据导出的时候会指定分割符,数据导入也要采用对应的分隔符。
eg:
load data local infile '~/桌面/all.csv' into table city_information fields terminated by ',' lines terminated by '\n' ignore 1 lines;
3、远程连接数据库,查询好数据并传输回来。
- ssh连接远程linux服务器,mysql登录操作后保存文件,scp传输回结果。可以用命令,也可以用一些可视化软件。
- eg:
连接远程服务器
ssh -p 端口号(mysql一般为3306)用户名@远程服务器IP地址
登录mysql
mysql -u root -p 输入密码
数据库操作并保存文件
从本地传数据到远程服务器
scp -P 端口号(4588)本地文件或本地文件夹 远程服务器名称@远程服务器IP:重新命名
从远程服务器传输数据到本地
scp -P 端口号(4588)远程服务器名称@远程服务器IP:路径/文件名 本地路径/文件名