初识数据库 初识mysql
阅读目录:
初识数据库
为什么要用数据库
-
用数据库的原因?
- 第一:将文件和程序存在一台机器上是不合理的。
- 第二:操作文件是一件很麻烦的事情
-
用数据库的优势?
- 程序稳定性:这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务
- 数据的一致性:所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
- 并发:数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket。
- 效率:使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
认识数据库
-
什么是数据(Data)?
概念:描述事物的符号记录为数据,描述事物的符号既可以是数字,也可以是文字、图片、图像、声音、语言等,数据由多种表现形式,它们可以经过数字化存入计算机。
例子:在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容:
1 小明,23,北京,hr
然而单纯的一条记录并没有任何意义,如果我们按逗号作为分割,依次定义各个字段的意思,相当于定义表的标题
id ,name,age,born_addr,job #字段/列名 1,小明,23,北京,hr #数据
这样我们就可以了解详细了解小明的情况了。
-
什么是数据库(DataBase,简称DB)?
概念:数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
数据库是长期存放在计算机内,有组织,可共享的数据集合。
数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享
-
什么是数据库管理系统(DateBase Management System 简称DBMS)?
在了解了数据和数据库的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
这就用到了一个系统软件——数据库管理系统
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库管理员 DBA(Database Administrator)
-
数据库服务器、数据管理系统、数据库、表与记录的关系
类别 |
作用 |
记录 |
1 小明,23,北京,hr (多个字段的信息组成一条记录,即文件中的一行内容) |
表 |
userinfo..(即文件) 即文件,用来存放多行内容/多条记录 |
数据库 |
db(即文件夹) 即文件夹,用来组织文件/表 |
数据库管理系统 |
如mysql (是一个软件) 管理—数据库 |
数据库服务器 |
一台计算机(对内存要求比较高) 运行数据库的管理软件 |
初识mysql
mysql概念
-
数据库管理软件分类
管理数据的工具有很多种,不止mysql一个,关于分类其实可以从各个纬度来进行划分,但是我们最常使用的分类,还是根据他们存取数据的特点来划分的,主要分为关系型和非关系型。
可以简单的理解为,关系型数据库需要由表结构,非关系型数据是key-value存储的,没有表结构。
关系型:如sqllite ,db2,oracle,access,sql server, MySQL,注意:sql语句通用
非关系型:mongodb,redis,memcached
-
mysql
mysql 是一个关系型数据库管理系统,由瑞典mysql AB 公司开发,目前属于oracle 旗下产品。mysql是最流行的关系型数据库管理系统之一,在web应用方面,mysql是最好的rdbms(关系数据库管理系统)应用软件。
mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有的数据放在一个大仓库内,这样就增加了速度,并提高了灵活性。
mysql所使用的sql语言是用于访问数据库的最常用标准化语言。mysql软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择mysql作为网站数据库。
下载与安装
mysql的安装、启动和基础配置——Windows版本
下载:
第一步:打开网址,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就可以下载了。
解压:
下载的zip文件解压,将解压之后的文件夹放到任意目录下,这个目录就是mysql的安装目录。
配置:
打开目录,会看到my-default.ini配置文件,复制这个配置文件可以重命名为my.ini或者my.cnf
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\Program Files\mysql-5.6.39-winx64 # 设置mysql数据库的数据的存放目录 datadir=C:\Program Files\mysql-5.6.39-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
环境变量:
在系统变量PATH后面添加: 你的mysql bin文件夹的路径(如C:\Program Files\mysql-5.6.41-winx64\bin)
安装mysql服务:
以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install回车运行
启动mysql服务:
以管理员身份在cmd中输入:net start mysql
服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过)
停止mysql服务:
net stop mysql # 停止mysql #在windows操作系统上没有重启mysql服务的命令 如果要重启服务,只能先stop再start
初识sql语句
mysql> select host,user,password from mysql.user;
mysql> set password for 'root'@'192.168.65.130'=password('123456');
mysql> update mysql.user set password=password('123') where user='root' and host='192.168.65.130';
#进入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'@'%'; mysql> flush privileges; # 刷新使授权立即生效 # 创建账号并授权 mysql> grant all on *.* to 'eva'@'%' identified by '123'
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
1. 操作文件夹(库) 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1; 2. 操作文件(表) 先切换到文件夹下:use db1 增:create table t1(id int,name char); 查:show tables; 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 删:drop table t1; 3. 操作文件中的内容(记录) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1;
查看当前库下的user表的表结构: desc user; 改:update t1 set name='sb' where id=2; 删:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, *auto_increment 表示:自增 *primary key 表示:约束(不能重复且不能为空);加速查找