1、初识数据库
(1)、为什么要使用数据库?
第一:将文件和程序存在一台机器上是很不合理的。
第二:操作文件是一件很麻烦的事
数据库是一个可以在一台机器上独立工作的,并且可以给我们提供高效,便携的方式对数据进行增删改查的一种工具。
(2)、数据库的优势:
程序稳定性 、 数据一致性、 并发 、 高效率
(3)、数据库管理系统 --- DBMS
数据库管理系统本质上也是管理一堆文件,只不过数据库管理系统的管理方式比我们更高效,更安全。
2、数据库管理员 -- DBA
搭建数据库服务坏境
用户的创建,权限的管理
性能 语句的优化
数据库的二次开发 : 让数据库具有公司的特质
3、软件
mysql :适用于小公司 、互联网公司
oracle(甲骨文) : 适用于事业单位, 金融企业
还有 微软 sql server、 sqllite等数据库管理系统
4、名词和概念
DB : 数据库 -- 相当于文件夹
table : 表 -- 相当于文件夹中的每个文件
data : 一条数据 - 相当于文件中的每一行代码
5、数据库的分类
关系型数据库 (有表结构):mysql 、 oracle 、sqlserver 、 sqllite
非关系型数据库 (没有表结构): redis 、 mongldb、 memcache 、 hbase
6、MySQL的安装和启动
mysql提供开源的可以安装在各个操作系统上的安装包,包括iOS, Linux, Windows
mysql的安装、启动和基础配置 —— windows版本 为例
(1)下载
第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads
第二步 :跳转至网址https://dev.mysql.com/downloads/,选择Community选项
第三步 :点击MySQL Community Server进入https://dev.mysql.com/downloads/mysql/页面,选择版本,这里点击5.6版本的数据库
第四步:windows操作系统 点击5.6版本之后会跳转到https://dev.mysql.com/downloads/mysql/5.6.html#downloads 网址,页面如下,确认好要下载的版本和操作系统,点击Download
第五步:可以不用登陆或者注册,直接点击No thanks,just start my download就可以下载了。
(2)解压
下载的zip文件解压,将解压之后的文件夹放到任意目录下,这个目录就是mysql的安装目录。
(3)配置
打开目录,会看到my-default.ini配置文件,复制这个配置文件可以重命名为my.ini或者my.cnf
(4)my.ini 参数设置
# 注意一定要删去每行代码末尾的空格
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:Program Filesmysql-5.6.39-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:Program Filesmysql-5.6.39-winx64data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
(5)配置环境变量
在系统变量PATH后面添加: 你的mysql bin文件夹的路径(如C:Program Filesmysql-5.6.41-winx64in)
(6)安装MySQL服务
以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install 回车运行
(7)启动mysql服务
以管理员身份在cmd中输入:net start mysql
服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过)
(8)停止mysql 服务
net stop mysql # 停止mysql
#在windows操作系统上没有重启mysql服务的命令
#如果要重启服务,只能先stop再start
注意:
在启动mysql时,如果出现报错,可以https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13523下载安装Windows插件来解决因缺少插件的问题而导致的启动失败。
启动的mysql.exe 是客户端 ,安装好的服务是server
在客户端需要指定要登录的数据库所在的IP 以及用户名和密码
7、初识sql语句
mysql账号操作
#进入mysql客户端
$mysql
mysql> select user(); #查看当前用户
mysql> exit # 也可以用q quit退出
# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p # mysql5.6默认是没有密码的
#遇到password直接按回车键
mysql> set password = password('root'); # 给当前数据库设置密码
# 创建账号
mysql> create user 'eva'@'192.168.10.%' IDENTIFIED BY '123';# 指示网段
mysql> create user 'eva'@'192.168.10.5' # 指示某机器可以连接
mysql> create user 'eva'@'%' #指示所有机器都可以连接
mysql> show grants for 'eva'@'192.168.10.5'; #查看某个用户的权限
# 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3
# 给账号授权
mysql> grant all on *.* to 'eva'@'%';
grant usage on 数据库.表 to 'eva'@'%'; # eva用户能够使用数据库中表
grant select on 数据库.* to 'eva'@'%'; # eva用户能够查询数据库中表
grant update on *.* to 'eva'@'%'; # eva用户能够修改数据库中表
grant insert on *.* to 'eva'@'%'; # eva用户能够写入数据库中表
grant delete on *.* to 'eva'@'%'; # eva用户能够删除数据库中表
grant all on ftp.* to 'eva'@'%'; # eva用户能够对数据库中表做任何操作
mysql> flush privileges; # 刷新使授权立即生效
# 创建账号并授权
mysql> grant all on *.* to 'eva'@'%' identified by '123'
# 需要注意要在sql的结尾输入 ; 表示整个sql语句的结束
# 如果忘记了可以在换行之后补上。
c # 表示放弃当前行要执行的sql语句
设想一下,当我们想要从文件中存取数据的时候,是一个非常繁琐的过程,主要是因为文件中所有的内容对我们来说是连续的,没有规则的。如果我们将数据按照规则存在一个文件中,在设计一种规则可以拼凑组合成我们需要的操作,并通过这些指示在文件中存取数据,那么操作数据是不是能够变得更加简单快速呢?这串规则就被我们成为SQL。
SQL : 结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE