前言:
课程:《三大主流数据库快速上手》(点击跳转官方课程,b站有资源,可自搜)
笔记(点击跳转豆丁网)
此处是个人学习笔记,用作回顾用途
目录:
一、MySQL 数据类型
二、操作数据库
三、操作表
定点数范围是根据精度确定的。
M为精度,D为标度(小数个数),eg:DECIMAL(3,2),输入10/3,结果为3.33
☞DATE:YYYY-MM-DD
☞TIME:CURRENT_DATE() NOW()
☞DATETIME:日期+时间
☞TIMESTAMP:最大时间–>2038-01-19 11:14:07
CHAR:255 固定char(5) ab VARCHAR:65535 可变
varchar(5)ab
TEXT
TINYTEXT、MEDIUMTEXT、TEXT、LONGTEXT
ENUM 单个值
SET 多个值
blob:比如存储图片,音频,视频等
存储地址,读取速度比较慢
mysql -h localhost -u root -p
-h:host(主机名)
-u:username(用户名)
-p:password(密码)
(1)查看现有的数据库
show databases;
(2)创建数据库
语法:create database 数据库名
create database test;
(3)删除数据库
语法:drop database 数据库名
drop database test;
(3)使用数据库
use 数据库名;
use test;
语法:
create table 表名(属性名 数据类型 [完整性约束],
属性名 数据类型 [完整性约束],
…
)
use test
create table exp0(id int,
name varchar(20),
sex boolean
);
语法:drop table 表名
drop table exp1;
(注意:
1.在删除表的时候要谨慎,以避免误删,导致数据丢失,所以在删除前最好做好备份工作
2.在删除表时,如果当前表存在外键,则先删除外键,再删除该表
3.在删除有关联外键表时,则先删除子表[存在外键的表],在删除主表)
主键:特殊的字段,能够唯一标识每条记录,不能重复
目的:为了让 MySQL 能以最快的速度查找到该记录创建:
(1)单字段主键:
语法:属性名 数据类型 primary key
create table exp1(stu_id int primary key,
stu_name varchar(20),
stu_sex boolean
);
(2)多字段主键
语法:primary key(属性 1 属性 n)
create table exp2(
stu_id int,
course_id int,
garde float,
primary key(stu_id,course_id)
);
语法:constraint 外键别名 foreign key(字段 1.1,字段 1.2) references 主表名(字段 2.1,字段 2.2)
注:字段 2–>主表的主键列
create table exp3(
id int primary key,
stu_id int,
course_id int,
constraint FK_STU_COURSE foreign key(stu_id,course_id) references exp2(stu_id,course_id)
);
(1)非空约束 not null 语法:属性名 类型 not null
(2)唯一约束 unique 语法:属性名 类型 unique
(3)自增长 auto_increment 语法:属性名 类型 auto_increment
(↑要求:类型必须是整型)
(↑注意:如果插入到最后一个标识为 7,删除掉后这个”7”后,后续则从 8 开始)
(4)默认值 default 语法:属性名 类型 default 默认值
create table exp4(
id int not null primary key auto_increment,
stu_id int unique,
name varchar(20) not null,
address varchar(255) default 'ahui'
)
(1)1、基本结构:
语法:describe 表名
可简写:desc 表名
describe exp1;
desc exp1;
(2)详细结构:
语法:show create table 表名
show create table exp1;
(1)删除
①删除字段
语法:alter table 表名 drop 属性名
alter table exp2 drop garde;
②删除主键
语法:alter table 表名 drop primary key
alter table exp1 drop primary key;
③删除外键
语法:alter table 表名 drop foreign key 外键名
alter table exp3 drop foreign key FK_STU_COURSE;
(2)增加
alter table 表名 add 新属性名 新属性类型 [完整性约束] [first | after 原有字段]
①新增无完整性约束的字段
alter table exp1 add telephone varchar(20);
②新增有完整性约束的字段
alter table exp1 add age int not null;
③将字段添加到第一位
alter table exp1 add num int primary key first;
④将字段添加到某个字段之后
alter table exp1 add address varchar(255) after telephone;
(3)修改
①修改表名
语法:
alter table 旧表名 rename [to] 新表名
查看当前数据库下所有的表
语法:show tables;
alter table exp1 rename to nexp1;
alter table nexp1 rename exp1;
②修改字段
语法:alter table 表名 change 旧属性名 新属性名 新属性类型
alter table exp1 change stu_name stu_name varchar(20);
alter table exp1 change stu_id id int(4);
③修改字段的排列顺序
alter table exp1 modify id varchar(20) first;
将字段修改到指定位置
语法:alter table 表名 modify 属性名 属性类型 [完整性约束] [after 原有字段]
alter table exp1 modify address varchar(255) after age;