1. 数据库简介
1. 定义
数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加、修改、删除、查询等操作。
2. 分类
- 关系型数据库:指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型
- 数据行
- 数据列
- 数据表
- 数据库(数据表的集合)
- 非关系型数据库:非关系型数据库,又被称为NoSQL(Not Only SQL ),对NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 的方式存储数据。
3. 作用
数据库的作用就是存储和管理数据的
4. 数据库的作用就是存储和管理数据的
- 持久化存储
- 读写速度极高
- 保证数据的有效性
2. 关系型数据库管理系统
1. 介绍
数据库管理系统(英语全拼:Relational Database Management System,简称RDBMS)是为管理关系型数据库而设计的软件系统,如果大家想要使用关系型数据库就需要安装数据库管理系统,其实就是一个应用软件。
2. SQL的介绍
- SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库的语言。
- SQL语言主要分为:
- DQL:数据查询语言,用于对数据进行查询,如select
- DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete
- TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
- DCL:数据控制语言,进行授权与权限回收,如grant、revoke
- DDL:数据定义语言,进行数据库、表的管理等,如create、drop
3. 数据类型和约束
1. 数据类型
-
整数:int,bit
- bit是二进制位0,1;类似Boolean类型中的True和False
类型 字节大小 有符号范围(Signed) 无符号范围(Unsigned) TINYINT 1 -128 ~ 127 0 ~ 255 SMALLINT 2 -32768 ~ 32767 0 ~ 65535 MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215 INT/INTEGER 4 -2147483648 ~2147483647 0 ~ 4294967295 BIGINT 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615 -
小数:decimal;表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.
-
字符串:varchar,char;
- char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ',3表示字符数
- varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’,3表示字符数
- text,可变长度,字符个数大于 4000
- longtext,可变长度, 极大型文本数据
-
日期时间: date, time, datetime
类型 字节大小 示例 DATE 4 ‘2020-01-01’ TIME 3 ‘12:29:59’ DATETIME 8 ‘2020-01-01 12:29:59’ YEAR 1 ‘2017’ TIMESTAMP 4 ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-01 00:00:01’ UTC -
枚举类型:enum(枚举值)
- 使用时,枚举值可以用数字代替,对应数字从1开始
2. 数据约束
- 主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
- 非空 not null: 此字段不允许填写空值.
- 惟一 unique: 此字段的值不允许重复.
- 默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
- 外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.一个表中可以有多个外键,外键必须关联另一张表的主键
4. 命令行客户端MySQL的基本使用
1. 登录和退出
mysql -uroot -p
quit 或 exit 或 ctrl + d
sudo service mysql start
sudo service mysql stop
sudo service mysql restart
sudo service mysql status
2. 数据库操作
-
查看所有数据库
show databases;
-
创建数据库
create database 数据库名 charset=utf8;
-
使用数据库
use 数据库名;
-
查看当前使用的数据库
select database();
-
删除数据库-慎重
drop database 数据库名;
3. 表结构操作
-
查看当前数据库中所有表
show tables;
-
创建表
create table 表名( 字段名称 数据类型 可选的约束条件, column1 datatype contrai, ... );
-
修改表-添加字段
alter table 表名 add 列名 类型 约束; 例: alter table students add birthday datetime;
-
修改表-修改字段类型
alter table 表名 modify