1. 数据库简介
当您想收听最喜欢的歌曲时,可以从智能手机上打开播放列表。在这种情况下,播放列表是数据库就是从数据库中读取出来的。
当您拍摄照片并将其上传到微博,朋友圈等,这样的社交网络中的帐户时,您的照片库就有可能存储在一个数据库中。
数据库无处不在。 那么什么是数据库?
根据定义,数据库只是一个结构化的数据集合。
数据本质上相互关联,例如,产品属于产品类别并与多个标签相关联。这就是为什么要使用关系数据库。
在关系数据库中,我们使用表对产品,类别,标签等数据进行建模。 表包含列和行。它就像一个电子表格(Excel)。
表可以涉及的使用有:一对一,一对多,多对一关系等s关系。
因为我们要处理大量的数据,所以需要一种方法来定义数据库,表等,并更有效地处理数据。 另外,我们可以将数据转换成数据信息。
MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。 另外,如果需要,还可以更改其源代码或进行二次开发以满足您的需要。
linux 安装
sudo apt install mysql-server
2.连接数据库
#mysql安装后默认有一个root用户,可以先使用root用于登陆
$>mysql -u 用户名 -p
$>mysql -u root -p
window
把 C:\Program Files\MySQL\MySQL Server 8.0\bin,
加到环境变量
就可以运行 mysql -uroot -p
linux配置文件
/etc/mysql/mysql.conf.d
重启mysql
service mysql restart
/etc/init.d/mysql restart
用户管理:
创建用户(需要使用root用户)
格式:create user ‘用户名’@‘IP地址’ identified by ‘密码’;
#允许hule用户在本地登录
>create user 'hule'@'localhost' identified by '123456';
#允许10.0.122.*网段使用hule用户登录
>create user 'hule'@'10.0.122.%' identified by '123456';
#允许用户在任何地方登录
>create user 'hule'@'%' identified by '123456';
>create user hule identified by '123456';
查看用户:
>use mysql; #切换数据库
>select user,host from user;
删除用户:
>drop user '用户名'@'IP地址';
修改用户密码:
>set password for '用户名'@'IP地址' = password('新密码');
>set password for '用户名'@'IP地址' = '新密码';
授权管理:需要root用户
查看权限:show grants for ‘用户名’@‘IP地址’;
授权:grant 权限 on 数据库.表 to ‘用户名’@‘IP地址’;
#只能对axf数据库下的t1表进行查看和插入操作
>grant select,insert on axf.t1 to 'hule'@'%';
#只能对axf数据库下的所有表进行查看和插入操作
>grant select,insert on axf.* to 'hule'@'%';
#添加对axf数据库下所有表,添加grant以外的所有权限
>grant all privileges on test.* to hhh;
grant all privileges on *.* to hhh;
#权限说明:详情见《权限说明.txt》
#取消授权:
>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数据库的管理或工作中使用:
#创建数据库
#utf-8:
>create database 数据库名 charset utf8;
#gbk:
>create database 数据库名 default charset gbk;
#删除数据库
>drop database 数据库名
#查看当前选择的数据库
>select database();
#查找记录
select * from mysql.user;
#查看前用户
select user();
#用于选择在MySQL工作区指定的数据库。
>use 数据库名;
#列出了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 student 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、改
格式:update 表名 set 列1=值1,列2=值2,…… where 条件;
示例:update student set age=16 where id=7;
注意:没有条件是全部列都修改,慎用
4、查
说明:查询表中的全部数据
格式:select * from 表名;
示例:select * from student;