~ Oracle / MySQL / DB2 / SQLServer / PostgreSQL / MariaDB
~ MySQL
- reliable / mature / open-source
- 中小型网站开发的黄金组合 - LAMP = Linux + Apache + MySQL + PHP
Structured Query Language - 结构化查询语言
中小型网站开发的黄金组合
LAMP = Linux + Apache + MySQL + PHP
显示所有数据库:show databases;
显示数据库下所有表:show tables;
显示所有的字符集:show charset;
~ 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;
-- 创建二维表(comment表示注释)
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 data types; / ? data types;
~ 整数
- 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
~ 小数
- float / double ---> 不推荐使用
- decimal ---> decimal(10, 2)
~ 字符串 ---> 底层都是边长编码
- char
- varchar ---> varchar(20) ---> 65535 / 16383
- longtext / longblob ---> 4G ---> 不推荐使用 ---> 用字符串保存文件路径即可
~ 日期时间
- date
- time
- datetime
- timestamp ---> 不推荐使用 ---> 底层是一个整数 ---> 2038年1月19日3时14分07秒
~ JSON
- json数组
- json对象
~ Visual Studio Code
~ Sublime
~ Atom
~ Textmate
~ Notepad++
~ Editplus