博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据库】数据库基础操作
阅读量:3944 次
发布时间:2019-05-24

本文共 3321 字,大约阅读时间需要 11 分钟。

文章目录

1.数据库介绍

数据库是一个软件,用来管理磁盘上的数据(也有些数据库是内存数据库)。

数据库大体可以分为 关系型数据库非关系型数据库

关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:

  1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。数据库领域中最强数据库,收费。
  2. MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
  3. SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。

非关系型数据库:不规定基于SQL实现。现在更多是指NoSQL数据库,如:

  1. 基于键值对(Key-Value):如 memcached、redis
  2. 基于文档型:如 mongodb
  3. 基于列族:如 hbase
  4. 基于图型:如 neo4j

关系型数据库与非关系型数据库的区别

在这里插入图片描述

关系型数据库,有很多的约束,也要按照一定的格式来组织,操作时候需要进行一系列的效验。对于一个大型系统,性能瓶颈很可能出现在数据库方面。

补充:

MySQL 是一个 C/S (客户端/服务器) 结构的程序。
安装 MySQL 服务器(数据库本体,在服务器上存储和管理数据),同时也安装了一个 MySQL 客户端(官方提供的,也可以自己写一个自己的客户端),通过网络来和服务器进行交互。

2.SQL语言分类

DDL:数据定义语言创建表结构,用来维护存储数据的结构,修改表结构的时候会用到。

        代表指令: create, drop, alter
        适用人群:主要是程序员

DML:数据操作语言,用来对数据进行操作,对数据进行增删改查。

        代表指令: insert,delete,update
        适用人群:主要是程序员
        ● DML中又单独分了一个DQL,数据查询语言,代表指令: select

DCL:数据控制语言,主要负责权限管理和事务。

        代表指令: grant,revoke,commit
        适用人群:DBA(数据库管理员)

3.数据库操作

3.1查看数据库

SHOW DATABASES;

3.2创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name

db_name库名字一般数字、字母、下划线构成,数字不能开头。

IF NOT EXISTS如果该数据库不存在才会创建;如果存在则不会创建,避免同名数据库报错的情况。

CHARACTER SET utf8mb4创建数据库时,可以指定数据库的字符集(gbk、utf8……)避免中文乱码的问题。如果不指定,MySQL 会给顶一个默认值字符集(在 mysql.ini 配置文件中)。

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则,如比较字符串相等、大小(默认情况忽略大小写比较)

3.3使用数据库

use 数据库名;

3.4删除数据库

DROP DATABASE [IF EXISTS] db_name;-- if exists 如果存在 db_name 表就删除 不存在就不删

删除操作需谨慎!!!一旦数据库被删除,其中的数据很有可能就删除了!

如果误删,数据还有一定的抢救机会~~~但无法保证一定都可以全部恢复

1.MySQL中的每一次操作都会生成一跳 binlog 日志。可以通过 binlog 中的内容来还原数据(binlog内容可能非常大,也可能不全)。
2.删除只是把磁盘上的对应数据 标记为无效,数据其实还在 ,可以通过一些专业的磁盘修读工具来找回部分数据。

4.数据类型

数据库是以数据表的形式来管理数据的。

4.1数值类型

在这里插入图片描述

Java中 double folat 都是存在精度误差的,遵守 IEEE 754 标准的浮点数。
eg:钱的相关数距,必需精确,此时类型推荐 DECIMAL ,避免使用double或folat。

4.2字符串类型

在这里插入图片描述

eg:存储图片,数据类型使用 BLOB 。

4.3日期类型

在这里插入图片描述

5.表操作

需要操作数据库中的表时,需要先使用该数据库:

use db_test;

5.1创建表

语法:

CREATE TABLE table_name (    field1 datatype,    field2 datatype,    field3 datatype);

可以使用comment增加字段说明。

示例:

create table stu_test (    id int,    name varchar(20) comment '姓名', -- sql中的字符串可以是单引号 也可以是双引号    password varchar(50) comment '密码',    age int,    sex varchar(1),    birthday timestamp,    amout decimal(13,2), -- 13位,小数点2位    resume text);

5.2查看表结构

desc 表名;

在这里插入图片描述

5.3删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

-- 删除 stu_test 表drop table stu_test;-- 如果存在 stu_test 表,则删除 stu_test 表drop table if exists stu_test;

删除表操作很危险!!!需谨慎!危害没有数据库那么大,但是也挺大的~~

6.补充:安装和启动MySQL

安装

软件安装:(Windows下通过MySQL Installer安装MySQL服务)

MySQL 的客户端有很多种,常用的是 命令行版本 和 图形化界面的客户端。

6.1启动:命令行

方法一:直接双击打开(借助Windows快捷方式)

            在这里插入图片描述

Windows中的快捷方式本质上就是一条命令,双击图标相等于自动执行这些命令。

方法二:在 cmd 上使用命令启动

            在这里插入图片描述

目标中的内容是:"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" "-uroot" "-p" "--default-character-set=utf8"

C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe 指定MySQL客户端路径,本质上是一个 exe 程序

--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 指定MySQL配置文件路径
-uroot 使用用户名 root 登录
-p 使用密码登录(可以直接在后面输入密码;也可以直接回车,系统提示输入密码)
--default-character-set=utf8 默认字符集(设置客户端字符集)服务器也有自己的字符集,必需两者字符集匹配才不会乱码

直接将其拷贝到cmd中,输入密码即可进入数据库命令行。

            在这里插入图片描述
把 MySQL 的路径加入到 path 环境变量中,避免每次启动都需要输入数据库的路径。例如配置后可直接mysql -uroot -p
            在这里插入图片描述

6.2启动:图形化界面客户端

双击打开

            在这里插入图片描述
效果图:
            在这里插入图片描述

6.3数据库乱码问题

转载地址:http://ohjwi.baihongyu.com/

你可能感兴趣的文章
MySQL server has gone away 问题的解决方法
查看>>
MySQL十大优化技巧
查看>>
PHP中文件读写操作
查看>>
php开发常识b_01
查看>>
PHP单例模式
查看>>
PHP项目设计
查看>>
memcache的安装及管理
查看>>
git 传输
查看>>
创建新项目
查看>>
印刷工艺- 喷墨印刷
查看>>
印刷工艺流程
查看>>
印刷业ERP启蒙
查看>>
Java8 Lambda表达式使用集合(笔记)
查看>>
Java魔法师Unsafe
查看>>
spring cloud java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
查看>>
Centos系统安装MySQL(整理)
查看>>
postgresql计算两点距离(经纬度地理位置)
查看>>
postgres多边形存储--解决 Points of LinearRing do not form a closed linestring
查看>>
postgresql+postgis空间数据库总结
查看>>
spring 之 Http Cache 和 Etag(转)
查看>>