show database
什么是数据库
存储和管理数据的仓库,本质上就是一个软件。
存储和管理:对数据的增,删,改,查。
数据库分为
关系型数据库
非关系型数据库
关系型数据库
是以表的形式存储数据,表与表之间可以有很多复杂关系
MySQL,Oracle,SQL Server等
非关系型数据库
以数据集的方式存储数据,大量的数据集中存储在一起
MongoDB,Redis,Memcached等
什么是MySQL
关系型数据库
免费开源的,也是最受欢迎的数据库之一
SQL约束,主表从表
SQL约束
命令行连接MySQL
为什么找不到我的笔记了
约束
主键id并不为空,类型int,是正数
再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记
图片插入一个笔记
字符串类型
字符串专门用来保存字符串,而文本类型不会直接保存在表中,文本欸行保存了引用实际保存数据的地址。
浮点类型:
专门保存小数,会丢失精度;
不要用来保存不希望丢失精度的数据;
定点类型:
专门保存小数,不会丢失精度;
SQL 数据类型:数字、字符串、日期时间
为什么需要数据类型:告知数据库以多大空间存储数据,合理分配存储空间
常见的数据类型:
-数字类型:整数、浮点、定点
-字符串类型:字符、文本、枚举、集合
-日期时间:日期型,日期时间型,时间戳型
整数类型:专门保存整数,分有无符号,默认有符号,可以在数据类型后加unsigned表示无符号
---查询数据表(查)---
--查找当前使用的数据库--
select database();
--选择数据库
use demo;
--查看当前数据库中的所有表
show tables;
--查看表结构
desc student;
---创建数据表(增)---
create table student(
id int unsingned,
name varchar(20),
age tinyint unsigned,
gender enum(‘男’,‘女’,‘保密’),
createdAt timestamp
)
--不存在才创建(推荐使用)
create table if not exists student(
id int unsingned,
name varchar(20),
age tinyint unsigned,
gender enum(‘男’,‘女’,‘保密’),
createdAt timestamp
)
---删除数据表(删)---
--不存在会报错
drop table student;
--已存在才删除(推荐使用)
drop table if exists student;
---修改数据表(改)---
alter table student rename to stu;
alter table stu rename to student;
--添加字段
alter table student add updatedAt timestamp;
--删除字段
alter table student drop updatedAt
--修改字段的数据类型
alter table student modify createdAt datetime;
--修改字段的名称和数据类型
alter table student change createdAt createAt timestamp;
---显示所有的数据库---查--
show databases;
--查看当前使用的数据--
select database();
--使用想选定的数据库--
use demo;
---创建数据库---
create database demo;(如果数据库存在会报错)
create database if not exists dmeo;
(如果数据库不存在则创建,存在什么也不做;数据库存在不会报错,推荐使用)
---删数据库---
drop database demo;(如果数据库不存在会报错)
drop database if exists demo;
(如果数据库存在则删除,不存在什么也不做;数据库不存在不会报错,推荐使用)
---修改---
alter database demo character set utf8mb4 coaaate utf8mb4_0900_ai_ci;
-utf8mb4:字符集,兼容utf8,且比utf8能表示更多的字符;
-utf8mb4_0900_ai_ci:字符集对应的排序规则
约束类型:
主键约束:primary key 不能为空、不能重复、一张表只能有一个主键,但是可以同时将多个字段作为一个主键来用(联合主键),如primary key(id, name)
外键约束:foreign_key
唯一约束:unique,一般适用于身份证、电话号等场景
自动递增:auto_increment,一般配合主键使用
非空约束:not null
默认值:default
1291 (HY000): Column ‘gender‘ has duplicated value ‘?‘ in ENUM
需要将其对应的数据库字符集编码设置为utf8
数据类型:数字类型、字符串类型、日期类型
数字类型:
备注1:设置位宽,不足的不足,超出不管,默认填充的是空格。如tinyint(2),设置位宽是2,如果查询的是1,显示的就是' 1';
备注2:浮点类型会丢失精度,如银行的金额,不能使用浮点类型存储
备注3:定点类型专门用来保存小数,不会丢失精度
备注4:文本类型不会在表中占用实际的字节数,他会找一个地方进行保存,表中保存的是实际地址的引用,避免数据量过大时查询慢
什么是MySQL