• MySQL数据库——从入门到删库跑路(一)


     

    数据库概念

    • 为什么学习数据库?1.web中的数据量非常大;2. 数据不方便存储和管理

    • 什么是数据库: 用于存储和管理数据的仓库

    • 数据库的特点:

      • 数据可以实现持久化存储,其实数据库就是一个文件系统。

      • 可以很方便的存储和管理数据

      • 数据库它定义了统一的方式来操作数据库 ---SQL Structure Quary Lanaguage 结构化查询语言

    常见的数据库软件:

    • Oracle:收费的大型关系型数据库

    • mysql 开源免费的数据库 中小型关系数据库

    • PSL:免费的数据库

    • DB2: IBM公司 收费,常用在银行系统中

    • redis:免费的 非关系型数据库 key-value键值对

    • MongoDB 非关系型数据库

     mysql安装与卸载

    1. 安装mysql 参见mysql安装文档和网上教程

    2. 卸载分成两步:

      • 安装版:

        1. 找到my.ini datadir = C:/xxx 删除该目录下的文件

        2. 从控制面板中一键卸载 mysql服务开启状态

      • 配置版:

        1. 使用管理员权限打开cmd指令窗口 输入 net stop mysql

        2. 在指令窗口中 输入 mysqld -remove

        3. 删除本地安装的mysql目录文件夹

    3. mysql配置

      • mysql服务启动

        1. 通过管理员打开cmd指令窗口 输入 net start mysql

        2. 找到window服务窗口 打开运行窗口 输入 services.msc ----> 找到mysql 手动启动

      • mysql登录

        • 借助cmd指令窗口

          • mysql -u登录账号 -p 登录密码 没有密码直接回车就可以

          • mysql -h连接服务器的ip地址 -u登录账号 -p登录密码

            mysql -hlocalhost/127.0.0.1 -uroot -proot;

            如果通过ip连接不上,说明权限不够,给root账号开启连接mysql连接的权限

            grant all privilegegs on  *.* to root@'%' identified by '连接服务器的密码' with admin option/ with grant option

            0. 使用mysql数据库 use mysql;
            1. grant all privileges on *.* to root@'%' identified by 'root' with grant option;
            2. flush privilegegs; 刷新mysql的系统权限
            3. 退出 重新通过ip进入
        • 借助于mysql可视化管理工具 Navicat

          解压Navicat压缩包 简单破解下,点击连接选择mysql 在连接窗口中输入连接名、连接服务器ip地址 、登录的账号和密码--->test 如果连接成功,代码已经成功登录进来

      • mysql 退出

        • quit

        • exit

      • mysql目录结构

        1. mysql安装目录结构 basedir目录中

          • bin: 二进制文件 mysql可执行的脚本 mysqld.exe

          • data: 数据 mysql运行需要的数据文件还有mysql运行的日志文件

          • include: C语言的头信息

          • lib: mysql运行需要支持的一些类库 jar包文件

          • share:mysql运行的一些错误信息

          • my.ini mysql的配置信息

        2. mysql数据目录结构 datadir目录中

          • 数据库: 一个个文件夹

          • 表 : 就是一个个文件

          • 数据 :一条条记录

     MySQL概述

    • 数据库管理系统、数据库和表的关系

      可以使用数据库管理系统创建多个数据库,比如java31/apartment数据库.....,一般一个项目对应的是一个数据库,一个数据库可以创建多张表,一般在项目中,数据库中的表映射Model类 pojo、model、entry

      比如数据库中创建一张用户表user 在后台服务器中一般对应的有一个model类 User.class

    后台中的model类 一般用于临时存储从数据库中查询出来对应表中的数据, 如从user表查询出来一条记录,这条记录对应的就是后台服务器中的一个user对象(属性)

    SQL 操作数据库

    概念:结构化查询语言   Structured Quary Language

    作用

    1. 是一种数据库的查询的标准,对所有的数据库都支持

    2. 不同的数据库SQL语句可能有点不同 (方言),mysql oracle DB2

    sql语句分类

    1.DDL:操作数据库、表 数据定义语言 Data Definition Language

    2.DML:增删改表中的记录 数据操作语言 Data Manipulation Language

    3.DQL: 查询表中的记录 数据查询语言 Data Query language

    4.DCL: 管理用户与授权 Data Control language 数据控制语言

    DDL 语言

    1. 操作数据库 CRUD操作

      • 创建数据库 方式有很多种: C ---create

        • create database 数据库名;

        • create database if not exists 数据库名;// 创建的时候先判断数据库是否存在

        • create database 数据库名 character set 编码字符集;// 创建数据库的指定编码字符集

    -- 分号 一般是sql语句的结束标志
    create DATABASE java31;
    -- 创建数据库的第二种方式 create database if not exists 数据库名;
    create database if not EXISTS apartment;
    -- 创建数据库的第三种方式  create database 数据库名 character set 编码字符集;
    create database school character set utf8;
    -- 三者组合到一起表达
    create database if not EXISTS college character set utf8;
    1. 查询 r --->retrieve

      • 查询当前数据库服务器的所有的数据库

        show databases;

      • 查询某个数据库的编码字符集:查询某个创建的数据库的编码字符集

        show create database 数据库名称;

    2. 修改 u--->update

      • 修改数据库的编码字符集

        alter database 数据库名称 character set 编码字符集;

    -- alter  database 数据库名称 character set 编码字符集;
    alter database college character set gbk;
    1. 删除 d -->delete drop

      • 删除数据库

        drop database 数据库名称;

      • 判断数据库是否存在,如果存在删除掉

        drop database if exists 数据库名称;

    --  drop database if exists 数据库名称;
    drop database if EXISTS school;
    1. 操作表

      1. 创建表 C --> create

        • 语法:

          create table 表名(

          列名1 数据类型,

          列名2 数据类型,

          。。。。。。。

          );

        • 数据类型

          • 整数类型 tinyint(微整形) 8位 smallint(小整形)16位 mediumint(中整形)24位 int(integer) 整形32位

          • 小数类型 double 8个字节 float 4个字节

          • 日期类型 date (年月日) time (时分秒) datetime (年月日时分秒) timestamp 时间戳 年月日时分秒

            时间戳,如果该字段为时间戳类型,没有赋值或者该字段值为null,则默认使用系统当前的时间自动赋值。一般情况一张表中只能有一个字段使用时间戳数据类型。

          • 字符串类型 char(固定长度的字符串) varchar(可变长度的字符串) 使用几个字符就占几个

          • 二进制类型 tinyblob(允许0~255个字节) big large blob(允许0~65535个字节) longblob(非常大)

          • 文本类型 tinytext (允许长度为0~255个字节) text(允许0~65535个字节) longtext(非常大)

             

      2. 查看表 查询 retrieve

        • show tables 查看当前使用的数据库下面的所有的表

        • desc 表名; 描述该表的结构

        • 查看创建的表 show create table 表名;---->查看该表创建使用到的sql语句

        • 快速创建一个表结构相同的表 create table 新表名 like 旧表名;

      3. 修改 update

        • 修改表名 alter

          alter table 旧表名 rename to 新表名;

        • 修改表的字符集

          alter table 表名 character set 编码字符集;

        • 添加一列字段 add

          alter table 表名 add 列名 数据类型;

        • 删除一列 drop

          alter table 表名 drop 列名;

        • 修改列名 数据类型

          • change alter table 表名 change 旧列名 新列名 新数据类型;

          • modify alter table 表名 modify 列名 新数据类型;

      4. 删除 delete

        • 删除表 drop table 表名;

        • 删除判断表是否存在 drop table if exists 表名;

      大多数情况下我们是直接借助于图形化管理工具 Navicat直接操作。

    DML 增删改数据库中的表的数据

    1. 添加数据:

      • 语法:

        • insert into 表名(列名1,列名2,......列名n) values(值1,值2,......值n);

        • 注意事项:

          • 列名和后面值的类型要保持一致。

          • 如果表名后面没有指定列名,默认为给该表中的所有的列添加对应的值。注意依然是有顺序的。

            insert into 表名 values(值1,值2,......值n);

          • 除了数字类型外(int,double),其他类型一律要使用引号(单引号和双引号都可以)引起来。

    2. 删除数据:

      • 语法: delete

        delete from 表名 [where 条件];

      • 注意事项:

        • 如果后面不跟条件 ,则删除整张表的数据

        • 删除表的所有的记录 delete from student / truncate table 表名;(底层是先把表删除掉,然后再创建一张一模一样的表)

        • 如果条件中的字段值有重复的,凡是符合条件的都删除。

    3. 修改数据:update

      • 语法:

        update 表名 set 列名1 = 替换值1, 列名2 =替换值2,.....列名n = 替换值n [where 条件];

      • 注意:

        • 如果不带条件,则会修改表中的所有记录

  • 相关阅读:
    给jquery 添加触屏事件,上下左右 touchwipe插件
    node.js 安装运行
    CSS3 3D 盒子模型
    javascript 获取内联样式
    HTML5 离线存储应用案例
    swipe.js 轻松实现手机端滑动效果
    手机网页轮播切换,简易版
    多行文字垂直居中
    jquery实现简单轮播
    利用media query写响应式布局
  • 原文地址:https://www.cnblogs.com/lk625/p/14231834.html
Copyright © 2020-2023  润新知