MySQL数据库的使用

6.《MySQL数据库简介》

1数据库的诞生:
 人类在进化的过程中,创造了数字、文字、服务号等进行数据的记录,但是随着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准去的查找,成为了一个重大难题。计算机诞生后,数据开始在计算机中存储并计数,并设计出了数据库系统 
----------------------------------------------------------------------------------
2.数据库解决的问题:
 1、持久化存储
 2、优化读写
 3、保证数据的有效性
----------------------------------------------------------------------------------
3为什么要使用数据库:
 因为数据量越来越大,有效的存储对应的数据
 说明:
     ATM系统,用户名和密码
     tom#123456
     lilei#234567
     hanmeimei#456789
     使用数据库存储用户的账号密码
----------------------------------------------------------------------------------
4.mysql(充当管理文件的软件)数据库:
 服务端软件
     socket服务器
     解析指令(SQL语句)
     本地文件的操作

 客户端软件(各种各样)
     socket客户端
     发送指令(SQL语句)
----------------------------------------------------------------------------------
5.据库的分类:
 文档型:例如SQLit,就是一个文档型数据库,通过对文件的复制完成数据库的复制

 服务型:例如mysql,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作
----------------------------------------------------------------------------------
6.三范式简介:
 概念:经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
 范式:
     1、列不可拆分
     2、唯一标识
     3、引用主键
 说明:后一个范式,都是在前一个范式的基础上建立的
----------------------------------------------------------------------------------
7.E-R模型简介:
 当前物理的数据库都是按照E-R模型进行设计的
 E(entry):实体
 R(relationship):关系

 一个实体转为数据库中的一个表
 关系描述两个实体之间的对应规则
     1、一对一
     2、一对多
     3、多对多
 关系转为数据库表中的一个列,在关系型数据库中一行就是一个对象(数据)
----------------------------------------------------------------------------------
8.主要操作:
 数据库的操作:
     创建
     删除
 表的操作:
     创建
     修改
     删除
 数据的操作(crud):
     增加
     修改
     删除
     查询
     inser
     update
     delete
     select

7.Linux系统安装MySQL

sudo apt-get update
sudo apt-get install mysql-server   安装过程中输入用户名与密码
服务命令 启动服务 sudo service mysql start
停止服务 sudo service mysql stop
重启服务 sudo service mysql restart

8.连接MySQL

8.1注意
安装后mysql默认有一个root用户
使用root用户登录
             mysql -uroot -p
             输入密码
指令必须以分号结尾,不能是中文字符
8.2创建数据库
1.show databases;
 显示所有数据库
 其中默认的数据库为
 mysql 用户权限相关的数据
 information_schema mysql本身架构相关数据
----------------------------------------------------------------------------------
2.创建数据库
格式:
utf-8格式:create database 数据库名称 default charset utf8 collate utf8_general_ci;

gbk格式:create database 数据库名称 default charset gbk collate gbk_chinese_ci;

示例: creat database echo1901 defult charset utf8 collate utf8_general_ci;

其中 utf8_general_ci 为排序的意思
----------------------------------------------------------------------------------
3.使用数据库
         格式: use 数据库名称;
         示例: use echo1901;
         查看当前正在使用的数据库:
         select database();
         显示当前使用的数据库中所有的表:
         show tables;
8.3用户管理
1.注意
   需要使用Mysql的root用户
----------------------------------------------------------------------------------
2.创建用户
格式:   create user '用户名'@'IP地址' identified by '密码';
示例:   
create user 'echo'@'10.0.120.123' identified by 'echo1996'; 允许10.0.120.199机器使用echo用户登录

create user 'echo'@'10.0.120.%' identified by 'echo1996'; 允许10.0.120.*机器使用echo用户登录

create user 'echo'@'%' identified by 'amor5438'; 允许所有机器使用echo用户
----------------------------------------------------------------------------------
3.查看
   use mysql;
   show tables;
   select user,host from user;
----------------------------------------------------------------------------------
4.删除用户
 格式:
      dorp user '用户名'@'IP地址';
----------------------------------------------------------------------------------
5.修改用户
  格式:
      rename user '原用户名'@'原IP地址' to '新用户名'@'新IP地址';
----------------------------------------------------------------------------------
6.修改密码
 格式:
      set password for '用户名'@'IP地址'=password('新密码');
