1、What is a database?
当您想收听最喜欢的歌曲时,可以从智能手机上打开播放列表。在这种情况下,播放列表是数据库就是从数据库中读取出来的。
当您拍摄照片并将其上传到微博,朋友圈等,这样的社交网络中的帐户时,您的照片库就有可能存储在一个数据库中。
数据库无处不在。 那么什么是数据库?
根据定义,数据库只是一个结构化的数据集合。
数据本质上相互关联,例如,产品属于产品类别并与多个标签相关联。这就是为什么要使用关系数据库。
在关系数据库中,我们使用表对产品,类别,标签等数据进行建模。 表包含列和行。它就像一个电子表格(Excel)。
表可以涉及的使用有:一对一,一对多,多对一关系等关系。
因为我们要处理大量的数据,所以需要一种方法来定义数据库,表等,并更有效地处理数据。 另外,我们可以将数据转换成数据信息。
MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。 另外,如果需要,还可以更改其源代码或进行二次开发以满足您的需要。
Linux 安装
sudo apt install mysql-server
2、连接数据库
#mysql安装后有一个默认的root用户,可以先使用root用于登录
$>mysql -u 用户名 -p
$>mysql -u root -p
window
把mysql加入到环境变量就可以运行 mysql -u root -p
linux配置文件
/etc/mysql/mysql.conf.d
重启mysql
service mysql restart
/etc/init.d/mysql restart
用户管理
创建用户(需要使用root用户)
格式:create user ‘用户名’@‘IP地址’ identified by ‘密码’;
#允许zh用户在本地登录
create user 'zh'@'localhost' identified by '1234';
#允许10.0.122.*网段使用zh用户登录
create user 'zh'@'10.0.122.%' identified by '1234';
允许用户在任何地方登录
create user 'zh'@'%' identified by '1234';
create user zh identified by '123456';
查看用户
use mysql; #切换数据库
select user,host from user;
删除用户
drop user '用户名'@’IP地址‘;
修改用户密码
set password for ‘用户名’@‘IP地址’ = ‘新密码’
授权管理:需要root用户
查看权限:show grants for ‘用户名’@’IP地址‘;
授权:grant 权限 on 数据库.表 to ‘用户名’@‘IP地址’;
#只能对axf数据库下的t1表进行查看和插入操作
grant select,insert on axf.t1 to 'zh'@'%';
#只能对axf数据库下的所有表进行查看和插入操作
grant select,insert on axf.* to 'zh'@'%';
#添加对axf数据库下的所有表,添加grant以外的所有权限
grant all privileges on test.* to zh;
grant all privileges on *.* to zh;
#权限说明:请看[权限说明](https://blog.csdn.net/weixin_42557567/article/details/95512511)
#取消授权:
revoke 权限 on 数据库.表 from '用户名'@'IP地址';
更改用户可登录ip地址
use mysql;
update user set host='localhost' where user = 'root';
#如果是其它用户还需要授权
grant usage on *.* to hule;
#将数据读取到内存,立即生效
flush privileges
3、管理mysql常用命令
这里是重要的MySQL命令,经常在MySQL数据库的管理或工作中使用
#创建数据库
create database 数据库名 charset utf-8;
#gbk:
create database 数据库名 default charset gbk;
#删除数据库
drop database 数据库名
#查看当前选择的数据库
select database();
#查找记录
select * from mysql,sql;
#查看当前用户
select user();
#用于选择在MySQL工作区指定的数据库
user 数据库名;
#列出了MySQL数据库管理系统中的所有可访问的数据库
show databases;
#显示已经选择数据库中的表的命令
show tables;
#MySQL数据库断开
exit
查看表结构
desc 表名;
4、CRUD
1、增
先创建表
语法:
create table table_name(column_name column_type);
例如
create table student(
id int not null auto_increment primary key,
sex bit,
age int,
name char(20),
info varchar(100),
birthday date
);
注意:
a、全列插入
格式:insert into 表名 values(…);
说明:主键列是自动增长,但是全列插入时需要占位,通常使用0,插入成功以后以实际数据为准
示例:insert into student values(0,“tom”,19,1,“北京”,0);
b、缺省插入
格式:insert into 表名(列1,列2…) values(值1,值2…);
示例:insert into student(name,age,address) values(“lilei”,19,“上海”);
c、同时插入多条数据
格式:insert into 表名 values(…),(…),…
示例:insert into sutdent values(0,“hanmeimei”,18,0,“北京”,0),(0,“poi”,22,1,“海南”,0),(0,“wenli”,20,0,“石家庄”,0);
2、删
格式:delete from 表名 where 条件;
示例:delete from student where id = 4;
注意:没有条件是全部删除,慎用
3、改
格式:updata 表名 set 列1 = 值1,列2 = 值2,…where条件
示例:update student set age=16 where id =7;
注意:没有条件是全部列都修改,慎用
4、查
说明:查询表中的全部数据
格式:select * from 表名;
示例:select *from sutdent;
本文章引用于千锋