数据库说直白一点其实就是一个表结构,关系型数据库也叫做行列数据库,就如下表。
学生表
编号 | 姓名 | 性别 | 班级编号 |
1 |
张三 | 男 | 1 |
2 | 李四 | 女 | 1 |
3 | 王五 | 男 | 2 |
4 | 赵六 | 男 | 3 |
5 | 钱七 | 女 | 3 |
一台计算机提供数据库服务,可以创建很多个数据库。每个数据库可以创建很多个表。每个数据表可以包含很多个列。每个数据行都是由一个或多个列组成,这依次是包涵关系。
这里能不能说每个列是多个行组成呢?
不能,关系型数据库保存数据的最小单位是行,行只是组成列的一部分。外部程序发出的指令然后到数据库里面对应的数据,返回给外部程序。
1、SQL简介
什么是SQL:
SQL是结构化查询语言的简介,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库。
SQL分类:
存储引擎就是用来处理数据的。
show databases; #查看数据库
2、数据库的创建
注意创建一个库的名字不能重复。
2.1、字符集编码和校验(排序)规则
(1)字符集是指为数据进行编码然后保存
英文和数字使用多少字节保存一个字符1Byte。中文和标点符号使用多少个字节保存?Byte。
(2)校验(排序)规则指的是如何对数据进行排序。
相对来说非常完整的创建数据库的代码:
#create database if not exists java114 character set utf8mb4 collate utf8mb4_0900_ai_ci;
2.2、alter 修改数据库
alter 修改数据库(完整代码)
alter database java113 character set utf8mb4 collate utf8mb4_0900_ai_ci;
alter主要指的是修改字符编码集和排序规则。
2.3、drop删除数据库
删除数据库的操作(完整代码)
drop database if exists java114;
\?可以看到很多操作符。
use+数据库名代表代表进入这个数据库里面。
--加” ”为注释。
3、数值类型
安装完MySQL之后电脑上就有了MySQL服务--->管理着很多个数据库--->管理库中管理很多个表--->管理很多数据行--->数据行是由多个列组成--->描述列中用到了很多的数据类型。
定义列时需要用到的数据类型:数值类型、字符串类型、二进制类型、日期类型。
数值类型:bit、tinyint、bool、short、int、long、float、double、BigDecimal。
字符串类型:char[()]、varchar()、text[()]、binary[()]、varbinary()、blob[()]、enum()、set()。
日期类型:datetime[()]、date、timestamp[()]、time[()]、year[()]。
(1)数值类型具体如下:
类型 | 大小 | 说明 |
BIT((M)) | 默认bit | 位值类型。M表示每个值的位数,取值范围为1~64。如果省略M, 则默认为1。 |
TINYINT[(M)] | 1byte | 取值范围-2^~2^7-1,无符号取值2^8-1。 |
BOOL | 1byte | TINYINT(1)的同义词。值为零被认为是假, 非零值为认为是true。 |
SMALLINT[(M)] | 2byte | 取值范围-2^15~2^15-1, 无符号取值范围2^16-1。 |
MEDIUMINT[(M)] | 3byte | 取值范围-2^23~2^23-1,无符号取值范围2^24-1。 |
INT[(M)] | 4byte | 取值范围-2^31~2^31-1,无符号取值2^32-1 |
INTEGER[(M)] | 4byte | INT[(M)]的同义词 |
BIGINT[(M)] | 8byte | 取值范围为-2^63~2^63-1,无符号取值为2^64-1 |
FLOAT[(M,D)] | 4byte |
单精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后7位
|
DOUBLE[(M, D)] | 8byte |
双精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后 15位。
|
DECIMAL[(M[,D])] | 动态 |
不存在精度损失,M是总位数,D是⼩数点后的位数。DECIMAL的最⼤位数(M)为 65,最⼤⼩数位数(D)为30。如果省略M,则默认为10,如果省略D,则默认为 0。M中不计算⼩数点和负数的-号,如果D为0,则值没有⼩数点和⼩数部分。
|
(2)字符串类型具体如下:
类型
|
说明
|
CHAR[(M)]
|
固定⻓度字符串,
|