zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    requests模块使用
    如何在vue中调用百度地图
    VS Code 改变默认文字编码 为utf-8
    清理电脑C盘的方法
    安装最新版本的angular-cli的命令行代码
    微信小程序发布后查看实时日志
    微信小程序 POST传值跳坑
    App唤起微信小程序和回调
    微信小程序判断进入小程序的入口(场景值)
    微信小程序参数传递获取当前页面的url和参数
  • 原文地址:https://www.cnblogs.com/liangzb310/p/11026498.html
Copyright © 2011-2022 走看看