Day 31
MySQL的安装与配置
安装包下载地址:https://dev.mysql.com/downloads/mysql/
一、 为什么要使用数据库
1.数据持久化 - 将数据从内存转移到硬盘(长久保存数据的存储介质)
2. 数据库(database) - 存储数据,管理数据
二、 数据库的类型
1.关系(型)数据库
2.非关系型数据库 —> NoSQL数据库 —> No SQL —> No, SQL —> Not Only SQL
三、关系数据库的特点
1.理论基础:关系模型 - 关系代数 - 关系运算 - 谓词逻辑
2.具体表象:用二维表组织数据
- 行(row) - 记录(record) - 元组(tuple)
- 列(column)- 字段(field)- 属性(attribute)
- 主键(primary key)
- 外键(foreign key)
- 编程语言:SQL - Structured Query Language - 结构化查询语言
3. 关系数据库产品
-
Oracle / MySQL / DB2 / SQLServer / PostgreSQL / MariaDB -
MySQL -
reliable / mature / open-source -
中小型网站开发的黄金组合 - LAMP = Linux + Apache + MySQL + PHP
四、MySQL命令行
首先需要调出命令行客户端工具,可在开在开始菜单栏下找到
- 苹果电脑可以在终端输入路径调用
1.命令
- 显示所有数据库:show databases;
- 显示数据库下所有表:show tables;
- 显示所有的字符集:show charset;
2.结构化查询语言(SQL)
-
DDL - Data Definition Language - 数据定义语言 - create / drop / alter -
Unicode —> utf-8 / utf-16 / utf-32 ‘a’ —> 1字节 ‘一’ —> 3字节 ‘’ —> emoji —> 4字节 utf8mb4 - 最大4字节的utf-8编码 - MySQL8默认 -
如果存在名为school的数据库就删除它 drop database if exists school; -
创建名为school的数据库并指定默认的字符集 create database school default charset utf8mb4; -
切换数据库 use school; -
创建二维表
create table tb_student
(
stu_id integer not null comment '学号',
stu_name varchar(20) not null comment '姓名',
stu_gender boolean not null default 1 comment '性别',
stu_birth date default '2000-1-1' 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 ‘’ comment ‘家庭住址’; alter table tb_student add column stu_tel varchar(20) not null comment ‘联系电话’; -
修改表删除列 alter table tb_student drop column stu_tel; -
修改表修改列 alter table tb_student modify column stu_gender char(1) default ‘男’ comment ‘性别’; alter table tb_student change column stu_gender stu_sex char(1) not null default ‘M’ comment ‘性别’;
五、数据类型
想查看某个命令如何使用可使用help 或者 ? 加对应命令即可 例如: ~ help data types; / ? data types;
1.整数
- bigint(64bit —> 8byte —> -2^63 ~ 2^63-1)—> bigint unsigned(0 ~ 2^64-1)
- integer / int (32bit —> 4byte —> -2^31 ~ 2^31-1)—> int unsigned(0 ~ 2^32-1)
- smallint(16bit —> 2byte —> -32768 ~ 32767)—> smallint unsigned
- tinyint (8bit —> 1byte —> -128 ~ 127) —> tinyint unsigned
2.小数
- float / double —> 不推荐使用
- decimal(数字总位数,小数点后位数) —> decimal(10, 2)
3.字符串 —> 底层都是边长编码
- char
- varchar —> varchar(20) —> 65535 / 16383
- longtext / longblob —> 4G —> 不推荐使用 —> 用字符串保存文件路径即可
4.日期时间
- date
- time
- datetime
- timestamp —> 不推荐使用 —> 底层是一个整数 —> 2038年1月19日3时14分07秒
|