1.数据库
Database,简称DB,按照一定的数据结构来组织,存储和管理数据的仓库
DBA(数据库管理员)
SQL(structured Query Language)结构化查询语言(操作关系型数据库)
2.关系型数据库
由多张相互连接的二维表组成的数据库
优点:
使用表存储数据,格式统一,便于维护;
使用SQL语句操作,标准统一,使用方便;
数据存储在磁盘中,安全
关系型数据库代表有:Mysql,Oracle
3.Mysql
特点:开源,简单易用,高性能,可靠性
mysql默认端口号3306
连接数据库步骤
- 打开navicate
- 点击连接
- 选择Mysql
- 填写数据库连接信息
- 确认连接(连接前也可以测试连接)
连接之后就可以创建数据库
- 选择数据库
- 右键选择新建数据库
- 填写数据库名,字符集,排序规则
在创建完成后数据库名不可以修改,排序规则可以不选择默认为utf8mb4_0900_ai_ci
字符集一般使用utf8mb4兼容性好或者使用utf8
排序规则一般使用:utf8mb4_0900_ai_ci
原因:ai口音不敏感,ci大小写不敏感
Mysql中的数据类型
数字与字符串
类型 | 大小 | 描述 |
---|---|---|
tinyint | 1 byte | 小整数值(对应java中的double;1 代表 TRUE,0 代表 FALSE) |
int或integer | 4 bytes | 整数值 |
float | 4 bytes | 单精度浮点数值 |
decimal | 对应java中的BigDecimal计算钱 | |
char | 0-255 bytes | 定长字符串 |
varchar | 0-65535 bytes | 变长字符串 |
text | 0-65535 bytes | 长文本数据 |
日期类型
类型 | 格式 | 描述 |
---|---|---|
date | YYYY-MM-DD | 日期值 |
time | HH:MM:SS | 时间值或持续时间 |
year | YYYY | 年份值 |
datetime | YYYY-MM-DD HH:MM:SS | 混合日期和时间值(常用可以选择的时间从1000到9999都包含了) |
timestamp | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳(跨时区的业务会更为适合) |
char与varchar的区别:
- char不论实际存储多少的字符,都会占用设置的n个字符空间
- varchar存储的长度并不固定,实际使用多少就占用多少
SQL通用语句
#给指定字段添加数据
insert into 表名 (字段) values (值);
#给全部字段添加数据
insert into 表名 values (值(与表中的字段相匹配));
#批量添加数据
insert into 表名 (字段) values (值1),(值2),(值3);
insert into 表名 values (值1),(值2),(值3);
#修改数据
update 表名 set 字段=值(可以修改多个字段) where 条件;(可以没有where条件会修改表中所有的数据)
#删除数据
delete from 表名 where 条件;(可以没有where条件但是会删除表中所有的数据)
where后面可以跟运算符还有关键字
运算符:=、!=、<>、<、<=、>、>=
关键字:between…and、in(set)、is null、and、or、not
案例
#增
#单条增加
insert student (id,`name`,age,birth,money,sex) values (0,'张三',18,'2005-03-03 12:12:12',2000,0);
#多条增加
insert into student (id,`name`,age,birth,money,sex) value (0,'李四',20,'2003-06-25 18:25:33',1500,0),(0,'王五',23,'2000-01-25 15:30:33',5500,1);
insert into student value (0,'马六','2008-03-15 20:52:12',15,1,1200),(0,'秦七','2002-07-25 12:23:00',21,0,1000);
#改
#修改数据
update student set sex=1 where id=1;
#区间修改(between...and)
update student set money=1500 where age between 19 and 25;
#查
#查看个别的数字
select * from student where id in(2,5);
#查看年龄不为空的
select * from student where age is not null;
#多个条件查询
select * from student where age > 18 and sex = 1;
#满足一个条件查询
select * from student where age >18 or sex =0;
#删
delete from student where id = 3;