软件
-
Mysql
-
MariaDB
连接Mysql
Mysql
MariaDB
mysql -uroot -proot -h127.0.0.1 -P3306
-
-u:用户名
-
-p:密码
-
-h:IP地址
-
-P:端口号
退出
quit或exit或 q
注释
#或或--(与注释内容之间有空格)
取消执行当前语句
c
数据库
按照数据结构来存储和管理数据的仓库
数据库分类
-
关系型数据库
关系型数据库
说明:底层以二维表的形式保存数据
产品:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、Sybase
-
非关系型数据库
说明:NoSQL(Not only SQL)
产品:Redis、MongoDB、ElasticSearch、Hbase、Neo4J
SQL语言
说明:结构化查询语言
分类:
-
DQL:数据查询语言
保留字:select、where、order by、group by、having
-
DML:数据操作语言
保留字:insert、update、delete
-
TCL:事务控制语言
保留字:commit、savepoint、rollback
-
DCL:数据控制语言
保留字:grant、revoke
-
DDL:数据定义语言
保留字:create、alter、drop
CCL:指针控制语言
保留字:declare cursor、fetch into、update where current
操作
待整理
数据类型
-
数值
数值
| 类型 | 大小 | 用途 |
|---|---|---|
| tinyint | 1byte(相对于java中的byte) | 小整数值 |
| smallint | 2bytes(相对于java中的short) | 大整数值 |
| int | 4bytes(相对于java中的int) | 大整数值 |
| bigint | 8bytes(相对于java中的long) | 极大整数值 |
| float | 4bytes(相对于java中的float) | 单精度浮点数值 |
| double | 8bytes(相对于java中的double) | 双精度浮点数值 |
| decimal | 存储精确的小数值 |
-
字符串
| 类型 | 大小 | 用途 |
|---|---|---|
| char(定长字符串) | 0~255(字符) | 定长字符串 |
| varchar(变长字符串) | 0~65535(字节) | 变长字符串 |
| mediumtext | 0~16777215(字节,约16M) | 长文本 |
| mediumblob | 0~16777215(字节,约16M) | 二进制 |
| longtext | 0-4294967295(字节,约4G) | 极大文本 |
| longblob | 0-4294967295(字节,约4G) | 极大二进制 |
-
日期
| 类型 | 大小 | 范围 | 格式 | 用途 |
|---|---|---|---|---|
| date | 3bytes | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期 |
| time | 3bytes | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间 |
| datetime | 8bytes | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 日期和时间 |
| timestamp(时间戳,毫秒值) | 4bytes | 1970-01-01 00:00:00/2038 | YYYYMMDD HHMMSS | 日期和时间 |
| year | 1bytes | 1901/2155 | YYYY | 年份 |
字段约束
-
主键约束
主键约束
primary key
特点:唯一且非空
-
自增
auto_increment
特点:默认从1自增
-
唯一约束
unique
特点:唯一可为空
-
非空约束
not null
特点:非空
-
外键约束
foreign key( xxx_id) references xxx(id)
特点:在其中一张表中添加一个列,保存另外一张表的主键,就可以保存两张表数据之间的对应关系
表关系
-
一对多
一对多
可以在多的一方添加列保存一的一方的主键作为外键,来保存两张表数据之间的对应关系
-
一对一
可以在任意一方添加列保存另一方的主键作为外键,来保存两张表数据之间的对应关系
-
多对多
不能在任何一方添加列来保存两张表数据之间的对应关系,可以在第三张表中分别存入两张表中的主键,来保存两张表数据之间的对应关系
备份数据库
-
备份单个数据库
备份单个数据库
mysqldump -uroot -proot 库名 > 目标地址
-
备份多个数据库
mysqldump -uroot -proot --database 库名1 库名2 > 目标地址
-
备份所有数据库
mysqldump -uroot -proot -A >目标地址
-
只备份结构
mysqldump -uroot -proot 库名 -d > 目标地址
-
只备份数据
mysqldump -uroot -proot 库名 -t > 目标地址
恢复数据库
-
未登录
未登录
mysqldump -uroot -proot 库名 < 目标地址
-
已登录
source 目标地址
中文乱码set names gbk



