Day39 数据库基础
一,数据库初识
Q1:为什么要用数据库
将文件和程序存在一台机器上上很不合理的
操作文件是一件很麻烦的事
Q2:数据库的优势
程序稳定性:这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务
数据一致性:所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
并发:数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要自己写socket
效率:使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
二,数据库中的概念
1.data:数据,记录
id,name,passwd,age,number
1,alex,alex3714,83,13838384438
2.table:表
一张表就相当于一个文件
3.base:库
所谓数据库中的库,就是文件夹
一般情况下,每个程序使用一个库
4.dbms:数据库管理系统
database mangement system
能够通过一个软件来管理文件、文件夹、数据
5.数据库服务器、数据管理系统、数据库、表与记录的关系
数据库服务器:运行数据库管理软件
数据库管理软件:管理数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记
6.关系型数据库和非关系型数据库
关系型:
一条数据包含了一个事物的多条信息,这些信息之间是有关联的
非关系型:
存取频繁,并且要求效率高的,不突出数据之间的关联的,常用于消息转发
k-v结构
7.现在常用的数据库及其特性
关系型数据库
mysql:开源
oracle:企业级
sqlite:轻量级
sql server:大学
非关系型数据库:
memcache
redis
MongeDB
nosql
三,数据库命令
# 启动server端 - 可以在service服务中操作 # >net start mysql # 使用默认用户启动mysql客户端,默认的用户登录 是没有权限查看所有库的 # >mysql 表示启动mysql 客户端 # mysql> select user(); # 查看当前登录的用户 # liqinyang@192.168.1.5 # 用户名@ip地址 # mysql> show databases; # 查看所有的库 # mysql> exit # 退出当前的客户端 # 指定用户登录 root用户 mysql当中权限最高的 管理员用户 # 用户名root登录 # > mysql -uroot -p # 初始化没有密码的时候 直接按回车键进入数据库 # mysql> select user(); # 在输入sql语句的过程中 如果想要放弃本条语句 \c # 设置密码 # mysql> set password = password('123'); # 创建用户 create user # create user 'alex'@'192.168.1.*' identified by '123'; # create user 'eva'@'%' identified by '123'; # > mysql -ueva -p123 -h 192.168.1.2 远程登录一个mysql服务 # 新创建出来的用户eva没有使用数据库的权限 # 给新用户授权 grant # grant 操作(select/all) on '库.表' to '用户'@'ip地址' # grant select on '*.*' to 'eva'@'%' # 创建用户并授权 grant # mysql> grant all on *.* to 'eva'@'%' identified by '123
四,基础sql语句
# 处理库 # 创建库 # create database 数据库名 [charset utf-8]; # 查看库 # show databases; # 修改库 # alter database 数据库的名字 要修改的内容; # 删除库 # drop database 数据库名; # 处理表 # 增 # mysql> create table 表的名字 ( # 列1的名字 数据类型, # 列2的名字 数据类型, # ... # ); # 查 # mysql> show tables; # mysql> desc 表的名字; # 查看创建出来的表结构