JAVA 之 MySql知识框架

2017-08-29  本文已影响65人  何拾八

一、数据库概述

二、数据库的安装与配置

* 安装
    * 参照图解
    * 一路下一步
* 卸载
    1.停止mysql服务   net stop mysql     启动mysql服务  net start mysql
    2.卸载mysql
    3.找到mysql 安装目录下的 my.ini   datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
* 运行
    * 安装成功了打开cmd  --> mysql -uroot -p你的密码
    * 修改mysql root用户密码
        1) 停止mysql服务 运行输入services.msc 停止mysql服务
            或者 cmd -->  net stop mysql
        2) 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
        3) 新打开cmd 输入mysql -u root -p 不需要密码 
        use mysql;
        update user set password=password('abc') WHERE User='root';
        4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程 
        5) 在服务管理页面 重启mysql 服务
        密码修改完成

配置

图片1.png
图片2.png
图片3.png
图片4.png
图片5.png
图片6.png
图片7.png
图片8.png
图片9.png
图片10.png
图片11.png

三、sql概述

四、Sql的分类

4.1 DDL:操作数据库、表、列等

使用的关键字:CREATE、 ALTER、 DROP

4.1.1操作数据库

创建

Create database mydb1;
Create database mydb2 character set gbk;
Create database mydb3 character set gbk COLLATE gbk_chinese_ci;

查询

查看当前数据库服务器中的所有数据库
Show databases;
查看前面创建的mydb2数据库的定义信息
Show create database mydb2;
删除前面创建的mydb3数据库
Drop database mydb3;

修改

查看服务器中的数据库,并把mydb2的字符集修改为utf8;
alter database mydb2 character set utf8;

删除

Drop database mydb3;

* 其他:

查看当前使用的数据库
Select database();
切换数据库
Use mydb2;

4.1.2操作数据表

* 语法:
        create table 表名(
            字段1 字段类型,
            字段2 字段类型,
            ...
            字段n 字段类型
        );              
* 常用数据类型:
        int:整型
        double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
        char:固定长度字符串类型;    char(10)     'aaa       '  占10位
        varchar:可变长度字符串类型; varchar(10)  'aaa'  占3为
        text:字符串类型;
        blob:字节类型;
        date:日期类型,格式为:yyyy-MM-dd;
        time:时间类型,格式为:hh:mm:ss
        timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值
        datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
当前数据库中的所有表
SHOW TABLES;
查看表的字段信息
DESC employee;
在上面员工表的基本上增加一个image列。
ALTER TABLE employee ADD image blob;
修改job列,使其长度为60。
ALTER TABLE employee MODIFY job varchar(60);
删除image列,一次只能删一列。
ALTER TABLE employee DROP image;
表名改为user。
RENAME TABLE employee TO user;
查看表格的创建细节
SHOW CREATE TABLE user;
修改表的字符集为gbk
ALTER TABLE user CHARACTER SET gbk;
列名name修改为username
ALTER TABLE user CHANGE name username varchar(100);
删除表
DROP TABLE user ;
4.2 DML操作(重要)
4.3 DQL操作

DQL数据查询语言 (重要)
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表。

查询关键字:SELECT 
语法: SELECT 列名 FROM表名 
【WHERE --> BROUP BY -->HAVING--> ORDER BY】

语法:
SELECT selection_list /*要查询的列名称*/
  FROM table_list /*要查询的表名称*/
  WHERE condition /*行条件*/
  GROUP BY grouping_columns /*对结果分组*/
  HAVING condition /*分组后的行条件*/
  ORDER BY sorting_columns /*对结果分组*/
  LIMIT offset_start, row_count /*结果限定*/
8 LIMIT
LIMIT用来限定查询结果的起始行,以及总行数。

8.1 查询5行记录,起始行从0开始
SELECT * FROM emp LIMIT 0, 5;
注意,起始行从0开始,即第一行开始!

8.2 查询10行记录,起始行从3开始
SELECT * FROM emp LIMIT 3, 10;

8.3 分页查询
如果一页记录为10条,希望查看第3页记录应该怎么查呢?
第一页记录起始行为0,一共查询10行;
第二页记录起始行为10,一共查询10行;
第三页记录起始行为20,一共查询10行;
8.3 分页查询
    查询语句书写顺序:select – from- where- group by- having- order by-limit
    查询语句执行顺序:from - where -group by - having - select - order by-limit  

五、数据的完整性

作用:保证用户输入的数据保存到数据库中是正确的。
确保数据的完整性 = 在创建表时给表中添加约束
完整性的分类:
实体完整性:
域完整性:
引用完整性:

六、多表查询(重要)

多表查询有如下几种:
 合并结果集;UNION 、  UNION ALL
 连接查询
 内连接  [INNER] JOIN  ON 
 外连接  OUTER JOIN ON
 左外连接 LEFT [OUTER] JOIN
 右外连接 RIGHT [OUTER] JOIN
 全外连接(MySQL不支持)FULL JOIN
 自然连接  NATURAL JOIN (自己查找连接关系)
 子查询

七、MySQL数据库的备份与恢复

1 生成SQL脚本 导出数据

在控制台使用mysqldump命令可以用来生成指定数据库的脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创建数据库的语句!所以在恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。
  mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径

1.png

现在可以在C盘下找到mydb1.sql文件了!
注意,mysqldump命令是在Windows控制台下执行,无需登录mysql!!!

2 执行SQL脚本 恢复数据

前提:必须先创建数据库名
执行SQL脚本需要登录mysql,然后进入指定数据库,才可以执行SQL脚本!!!
执行SQL脚本不只是用来恢复数据库,也可以在平时编写SQL脚本,然后使用执行SQL 脚本来操作数据库!大家都知道,在黑屏下编写SQL语句时,就算发现了错误,可能也不能修改了。所以我建议大家使用脚本文件来编写SQL代码,然后执行之!
SOURCE C:\mydb1.sql

2.png

注意,在执行脚本时需要先行核查当前数据库中的表是否与脚本文件中的语句有冲突!例如在脚本文件中存在create table a的语句,而当前数据库中已经存在了a表,那么就会出错!

还可以通过下面的方式来执行脚本文件:
mysql -uroot -p123 mydb1<c:\mydb1.sql
mysql –u用户名 –p密码 数据库<要执行脚本文件路径

3.png

这种方式无需登录mysql!
注意:在CMD下 命令不能加;

八、MySQL卸载

上一篇 下一篇

猜你喜欢

热点阅读