基础
MySql 基础
1.认识Mysql
- MySql 三层结构
DBMS 数据库管理系统
- DataBase1
- 表
- 表2…..
- DataBase2
- 表1
- 表2…..
- DataBase……
- DataBase1
MySql 不区分大小写
我们所说的数据库包含上述三层结构,当然除了上述内容外还有些其他功能结构。
客户端——> 通过port 3306 —–>数据库(数据存储的各种数据)
数据库分为;
关系型数据库
通过表和表之间,行和列之间的关系进行数据的存储
非关系型数据库
Redis,MongDB
2.创建一个数据库
- CHARACTER SET:指定数据采用的字符集如果不指定 默认为uft_8
- COLLATE:指定数据可字符集的校对规则(常用utf_bin【严格区分大小写】、utf8_general_ci 【不区大小写 默认】)
注意:
校对 不区分大小写,如果表中数据存在相同字段但大小写不同,只会显示一条结果;
CREATE DATABASE [IF NOT EXISTS] name CHARACTER 字符集名称 COLLATE 校对规则
[IF NOT EXISTS] 如果DB存在不会执行
省略后如果创建书库存在则会报错,
创建数据库&删除数据库
1 |
|
1 | #显数DB |
3.备份数据库
Dos命令行
备份数据库
mysqldump -u user_name -p -B DB1 DB2 … > file_name.sql
备份数据库中的表
mysqldump -u user_name -p DB1 tb1 tb2 … > file_name.sql
注意:
- 添加环境,每天加去bin目录启动
- 不要在sql控制台输入 会报错
- -p 后密码不要输入 回车后输入
恢复数据库
Source file_name
4.创建表
1 | CREATE TABLE ( |
创建表示注意确认当前是在那个数据库
5.MySql 数据类型
- 也称作列类型
引入一下整形 范围和 正负的 理解,我们都知道1byte等于8bit
char c; 这个字符c 能表示的范围为 2^8 也就是0-255
short int i; 短整形 站2byte 2^16 也就是 -32768 — + 32767
unsigned short int; 这个无符号类型 则是 0-65535
在二进制中正负实现规则为下,任意一个非unsigned整形 最高位是用来存放0 1 0表示没有符号也就是为正 1表示有符号也就为负
所以 实际存放数值的只有15位二进制数,2^15 就为 0-32767了
数值类型
整形
- bit(M) [m指定位数 默认1 范围1-64]是以二进制输出的 比如 bit(8) =255 输出的 ‘11111111’
- tinyint [1byte]
- smallint [2byte]
- mediumint [3byte]
- int [4byte]
- bigint [8byte]
小数类型
- float [单精度 4byte]
- double [双精度 8byte]
- decimal(M,D) [大小不确定]
文本类型
- char [0-255 字符]
- varchar [0-65535 字节 utf8编码 最大为21844字符 1-3个字节用于记录大小 如果编码为gbk 2个字符用记录大小]
- text [0-65535]
- longtext[0-2^32-1]
二进制数据类型
- blob [0- 2^16-1]
- longblob [0-2^32-1]
时期类型
- date [日期 年月日]
- year [年]
- time [时间 时分秒]
- datetime [年月日 时分秒]
- timestamp [时间戳]
使用规则:保小不保大
在满足需求的情况下,经理选择占用空间较小的类型
decimal(M,D)
定点数精度非常高
双精度,两个参数decimal(m,d) m <= 65 D <= 30 D默认为0 M默认为10
M为总小数位数 D为小数点后位数 D为0则内有小数点或者分数部分。
字符串
char(size ) size 表示的是字符数(不论是否是中文还是其他)而不是字节,注意不好搞混了
varchar(size) 同理
1 | CREATE TABLE `tb`( |
1_CHAR 和 VARCHAR
char() 类型和数组一样 是定长的不可改变其大小,如果超出就会报错
优点:适合定长的字符串 并且执行效率很高
缺点:长度不定时容易产生错误
varchar() 类型 是一种可边长数组 不定长
优点:varchar 在对于不知道字符有多长时 有用处
缺点:搜索没有char快速,并且空间利用也没有char高效
2_TEXT、MEDIUMTEXT、LONGTEXT
text 0-2^16
mediumtext 0-2^24
longtext [0-2^32-1]
文本类型,可替换varchar类型也是不定长字符串。适合用于非常长的字符串比如文章
1 | CREATE TABLE [IF NOT EXISTS] `tb3` ( |
—-注意后面的字节数