MySQL数据库基础
-
1.数据库 - 数据的仓库
- 数据持久化(长久保存数据)
- 管理数据(完整性、一致性、权限) 2.关系(型)数据库 —> 1970s
-
-
理论基础:关系代数 —> 关系运算 —> 集合运算 / 关系运算 / (一阶)谓词逻辑
- 交集、并集、差集、笛卡尔积、子集、超集、存在
- 投影、选择、别名、连接、(排)除、与、或、非
- all / any / exists
-
-
具体表象:用二维表(行和列)保存数据
- 行:记录 —> 元组(tuple)
- 列:字段 —> 属性(attribute)
-
-
编程语言:SQL(Structured Query Language) —> 结构化查询语言
- DDL:数据定义语言 —> create / drop / alter
- DML:数据操作语言 —> insert / delete / update
- DQL:数据查询语言 —> select
- DCL:数据控制语言 —> grant / revoke
3.关系型数据库产品
- Oracle —> Oracle
- Oracle —> MySQL —> MariaDB
- IBM —> DB2
- Microsoft —> SQLServer
- PostgreSQL / SQLite 嵌入式关系型数据库
数据库服务器操作系统 Linux / Unix
-
4.MySQL命令行工具
-
显示所有数据库:show databases;
-
创建数据库:create database `数据库名字` default charset utf8mb4;(数据库名字加反引号``可以将关键字作为数据库名字)
-
删除数据库:drop database if exists 数据库名字;
-
修改数据库:alter database 数据库名字 default character set utf8mb4;
-
切换数据库:use 数据库名字;
-
显示数据库:show tables;
-
创建二维表:
create table tb_student
(
stu_id int not null comment ‘学号’,
stu_name varchar(20) not null comment ‘姓名’,
stu_gender boolean not null default 1 comment ‘性别’,
stu_birth date comment ‘出生年月’,
primary key (stu_id)
-
) engine=innodb comment ‘学生表’;
-
删除二维表:drop table if exists tb_student;
-
修改二维表:
~ 添加列:
alter table tb_student add column stu_addr varchar(200) default ‘’;
~ 删除列:
alter table tb_student drop column stu_addr;
~ 修改列:
alter table tb_student modify column stu_gender char(1) default ‘男’;
-
alter table tb_student change column stu_gender stu_sex char(1) not null default ‘男’;
- 添加约束条件:
--唯一性约束
alter table tb_student add constraint uk_student_tel unique (stu_tel);
--检查约束
alter table tb_student add constraint ck_student_birth check (stu_birth>=‘1990-1-1’);
删除约束条件:
alter table tb_student drop constraint uk_student_tel;
5.MySQL的数据类型
~ 查看数据类型帮助:? data types;
~ 整数:int / integer (一个符号位,31位数字)—> bifint / smallint(x) / tinyint(x) —> unsigned
int -->-2**31 ~ 2**31-1
int unsigned -->0~ 2**32-1(无符号位)
bigint -->-2**63 ~ 2**63-1
bigint unsingend -->0 ~ 2**64
~ 小数:float(x) / double(x) —> decimal(推荐使用)(6,2)
~ 日期和时间:date / time / datetime —>timestamp(x)
~ 字符串:varchar / char(x)
~ 二进制数据(x):blob --> binary large object–>longblob
~ JSON(新加的,尽力掌握):json
6.图形化(GUI)的客户端工具
~ MySQL Workbench
~ Navicat
~ SQLyog -->CE/EE