一、Mysql简介
1.什么是数据库?
Mysql是一台用于管理众多数据库的服务器。
它的名字叫Mysql。主要用于,管理,分配,释放数据库的软件
2.什么是数据库?
就是一个文件夹,用于管理.frm结尾的文件。
这个.frm文件只能Mysql引擎解析。
而数据是储存在.frm文件中的
3.表文件
.frm结尾的文件,数据是存放在这个文件中的,
4.关键字目录
数据库基本目录 |
show databases; |
||||||||
数据库基本目录 |
|
||||||||
DDL |
|
||||||||
退出mysql错误: |
Ctrl--exit! |
||||||||
导入数据 |
source |
二、数据库基本执行命令
命令思维导图
任何命令都需要以分号结尾
show databases; |
查看当前数据库 |
create database 包名; |
创建数据库 |
use 数据库名; |
选择使用指定数据库 |
show tables; |
查看数据有哪些表 |
1、DDL:创建修改删除数据库和表的
针对数据库的操作
- 语法
create database 库名; |
create database sky; |
创建SKY数据库 |
#如果不存在则创建数据库,并且设置字符编码集; //if not exists:表示如果不存在;charset=utf8:设置字符编码
mysql> create database if not exists zheng charset=utf8;
show databases; |
查询数据库 |
drop database 数据库名; |
drop database if exists zheng; |
如果存在则删除数据库 |
针对表的操作
- 语法:
create table if not exits 表名(
列名1 数据结构 约束,
列名2 数据结构 约束,
…
)engine=InnoDB charset=utf8;
示例:
create table if not exists email( //创建一个表 如果不存在的话 叫email
codeKey varchar(50) primary key, #该字段为主键(不允许重复且不为空)。
username varchar(50) not null, #所属用户,不允许为空
content text, #文本类型
sendTime datetime #发送时间
)engine=InnoDB charset=utf8; #设置当前表使用的是什么引擎及编码。
codeKey:列名; varchar(50):数据类型 primary key:是否可为空
建立成功
针对数据的操作
比如:对数据的增,删,改做操作的
- 查询表结构desc 表名;
- 语法:
desc 表名; |
desc email |
desc(查询) |
- 增加一个列
- 语法
alter table 表名 add 列名 数据类型; |
alter table email add fu char(1); |
add(增) |
- 修改列的数据类型
alter table 表名 modify 列名 新数据类型。 |
alter table email modify fu varchar(1); |
modify(改数据类型) |
- 修改列的名称
alter table 表名 change 原列名 新列名 数据类型 |
alter table dys1 change fu ping varchar(1); |
change(列名称) |
- 删除一个列
alter table 表名 drop 列名 |
alter table dys1 drop ping; |
drop(删) |
2、DML 【对于数据的】
insert |
delete |
update |
增 |
删 |
改 |
-
insert:插入一条数据。
语法:
select * from 表名; //查询表信息
insert into 表名 value | values(值1,值2….); //全列插入
实例:
insert into email values(uuid(),'[email protected]','《关于...》',now());
选择性插入
-
update:改
语法
update 表名 set 列名1=值1,列名2=值2..where 过滤条件;
示例:
#通过update 将dys1(表)的 codeKey(列)='17119b72-c39a-11ec-a9e1-04d9f503c7e7',的username(账户)改为 '[email protected]'
update dys1 set username='[email protected]' where codeKey = 31007d24-c3cc-11ec-b54b-b025aa25374b;
4、delete:删
语法:
表名 where 过滤条件;
示例:
#将账户改为[email protected]的数据删除。
delete from email where username = "[email protected]";
三、数据类型:
1、数值类型
tinyint |
迷你型 |
一个字节 |
127 |
smallint |
小类型 |
两个字节 |
326767 |
mediumint |
中类型 |
三个字节 |
|
int |
标准类型 |
四个类型 |
|
bigint |
大类型 |
八个字节 |
举例建表
create table my_number(
n1 tinyint,
n1 smallint,
n3 mediumint,
n4 int,
bigint,
);
举例插入
2、小数型:
分类3大类:
float |
四个字节 |
单精度,精度不精确 |
double |
八个字节 |
双精度,精度大约在15个长度 |
decimal |
定点型 |
精度比较高.整数不会被四舍五入 |
语法
create table mu_decimail(
f1 float(10,2), //10:表示总长度最大10,小数点后最多2位,小数位长度不能超过前面的总长度
d1 double(10,2),
d2 becimal(10,2)
);
3、字符串类型:
在mysql中‘ ’和 “ ”都表示字符串。
字符串被分为6大类:
cher(20) |
定长类型。 |
在创建表格的时候磁盘会分配20个长度的空间,不管数据长度是多少 始终使用的都是20个字符长度。 (举例:如身份证号,手机号…) |
varcher(20) |
变长类型 |
在创建表的时候,磁盘会分配20个长度的空间,根据数据长度来决定最终占用空间。 (如email 密码 订单号….) |
text |
文本类型 |
一般情况下大于255个长度都使用text |
blob |
二进制文本类型 |
将媒介以二进制形式存放。文本类型显示的是文本本身的数据 |
enum |
枚举类型 |
事先将数据提前定义,在插入的数据中,不能超出枚举定义的数据。 |
set |
集合 |
与enum |
举例:创建字符类型表;//s1:表示每一列的类型
举例:输入表里每个变量(1列)的数据
insert into my_string valies('aba','adadada',advd','adadadw','这个','aaf',);
4、日期类型
分为5大类:日期以字符串类型输入
datetime |
公元日期 |
date |
日期 |
time |
时间 |
year |
年份 |
timestamp |
格林威治:1970-01-01 08:00:00(之后才可输入) |
now();时间函数:表示当前时间
举例
详细的针对数据的增删改查语句可以看我下一篇