初识数据库

1.什么是数据库?

数据库简单的来说就是用来存储数据的仓库。数据库可以在硬盘及内存中存储数据。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享。

数据库与文件存储数据区别:

数据库本质也是通过文件来存储数据,数据库的概念就是系统的管理存储数据的文件。

2.数据库介绍

数据库服务器端:存放数据库的主机集群

数据库客户端:可以连接数据库的任意客户端

数据库管理员:DBA(data bases admintor)

3.数据库基本概念

库:多表构建一个数据库,本质就是文件夹

表:多条数据构建一张表,本质就是文件

记录:存放一条条数据,本质就是文件中一条条数据记录

字段:id,name,age,gender...(一条数据记录)

4.数据库分类

1.关系型数据库

有表的概念,以表中一条条记录存储数据

mysql,oracle,sqlServer,access db2

2.非关系型数据库

没有表的概念,通过key-value键值对方式存储数据

mongodb,rdis,memcache

5.数据库安装

#1、下载:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/

#2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:mysql-5.7.16-winx64

#3、添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
 
#4、初始化
mysqld --initialize-insecure

#5、启动MySQL服务
mysqld # 启动MySQL服务

#6、启动MySQL客户端并连接MySQL服务
mysql -u root -p # 连接MySQL服务器
复制代码
mysql安装
上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:



注意:--install前,必须用mysql启动命令的绝对路径
# 制作MySQL的Windows服务,在终端执行此命令:
"c:mysql-5.7.16-winx64inmysqld" --install
 
# 移除MySQL的Windows服务,在终端执行此命令:
"c:mysql-5.7.16-winx64inmysqld" --remove



注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
net start mysql
 
# 关闭MySQL服务
net stop mysql
将MySQL服务制作成windows服务

数据库启动与连接:

# 前提:配置环境变量
# 1.前往数据库安装路径,bin文件夹下,cmd执行 mysqld  启动mysql服务器端
# 2.前往数据库安装路径,bin文件夹下,cmd执行 mysql  启动mysql客户端连接服务器

# 将mysql服务器添加到系统服务,在系统服务中启动mysql,命令:mysqld --install
# 进入系统服务:win+r => services.msc => 找到mysql服务,手动启动或关闭
# 连接数据库:mysql -hlocalhost -P3306 -uroot -p
# 通过最高权限进入数据库,要采用root用户进入,连入本地数据库:mysql -uroot -p
# 查看mysql版本:select version();
# 查看当前用户:select user();
# 查看mysqld下的(当前用户可以操作的)所有数据库:show databases;

6.密码操作

1.知道旧密码

初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
设置密码
# mysqladmin -uroot password "123"        设置初始密码 由于原密码为空,因此-p可以不用
# mysqladmin -uroot -p"123" password "456"        修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码

2.忘记密码

# 1.绕过授权表启动服务(安全认证的服务停止):mysqld --skip-grant-tables如果不行可以用:mysqld --console --skip-grant-tables --shared-memory
# 2.以任意密码登录root用户:mysql -uroot -p
# 3.更新密码:update mysql.user set password=password("新密码“)where user="root" and host="localhost";
# 4.刷新权限:fiush privileges;

7.配置文件

#在mysql的解压目录下,新建my.ini,然后配置
#1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
default-storage-engine=innodb
innodb_file_per_table=1


#解压的目录
basedir=E:mysql-5.7.19-winx64
#data目录
datadir=E:my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据



#2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
[client]
port=3306
default-character-set=utf8
user=root
password=123

#3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
[mysql]
;port=3306
;default-character-set=utf8
user=egon
password=4573


#!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
View Code

8.统一字符编码

#1. 修改配置文件
[mysqld]
default-character-set=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

#mysql5.5以上:修改方式有所改动
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

#2. 重启服务
#3. 查看修改结果:
s
show variables like '%char%

9.库的基本操作

# 前提:连接上服务器

# 1.增,创建数据库
# 采用默认编码集:create databases db1; # db1是数据库名
# 自定义编码集:create databases db1 charset="gbk";

# 2.查,查看数据库全部信息
# 纵观所有数据库:show databases;
# 详细信息:show create database db1;

# 3.改,修改数据库编码集
# alter database db1 charset="utf8";

# 4.删,移除数据库
# drop database db1;

10.表的基本操作

# 前提:在具体的某个库下创建表
# 进入指定数据库:use db1
# 确定当前使用的数据库:select database();

# 1.增,创建表(字段1 类型,。。。,字段n 类型)
# create table t1(name char, age int);

# 2.查,查看表信息
# 纵观所有表:show tables;
# 详细信息:show create table t1;
# 表字段结构信息:describe t1;

# 3.改
# 修改字段属性:alter table t1 modify name char(20);
# 修改字段名:alter table t1 change name usr char(16);
# 修改表名:alter table t1 rename t2;

# 4.删,移除表
# drop table t1;

11.字段的基本操作

# 前提:知道具体操作的是哪张表

# 1.增,添加字段
# insert into t1 (usr, age) values ("aa", 18),("bb", 8);

# 2.查
# select * from t1;

# 3.改
# update t1 set age=28 where usr="aa";

# 4.删
# delete from t1 where age>8;
原文地址:https://www.cnblogs.com/wangke0917/p/10235209.html