数据库:数据库是一个存放数据的仓库,这个仓库按照一定的数据结构来组织,存储,我们可以通过数据提供的多种方法来管理数据库里的数据
数据库的分类:关系型数据库和非关系型数据库
关系型数据库:MariaDB,SQL Server,MySQL,ORACLE,SALite,PostgreSQL,ORACLE
非关系型数据库:Redis,MongoDB,Cassandra,Neo4j,CouchDB,HBASE
MySql数据库优点:Mysql是开源代码的数据库
Mysql是跨平台性
开源免费
功能强大
缺点:读写性能比较差,尤其是海量数据的高效率读写
固定的表结构,灵活度稍欠
高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈
MySql数据库工作原理:
第一步,应用程序把查询SQL语句发给服务器端执行,
第二步,服务器解析请求的SQL语句
第三步,语句执行
SQL语言分为四大类:
数据库定义语言DDL,数据库操纵语音DML,数据库查询语言DQL,数据库控制语言DCL。
数据库定义语言:create 创建,drop 删除表,truncate 清空表数据,表存在,alter 修改表名
DML数据库操纵语言:insert 增加,delete 删除,update 修改
DQL数据查询语言:SELECT 字段名,FROM 表或视图名,WHERe 查询条件
DCL数据控制语言:grant授予,revoke回收,commit提交,rollback回滚
常见的数据类型:
char:定长字符串(固定),0-255字节
varchar:定长字符串(可变),0-65535字节
text:长文本书库,0-65535字节
备注:总位数定义好,插入数据不能超出总位数,如果要超出,修改总位数的值
数值类型:
int:整数(123,222,88)
bigint:极大整数(456678902345)
Double:浮点数,小数
日期时间类型:
Date:年,月,日
time:时,分,秒
Datetime:混合日期和时间值 YYYY-MM-DD HH-MM-SS 如:2022-07-02 10:16:28
TimesTamp:混合日期和时间值,时间戳
datetime与Timestamp的区别:
Datetime的范围是1000-9999年
Timestamp的范围是1970-2038年
约束类型:
主键约束:primary key:主键约束相当于,唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值,数据库的设计规范要求每张表都需要创建一个主键,一般第一列的值为主键,不为空一定要赋值,并且是唯一的
唯一约束:unique:要求这一列的值唯一,但是可以允许为空
非空约束not null:该值不能为null,一定要赋值。如果不向字段添加值,就无法插入新记录或者更新记录
默认约束:default:当插入记录是,如果没有明确为字段赋值,则自动赋予默认值
外键约束:foreign key:从表中某一列的数据必须在主表中存在,外键约束主要用于2张表的关联,分为主表和从表。
二,语法:创建表:create table 表名(名字 类型(长度) 是否为空);
如创建学生表:create table student( id int(20) not null);
解释:括号分别代表id(学生编号),int是整数,设置长度为20,not null设定不能为空。
查询表:Select * from 表名;
条件查询:select * from student where name='周杰伦';
从student表中查询姓名为周杰伦的数据
select * from student where age=18;
从student表中查询年龄等于18的数据
select * from student where age = 18 or name='小红'
从student表中查询年龄等于18或者姓名等于小红的数据
删除表:drop table 表名;
修改表名:alter table 旧表名 rename to 新表名;
条件删除:delete from student where age=30;
从student表中删除年龄为30岁的数据
delete from student where age=22 or name='周杰伦'
从学生表中删除年龄22或者姓名为周杰伦的数据
往表内插入值:
insert into 表名 values(值,值1,值2.....);
insert into stu(字段,字段1,字段2......)values(值,值1,值2......);
增加字段:alter table 表名 add(字段名 类型(长度) 是否为空);
如:alter table stutend add(id int(20) not null)
delete,drop,truncate的区别
delete:删除整张表和数据,如果删除部分数据需要带where字句。
truncate:将表中的数据全部删除,不支持带where条件删除,删除内容不删除表结构
drop:删除表结构,以及被依赖的约束与触发器,索引等
总结:当你不再需要该表时,建议使用drop,当你想清空表数据时使用truncate,当你想删除表中的部分内容时,使用delete。
修改表值:update 表名 set 列名1=值,列名2=值
如:update student set age=22,name='周杰伦';
将student表年龄设置22,姓名设置为周杰伦
条件修改:update 表名 set 列名=值 where 列名=值;
如:update student set name='林俊杰' where name ='周杰伦';
将表中姓名为周杰伦的人改为林俊杰
update student set name='马冬梅' ,sex='女' where name='夏洛',sex=‘男’;
将表中姓名为夏洛,性别是男的改为姓名为马冬梅,性别为女



