数据库介绍

1、关系型数据库:经过数学论证,可以将现实生活中的各种关系,保存到数据库中,这种数据库称为关系型数据库。关系型数据库以的形式保存数据之间的关系。
2、非关系型数据库:主要为了解决特定的应用场景。如:高缓存,高并发等,以redis为例,redis是以键值对的形式保存数据。

数据库是通过(DBMS)创建和操作的容器。

数据库版本(Mysql为例)

版本4:InnoDB,增加事务的处理,并改进全文本搜索等的支持
版本4.1:对函数库、子查询、集成帮助等的重要增加
版本5:存储过程、触发器、游标、视图等。

1、数据库相关SQl

create database db1 character set gbk; // 创建数据库,并指定字符集
use db1; // 使用数据库
drop database db1; // 删除数据库

2、表相关SQl(执行表相关SQL时,一定要选中数据库)

表的引擎
1、innodb:支持数据库的高级操作,事务、外键等。
2、myisam:仅支持数据库的增删该查。

create table student( id int primary key auto increment, name varchar(10) ) engine = myisam charset = gbk; // 创建表,并指定引擎和字符集
desc 表名;// 显示表的字段信息
alter table 表名 add 字段名 字段类型 after 字段名;// 给表添加字段
alter table 表名 drop 字段名;// 删除表的一个字段
alter table 表名 change 原字段名 新字段名 字段类型;//修改字段名和类型
表相关的SQL语句对表结构进行修改,可以利用数据库的可视化软件,navicat,workbeanch等。

数据相关SQl

插入数据:1、insert into 表名 values(); 全表插入数据                   2、insert into 表名(字段1,字段2…) values(值1、值2…),表部分字段插入数据 查询数据:select * from student;
修改数据:update student set name = ‘张三’ where id = 1;
删除数据:delete from 表名 where id = 4;

在创建表的时候,可以用comment关键字对字段进行说明,方便可视化软件的查看,例如:workbeanch

事务

事务:是数据库中执行sql语句的最小单位,在同一个事务中的sql语句,要么同时成功,要么同时失败
sql语句是默认自动提交的,关闭自动提交,就相当于开启了事务
show variables like ‘%autocommit%’,查看SQL自动提交的状态。
set autocommit = 0;// 开启事务,即关闭自动提交。
commit;//手动提交

1、执行rollback,会回滚到上次提交的点,或关闭自动提交时的点。
2、savepoint s1;保存回滚点
3、rollback to s1;回滚到s1

SQl分类

1、DDL (Data Defination Language) 数据定义语言
2、DML(Data Manipulation Language) 数据操纵语言
3、DQL(Data Query Language) 数据查询语言
4、TCL(Transation Control Language) 事务控制语言

表字段的数据类型

1、整型:

  • int(m) : m代表长度,如果数值长度不到m,数值前补0,但要和zerofill结合使用。
  • 例:create t_int( num int(10) zerofill )
  • bigint(m)

2、浮点型:

  • double(m, d)Ⓜ️代表总长度,d:表小数长度。
  • decimal(m, d):超高精度小数,需要涉及高级精度运算时使用。

3、字符串

  • char(m):长度不可变,执行效率高,最大值255。
  • varchar(m):长度可变,节省资源。
  • text:可变长度,最大65536。

4、日期类型

  • date:只保存日期
  • time:只保存,时分秒
  • datatime:年月日,时分秒 ,9999-12-3,默认值 null
  • timestamp:年月日,时分秒,2038-01-19,默认值当前时间

表字段的约束

  • 非空约束:插入数据库的字段不能为空。
  • 主键约束:唯一并且非空。

limit分页查询

  • 降序排列的数据,limit 0,1;取最大值。
  • 升序排列的数据,limit 0,1;取最小值。