1. 数据库是什么

存数据的仓库

2. 为什么使用数据库

  1. 管理大量数据
  2. 支持并发操作
  3. 支持高级的操作,比如分组,链表等

3. 数据库的分类

1. 关系型数据库

表结构存储,对每一列的数据的类型会有约束,数据存在硬盘中

Mysql,maridb(免费,企业用的多),Sqlserver(大学、政府),Oracle(金融公司,阿里),sqlite(自己玩的小型数据库)

2. 非关系型数据库

key-value存储,对于数据没有约束,数据存在内存中

memcache(十年前的产品,未能解决断电即消失的问题),mongodb(文档型数据库,爬虫),redis(微博)

4. mysql的架构

  • 类似于socket的客户端和服务端

  • 流程
    1. MySQL服务端先启动,监听在某一个特定的端口(3306)
    2. MySQL客户端连接服务端
    3. MySQL客户端就可以发送相关的操作命令,去操作服务端存储的数据

5. mysql的安装

1. windows的安装

  1. 下载:MySQL Community Server 5.7.16
    http://dev.mysql.com/downloads/mysql/
  2. 解压
    如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:E:\mysql-5.7.16-winx64
  3. 添加环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
  4. 初始化
    mysqld --initialize-insecure :创建data目录, 初始化的数据
  5. 启动MySQL服务
    mysqld:启动MySQL服务
  6. 启动MySQL客户端并连接MySQL服务
    mysql -u root -p: 连接MySQL服务器

2. windows服务

上一步可以运行MySQL,但不够彻底,执行mysql执行服务端会阻塞住,因此要将MySQL添加到windows服务

  1. 添加windows服务

    cmd运行命令:"e:\mysql-5.7.16-winx64\bin\mysqld" --install

    注意:--install前,必须用mysql启动命令的绝对路径

  2. 启动MySQL服务

    cmd运行命令:net start mysql

  3. 关闭MySQL服务

    cmd运行命令:net stop mysql

  4. 移除windows服务

    cmd运行命令:"e:\mysql-5.7.16-winx64\bin\mysqld" --remove

    注意:这里的路径也必须是绝对路径

3. 设置密码

mysql -u root -p: 管理员root用户 ,默认没有密码

  1. -u:user 用户名
  2. -p:password 密码
  3. -h:host 主机名或IP mysql -uroot -p -h 192.168.1.10
  4. -P:port 默认是3306
  • 管理员登录的情况下:

    set password = password('密码'); # 给当前数据库设置密码

  • 没有登录的情况下:

    mysqladmin -uroot password "123" :设置初始密码 由于原密码为空,因此-p可以不写

    mysqladmin -uroot -p "原密码" password "新密码":修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密

4. 忘记密码

  1. 关闭mysqld的windows服务
  2. cmd中执行:mysqld --skip-grant-tables(不用密码就可以登录,绕过密码验证的权限)
  3. cmd中执行:mysql
  4. cmd中执行:update mysql.user set authentication_string=password('新密码')where user = 'root';
  5. cmd中执行:flush privileges;
  6. cmd中执行:tskill mysqldtaskkill -f /PID7832
  7. 重新启动

5. 新建账号

MySQL> create user 'nick'@'192.168.10.%'   IDENTIFIED BY '123';# 指示网段
MySQL> create user 'nick'@'192.168.10.5'   # 指示某机器可以连接
MySQL> create user 'nick'@'%'                    #指示所有机器都可以连接
MySQL> show grants for 'nick'@'192.168.10.5';查看某个用户的权限
# 远程登陆
$ MySQL -uroot -p123 -h 192.168.10.3

# 给账号授权
MySQL> grant all on *.* to 'nick'@'%';
MySQL> flush privileges;    # 刷新使授权立即生效

# 创建账号并授权
MySQL> grant all on *.* to 'nick'@'%' identified by '123' 

修改mysql的密码:

初识mysql

SQL指令都要加;

操作数据库

  1. create database 数据库名称 charset utf8;
    # 命名规范
    #    1. 可以有字母、数字、下划线、@、#、$
    #    2. 区分大小写
    #    3. 唯一性
    #    4. 不能使用关键字
    #    5. 不能单独使用数字
    #    6. 最长128位
    
    show create database 数据库名;
  2. drop database 数据库名称;
  3. # 删除在增加
    # 如果数据库中有数据的话,直接drop会导致数据库的数据丢失
    # 线上环境,不能直接删除数据,在删除之前,需要进行备份
  4. show databases;
  5. 使用数据库

    user 数据库名;

操作数据表

操作表记录

(day33)数据库的更多相关文章

  1. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

  2. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  3. GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级

    一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  6. 在SQL2008查找某数据库中的列是否存在某个值

    在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型: ...

  7. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  8. SQL Server2014 SP2新增的数据库克隆功能

    SQL Server2014 SP2新增的数据库克隆功能 创建测试库 --创建测试数据库 create database testtest use testtest go --创建表 )) --插入数 ...

  9. 数据库优化案例——————某市中心医院HIS系统

    记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...

随机推荐

  1. npm install 时间很长解决方案

    国外镜像站很慢,所以我们可以更换为国内的镜像站 首先可以get命令查看registry npm congfig get registry 如果你没有变更果regustry你的结果应该会是这样的 也就是 ...

  2. 不知道如何实现服务的动态发现?快来看看 Dubbo 是如何做到的

    上篇文章如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他大致了解了注册中心作用以及 Dubbo Registry 模块源码,这篇文章将深入 Dubbo ZooKeeper 模块,去了解如 ...

  3. Javascript的基础

    ECMAScript(语法.标准) BOM(浏览器) DOM(网页) ECMAScript是一个标准,它规定了语法.类型.语句.关键字.保留子.操作符.对象.(相当于法律) BOM(浏览器对象模型): ...

  4. 浅谈JavaScript的闭包原理

    在一般的教程里,都谈到子作用域可以访问到父级作用域,进而访问到父级作用域中的变量,具体是如何实现的,就不得不提及到函数堆栈和执行上下文. 举个例子,一个简单的闭包:   首先,我们可以知道,examp ...

  5. javascript中字符串对象常用的方法和属性

    前言 字符串是一种非常重要的数据类型,在Java等面向对象编程语言中,它代表对象类型,而在javascript中它却是一种基本数据类型,在开发的领域中,我们经常会碰到,无论是前端还是后台.比如后台验证 ...

  6. redis常用笔记(第一版)

    1.SINTER 说明:多key之间取交集数据 key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SINTER key1 key2 key3 = {c} 2.sad ...

  7. vue中"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序"的报错

    在vue项目中发现了这个报错  解决办法将项目里的“node_modules”文件夹删除,然后重新运行cnpm install

  8. 爬虫那点事,干就玩了之seleunim

    目录 selenium 环境准备 代码环境 开始爬虫 操作js 截图 切换窗口 在当前窗口切换访问地址 管理cookie # 加入战队 微信公众号 # 加入战队 微信公众号 做技术我们最重要的是[做] ...

  9. vue运行报错webpack-dev-server: command not found

    翻译过来就是: 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 解决方法: 然后总结下成功的步骤: 1. 直接在项目目录下: cnpm install npm run ...

  10. raspbian修改swap分区为硬盘上的分区

    一直以为raspbian的swap分区和平常装系统时候的swap分区是一样的,最近用u盘插在树莓派上运行后发现这个交换分区和我想象中不一样. 百度后发现它是一个文件挂上去的.直接搞把! pi@rasp ...