MariaDB增删改

1.MariaDB 数据类型

MariaDB数据类型可以分为数字,日期和时间以及字符串值。

使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的

常用的数据类型:

1.整数:int, bit(位,0和1 )

数值类型(常用)

2.小数:decimal #decimal(5,2) 五位数,保留两位小数

3.字符串:varchar, char

字符串

4.日期时间: date, time, datetime

日期时间类型

5.枚举类型(enum) :只能在制定好的选项中选择,enum('男','女','人妖','保密')再给该选项赋值的时候可以用1代表男,2代表女,3代表人妖,4代表保密,5以后就不可以了。

约束:

1.主键primary key:物理上存储的顺序;唯一性,不为空,关联外键,索引功能

2.非空not null:此字段不能为空,如果字段为空,整条数据都作废

3.唯一unique:此字段不允许重复

4.默认default:当不填写此值时会使用默认值,如果填写则已填写为准

5.外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常。在范围小的表中设置外键。

6.auto_increment :自动增加

2. sql语句-增

显示当前时间:select now();

create table classes (id tinyint unsigned primary key,name varchar(10) ); #创建一个classes的表,里面有id和name字序。

desc classes; #查看classes表都有哪些字序

clip_image001

Field:定义

Type:类型

Null:是否为空字段

Key:是否有主键(PRI表示有主键)

Default:是否有默认值(null表示没有)

Extra:扩展

--创建student表 #--表示注释的意思

auto_increment #自动增加

clip_image002

MariaDB [testdb]> desc students;

clip_image003

show create table students; #查看表的创建

clip_image004

MyISAM与InnoDB区别:两种类型最主要的区别就是InnDB支持事务处理与外键和行级锁

添加字段:alter table 表名 add 列名 类型;

alter table students add birthday datetime; #在students表中添加birthday 类型为datetime

修改表-修改字段:不重命名版

alter table 表名 modify 列名 类型及约束;

alter table students modify birthday date; #在students表中将birthday的数据类型修改为date

修改表-修改字段:重命名版

alter table 表名 change 原名 新名 类型及约束;

alter table students change birthday birth datetime; #在students表中将birthday修改为birth,数据类型修改为datetime

修改表-删除字段

alter table 表名 drop 列名;

alter table students drop birth; #在students表中将birth数据删除

drop table 表名; #删除表

全列插入数据

insert into 表名 values(..)

主键字段 可以用0 null default 来站位:

在primary key并且 设置auto_incremen的数列中,不输入数据和输入0 null default 代表默认,也就是也就是说会递增

输出的值与show create table students;中的AUTO_INCREMENT=5相等,即输出5.

clip_image006

insert into students values (1,'孙','100','男',1,'250.23654'); #插入一行数据

select *from students; #查看students表中的所有数据,此操作工作中不使用,因为数据太多

clip_image007

insert into students values (0,'孙','100','男',1,'250.23654'); #id为0,则输出的id会递增,由AUTO_INCREMENT这个数值据据决定。

show create table students;

clip_image008

插入部分数据

部分插入一条数据

insert into students (name,age) values ('张三',88); #在students表中添加制定name,age的一条数据

部分插入(多条记录)

insert into students (name,age) values ('张三',88),('李四',70);

3. sql语句-删

物理删除

delete from 表名 where 条件

delete from students where cls_id=88; # 删除students表中cls_id=88的数据

删除所有数据:delete from students; #删除students表中的所有数据(一般不进行此操作)

show create table students;

clip_image008[1]

delete from students; #清空数据后,AUTO_INCREMENT=5 这个数据不会清空减少。在事务中可以rollback。

truncate table students; #清空students表中所有的数据,包括AUTO_INCREMENT的数据。在事务中不可以rollback。

逻辑删除

用一条字段来表示 这条信息是否已经不能在使用了

给students表添加一个is_delete字段 bit 类型

alter table students add is_delete bit default 0;

clip_image009

4. sql语句-改

update 表名 set 列1=值1, 列2=值2... where 条件;

update students set age=100 where id=1;

update students set age=100,cls_id=77 where id=1;

原文地址:https://www.cnblogs.com/liangzb310/p/11026498.html