数据库一
数据库的优势:
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
数据库服务器、数据管理系统、数据库、表与记录的关系(重点)
记录:1 朱葛 13234567890 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:userinfo,studentinfo,courseinfo(即文件)
数据库:db(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
关系型数据库和非关系型数据库
关系型
一条数据包含了一个事物的多条信息,这些信息之间是有关联性的
# mysql 开源
# oracle 企业级
# sqlite 轻量级
# sql server 大学
非关系型
1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充
2、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能
3、NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库)
# memcache
# redis
# MongoDB
# nosql
初识MYSQL
mysql了解
初识sql语句
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
不同数据库系统之间的SQL不能完全相互通用
#进入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 PASSWORD '123';# 指示网段
mysql> create user 'eva'@'192.168.10.5' # 指示某机器可以连接
mysql> create user 'eva'@'%' #指示所有机器都可以连接
# 远程登陆
$ 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'
mysql的账号操作
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;
改: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 表示:约束(不能重复且不能为空);加速查找
下载和安装
mysql的安装、启动和基础配置 —— linux版本
环境和资源地址
*** centos 7 ***
http://repo.mysql.com/yum/mysql-5.6-community/
安装
安装方式一(在线安装):
# 查看和mysql有关的安装包
yum search mysql
# 安装mysql社区版本yum源
yum -y install http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm
# 找到community社区版本的mysql包
yum search mysql |grep community
# 使用yum安装下列
yum -y install mysql-community-server.x86_64 mysql-community-client.x86_64 mysql-community-server.x86_64 mysql-community-client.x86_64
安装方式二(离线安装):
# 下载离线包
yumdownloader mysql-community-server.x86_64 mysql-community-client.x86_64 mysql-community-libs.x86_64 mysql-community-common.x86_64
# 安装
yum -y install mysql-community-client-5.6.41-2.el7.x86_64.rpm mysql-community-server-5.6.41-2.el7.x86_64.rpm mysql-community-common-5.6.41-2.el7.x86_64.rpm mysql-community-libs-5.6.41-2.el7.x86_64.rpm
操作mysql相关常用shell命令
# 启停服务
systemctl {start|stop|restart|status} mysqld.service
systemctl start mysqld.service
# 查看服务状态
systemctl status mysqld.service
# 安全初始化
/usr/bin/mysql_secure_installation
# 停系统防火墙
systemctl stop firewalld.service
# 查看强制访问控制状态
getenforce
# 关闭强制访问控制策略
setenforce 0
Centos7下设置mysql5.6字符集编码为utf8
-
用vi修改mysql配置文件/etc/my.cnf命令:vi /etc/my.cnf(按键盘上的'i'键可以修改配置文件)
-
在[client]字段下添加:default-character-set = utf8(如果没有这字段,自己添加。)
-
在[mysqld]字段下添加:character-set-server = utf8collation-server = utf8_general_ci
-
保存并退出
登陆和初始化密码
# 创建root远程登陆密码 mysql -h 127.0.0.1 -u root -p
mysql> grant all privileges on *.* to root@'%' identified by "root";
mysql> flush privileges;
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
my.ini参考配置
[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(第一次登录没有密码,直接按回车过)
net stop mysql # 停止mysql #在windows操作系统上没有重启mysql服务的命令 #如果要重启服务,只能先stop再start
root用户密码设置及忘记密码的解决方法
方法1: 用SET PASSWORD命令
首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
注意:我们在使用cmd的时候,经常需要使用管理员身份来运行cmd窗口,每次都需要自己右键选择管理员身份运行,很麻烦,所有有永久解决的方法,看我下面的操作:
1、去”C:/Windows/System32”目录找到”cmd.exe”:
2、右击属性,选择“以管理员身份运行”:
永久解决办法:
1、创建“cmd.exe”快捷方式:
2、右击选择“属性”,选择“快捷方式”,再选择“高级”,在选择“以管理员身份运行”,再单击“确定”。
以后只要打开快捷方式就可以以管理员的身份运行cmd了!