8.4授权管理
1.注意: 需要使用root用户
----------------------------------------------------------------------------------
2.查看权限
 格式:
     show grants for '用户名'@'IP地址';
 示例:
     子主题
----------------------------------------------------------------------------------
3.授权
 格式:
      grant 权限 on 数据库.数据库中的表 to '用户名'@'IP地址';
示例:
       grant select,insert,update,delete on py1901.students to 'echo'@'%';
       给suzhan用户添加对于py1901数据库下的students表的查看\插入\修改\删除的权限
       grant select,insert,update on py1901.* to 'echo'@'%';
       给suzhan用户添加对于py1901数据库下所有表的查看\插入\修改的权限
       grant all privileges on py1901.* to 'echo'@'%';
       给echo用户添加对于py1901下所有表除了grant(赋予权限)权限以外的所有权限
----------------------------------------------------------------------------------
4.授权说明
update                       使用update
reload                        使用flush
shutdown                     使用mysqladmin shutdown(关闭MySQL)
super                         􏱂􏰈使用change master、kill、logs、purge、master和set global。还允许mysqladmin􏵗􏵘􏲊􏲋调试登陆
replication client            服务器位置的访问
replication slave                    由复制从属使用
----------------------------------------------------------------------------------
5.取消授权
 格式:
     revoke 权限 on 数据库.表 from '用户名'@'IP地址';
---------------------------------------------------------------------------------- 
6.将数据读取到内存中,从而立即生效     flush privileges;
8.5开发使用说明

后期开发基本不会使用root用户,进入公司后,公司DB人员会提供一个用户名和密码并说明可以操作那些数据库,
这样可以避免因某个账号密码泄露而威胁整个mysql数据库

8.6修改配置文件
1.打开文件
  sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
----------------------------------------------------------------------------------
2.修改内容
   通过(shift+:+/bind-address)找到bind-address参数
   bind-address­­­­­­> =0.0.0.0
   保存并退出
----------------------------------------------------------------------------------
3.重启mysql服务
   sudo service mysql restart
8.7阿里云安全组协议
8.8远程连接mysql
mysql -h ip地址 -u 用户名 -p
navicat图形化界面

9.数据库的操作

9.1创建
1.创建
格式:
   utf-8格式:create database 数据库名称 default charset utf8 collate utf8_general_ci;

   gbk格式:create database 数据库名称 default charset gbk collate gbk_chinese_ci;

示例: creat database echo1901 defult charset utf8 collate utf8_general_ci;

其中 utf8_general_ci 为排序的意思
-------------------------------------------------------------------------------------------
9.2.删除
 drop database 数据库名
9.3.切换
use 数据库名
9.4.查看
show databases;
select database(); 

10.数据库中表的操作

10.1查看数据库中所有的表
show tables;
10.2创建数据库中的表
1.数据的完整性:
一个数据库就是一个完整的数据单元,可以包含多张表,数据被存储到表中,在表中为了更加准确的存储数据,保证数据库的正确有效,可以在建表的时候,为表添加一些强制性的验
证,包括数据字段类型、约束
----------------------------------------------------------------------------------
2.创建表
格式:
create table 表名(列名 类型[约束[,.....]][,.....]) engine=引擎 default charset=编码;

名词解析:
     表名:给数据集合起的名字
     列名:字段名称,遵守标识符规则
     类型:
     明确字段存储的数据类型
     具体查看<<mysql类型文档>>
     约束:后续单独讲
     引擎:
     myisam 默认引擎,不支持事物
     innodb 支持事物,原子性操作
     编码:必须与数据库编码相同,解决存储编码错误问题

建表示例:
     create table students(
         id int not null auto_increment,
         name char(20),
         age int,
         sex bit,
         score float,
         birthday date,
         grade enum('python01','python02','python03'),
         hobby set('power','money','girl','boy'),
         content varchar(100),
         primary key(id)
     ) engine=innodb default charset=utf8;
     或者:
     create table students(
         id int not null auto_increment primary key,
         name char(20),
         age int,
         sex bit,
         score float,
         birthday date,
         grade enum('python01','python02','python03'),
         hobby set('power','money','girl','boy'),
         content varchar(100)
     ) engine=innodb default charset=utf8;
测试数据:
     insert into students values(0,"suzhan",18,1,100,"2001-10-
     01","python01","power,money","suzhan is a good man");
     insert into students values(0,"zhange",18,1,100,"2001-10-
     01","python04","power,money","zhange is a good man"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值