全网最全MySQL数据库基础1

目录

1.数据库介绍

为什么使用数据库:

2.数据库分类:

3.SQL分类

4.数据库操作

1.查询服务器上的所有数据库:show databases;

 2.创建数据库(创建项目):

3.使用数据库(切换数据库):use 数据库名

4.删除数据库:DROP DATABASE [IF EXISTS] db_name;

 MySQL数据库类型:

数值类型:

字符串类型:

日期类型:

表的操作用法

1.创建表的语法:           

2. 查询所有的表名:

3. 查询表结构:

4.删除表

5.修改表结构 


1.数据库介绍

为什么使用数据库:

数据的存储可以用文件,但文件保存数据有四个缺点,如下:

(1)文件的安全性问题
(2)文件不利于数据查询和管理
(3)文件不利于存储海量数据
(4)文件在程序中控制不方便
数据库存储介质: 磁盘 内存
为了解决上述问题,专家们设计出更加利于管理数据的软件 —— 数据库,它能更有效的管理数据。数据 库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。

2.数据库分类:

数据库大体可以分为 关系型数据库 非关系型数据库
关系型数据库( 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
关系型数据库与非关系型数据库的 区别
                                    关系型数据库                  非关系型数据库
使用 SQL                             是                     不强制要求,一般不基于SQL 实现
事务支持                           支持                                  不支持
复杂操作                           支持                                  不支持
海量读写操作                  效率低                                效率高
基本结构                基于表和列,结构固定           灵活性比较高
使用场景              业务方面的 OLTP 系统          用于数据的缓存、或基于统计分析的 OLAP 系统
注: OLTP On-Line Transaction Processing )是指联机事务处理, OLAP On-Line Analytical
Processing )是指联机分析处理。

3.SQL分类

  DDL数据定义语言,用来维护存储数据的结构 (创建数据库和表字段) 
代表指令 : create, drop, alter;
DML 数据操纵语言,用来对 数据 进行操作(数据库的维护和查询)
代表指令: insert delete update
DML 中又单独分了一个 DQL ,数据查询语言,代表指令: select;
DCL 数据控制语言,主要负责权限管理和事务
代表指令: grant revoke commit.

4.数据库操作

DDL:

1.查询服务器上的所有数据库:show databases;

 2.创建数据库(创建项目):

CREATE DATABASE [IF NOT EXISTS] (非必须命令,如果不存在的情况下)db_name(数据库名) [create_specification [, create_specification] ...]
create_specification:
[DEFAULT] CHARACTER 编码格式 SET charset_name
[DEFAULT] COLLATE collation_name
注意:MySQL的命名规则是所有的数据库名称和表名以及字段名,必须要求全部小写。多个字母之间使用下划线“_”分隔。(大小写敏感linux)

3.使用数据库(切换数据库):use 数据库名

4.删除数据库:DROP DATABASE [IF EXISTS] db_name;

 MySQL数据库类型:

数值类型:

数据类型              大小                                      说明                                                对应 java 类型
BIT[ (M) ]     M指定位数,默认为1     二进制数,M 范围从 1 64,        常用Boolean 对应 BIT ,此时
                                                           存储数值范围从0 2^M-1          默认是1 位,即只能存 0 1
TINYINT            1 字节                                                                                                   Byte
SMALLINT         2 字节                                                                                                  Short
INT                      4字节                                                                                                 Integer
BIGINT               8 字节                                                                                                  Long
FLOAT(M, D)      4 字节                      单精度,M 指定长度, D 指定
                                                            小数位数。会发生精度丢失                               Float
DOUBLE(M, D)   8字节                                                                                                Double
DECIMAL(M, D)   M/D最大值+2         双精度,M 指定长度, D 表示                                                                                                              小数点位数。精确数值                                   BigDecimal
NUMERIC(M, D)  M/D最大 值+2             和DECIMAL 一样                                        BigDecimal
扩展知识:
数值类型可以指定为无符号( unsigned ),表示不取负数。
1 字节( bytes = 8bit
对于整型类型的范围:
1. 有符号范围: -2^ (类型字节数 *8-1 )到 2^ (类型字节数 *8-1 -1 ,如 int 4 字节,就
-2^31 2^31-1
2. 无符号范围: 0 2^ (类型字节数 *8 -1 ,如 int 就是 2^32-1
尽量不使用 unsigned ,对于 int 类型可能存放不下的数据, int unsigned 同样可能存放不下,与其
如此,还不如设计时,将 int 类型提升为 bigint 类型。

字符串类型:

数据类型

            大小

         

        说明

对应java类型对应C类型
VARCHAR (SIZE)
0-65,535 字节
可变长度字符串
Stringchar[]
TEXT
0-65,535 字节
长文本数据Stringchar[]
MEDIUMTEXT
0-16777215字节
中等长度文本数据
Stringchar[]
BLOB
0-65,535 字节
二进制形式的长文本数据byte[]char[]
LONGTEXT0-4294967295字节极大文本数据Stringchar[]

日期类型:

数据类型大小     说明对应Java类型
DATETIME
8字节范围从1000到9999年,不会进行时区检索及转换

java.util.Date

java.sql.Timestamp

TIMESTAMP
4字节
范围从 1970 2038 年,自动检索当前时
区并进行转换。

java.util.Date
java.sql.Timestamp 

表的操作用法

1.创建表的语法:           

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
);
可以使用 comment 增加字段说明。

2. 查询所有的表名:

show tables;

3. 查询表结构:

desc table_name;

key:表示索引;Default:表示默认值; 

查询表的所有信息:

方式一:show create table 表名;

 方法二:show full columns from 表名;

4.删除表

语法格式:

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

 删除多张表

语法:drop table 表一,表二;

5.修改表结构 

添加字段

语法:alter table 表名 add column 列名 列类型 [comment 备注信息];

删除字段

语法: alter table 表名 drop column 列名;(删除列的时候,这一列所对应的所有数据也全部删除)

修改字段

语法:alter table 表名 change 原字段名 新字段名 类型 [约束];   (修改字段不会对此字段的原有数据造成任何影响)

 

 修改表名

语法:alter table 旧表名 rename 新表名;

修改表的编码格式

语法:alter table table_name convert to character set utf8mb4;

注意:一张表里面不能出现两个相同字段名,一个数据库里面不能创建两个相同名称的表。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值