1.常用数据类型

1)整数:int, bit

2)小数:decimal       #decimal(5,2)表示共有五位数,保留两位小数

3)字符串:varchar, char  

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

5)枚举类型(enum)

2.约束

1)主键primary key:物理上存储的顺序

2)非空not null:此字段不能为空

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

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

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

数值类型
类型 字节大小 有符号范围 无符号范围
TINYINT 1 -127~127 0~255
SMALLINT 2 -32768~32767 0~65535
MEDIUMINT 3 -8388608~8388607 0~16777215
INT/INTEGER 4 -2147483648~2147483647 0~4294967265
BIGINT 8 -9223372036854775808~-9223372036854775807 0~18446744073709551615
字符串
类型 字节大小 示例
CHAR 0-255 char(3)不管输入几个字节都会占3个字节
VARCHAR 0-255 varchar(3)输入比三小的字节会占用实际字节大小
TEXT 0-65535 大文本
日期时间类型
DATE 4 ‘2020-01-01’
TIME 3 ’12:05:34’
DATETIME 8 ‘2020-01-01  12:05:34’
YEAR 1 ‘2019’
TIMESTAMP 4 ‘1970-01-01  00:00:01’UTC~‘2038-01-01  00:00:01’UTC

3.sql语句alter

显示当前时间

select now();

创建classes表(id, name)

create table zzzz(

id int primary key not null auto_increment,

name varchar(20),

age int

);

查看表结构

desc zzzz

1)创建students表(id, name, age, high, gender, cls_id)

create table students (

id int unsigned not null auto_increment primary key,

name varchar(20),

age tinyint unsigned default 0,

high decimal(5,2),

gender enum('男', '女', '中性', '保密') default '保密',

cls_id int unsigned

);

创建classes表(id, name)

create table classes(

id int unsigned not null auto_increment primary key,

name varchar(20)

);

2)修改表属性

修改表-添加字段

alter table 表名 add 列名 类型;

alter table students add birthday datetime;

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

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

alter table students modify birthday date;

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

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

alter table students change birthday birth date;

3)修改表-删除字段

alter table 表名 drop 列名;

alter table students drop birthday;

4) 删除表

drop table 表名;

drop table students;

4.sql语句增加insert

1)全列插入

insert into 表名 values(..)    主键字段 可以用0 null default 来站位

向students表里插入 一个学生信息

insert into students values (0,'小明',19,188.999,'男', 1);

2)部分插入

insert into students(id, name, age) values (0,'绿帽子',19);

部分插入(多条记录)

insert into students(id, name, age) values (0,'绿帽子',19),(0,'小跳蚤',21);

5.sql语句修改update

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;

6.sql语句删除delete与truncate

1)物理删除

delete from 表名 where 条件

delete from students where cls_id=88;

2)逻辑删除

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

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

alter table students add is_delete bit default 0;

update students set is_delete=1 where id=6;

3)truncate

清空表,连同id字段自增重置为1,重新插入的数据id默认会从1开始,用truncate删除的数据无法恢复

truncate students

7.sql语句查看select

查询基本使用(条件,排序,聚合函数,分组,分页)

1)查询所有列

select * from 表名

select * from students;

一定条件查询(where)

select * from where id=5;

查询制定列

select id,name from students;

使用as给字段起别名

select id,name as '姓名', age, high, gender from students;

通过表名字段查询

select students.name from students;

给表起别名查询

select s.id,s.name,s.age from students as s;

消除重复行

distinct

select distinct age from students;

2)条件查询

查询年纪大于18岁的信息

select * from students where age > 18;

18岁到28岁之间(and)

select * from students where age >= 18 and age =< 28;    允许使用&&

select * from students where age between 18 and 28

在18岁以上或者身高180以上的人(or)

select * from students where age > 18 or high > 180;    允许使用||

3)模糊查询like

% 替代1个或者多个甚至是没有

查询姓名中有‘小’的所有名字

select * from students where name like '%小%';

查询两个字人的名字

select * from students where name like '__';    两个下划线

查询至少有2个字的名字

select * from students where name like '%__%';

4)范围查询

in (1,3,8)表示在一个非连续的范围内

查询年纪为18和34的人

select * from students where age in (18, 34);

查询 年龄在17岁到34岁之间的信息

select * from students where age between 17 and 34;

查询 年纪不在18到34岁的信息

select * from students where age not between 17 and 34;

5)空判断

判断is null

查询身高为空的人的信息

select * from students where high is null;

6)排序order by

asc从小到大排列,即升序

desc从大到小排序,即降序

order by支持多字段

查询年纪在18到34岁之间的男性,按照年纪从小到大

select * from students where gender=1 and age between 18 and 34 order by age;

查询年纪在18到34岁之间的女性,身高从高到矮

select * from students where gender=2 and age between 18 and 34 order by high desc;

查询年纪在18到34岁的男性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序,如果年龄也相等那么按照id从小到大排序;

select * from students where age between 18 and 34 and gender=1 order by high desc,age,id;

8.聚合函数

1)总数count

查询男性有多少人

select count(*) from students where gender=1;

2)最大值max

查询最大的年纪

select max(age) from students;

查询女性的最高身高

select max(high) from students where gender=2;

3)最小值 min

select min(high) from students;

4)求和sum

计算所有人的年龄总和

select sum(age) from students;

5)平均值avg

计算平均年纪 sum(age)/count(*)

select sum(age)/count(*) from students;

select avg(age),2 from students;

保留2位小数

select round(avg(age),2) from students;

6)分组group by

按照性别分组,查询所有的性别

select gender from students group by gender;

计算每组性别的人数

select gender, count(*) from students group by gender;

查询男性组中的姓名 group_concat

select gender,group_concat(name) from students where gender=1 group by gender;    group_concat()按照拼接后的字符串显示

7)having

查询每个性别平均年纪超过30岁的性别,以及姓名 having avg(age) > 30

select gender, group_concat(name) from students group by gender having avg(age) > 30;

查询每种性别中的人数多于4个的组的信息

select gender,group_concat(name) from students group by gender having count(*)>4;

8)分页limit

显示5页

select * from students limit 5;

分页显示,每页显示2条数据

select * from students limit 0, 2;

按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据

select * from students where gender=2 order by high desc limit 0,2;

转载于:https://www.cnblogs.com/Agnostida-Trilobita/p/11134115.html

mariadb数据库增删改查相关推荐

  1. 常用的Mybatis-Plus方法,让你的数据库增删改查(CRUD)一键实现

    常用的Mybatis-Plus方法,让你的数据库增删改查(CRUD)一键实现 以下方法全部亲测可用 //测试查找全部@Testpublic void testSelectAll(){List<U ...

  2. Mysql (一)Mysql 数据库增删改查

    mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname ch ...

  3. sql增删改查_快速搞定数据库增删改查|附思维导图

    数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. 下面是关 ...

  4. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

  5. php+mysql+into_PHP+Mysql 如何实现数据库增删改查

    PHP+Mysql实现数据库增删改查的方法:1.创建入口文件[index.html]连接数据库.查询数据:2.点击增加按钮,通过[addnews.html]添加数据:3.点击删除按钮,通过服务端文件[ ...

  6. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  7. flask对mysql数据库增删改查_Flask学习(三) - Flask-SQLAlchemy对数据库增删改查

    Flask-SQLAlchemy对数据库增删改查 安装 pip install flask-sqlalchemy 具体不多说了,主要是对数据库进行简单的增删改查,上代码,看注释 @app.route( ...

  8. mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...

  9. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

最新文章

  1. objdump与readelf
  2. 无法访问已释放的对象。 对象名:“System.ServiceModel.Channels.HttpChannelFactory+HttpRequestChannel”。...
  3. 洛谷 p3372 模板-线段树 1
  4. iphone iPhone开源项目汇总(更新版)
  5. SqlServer 根据一个表数据更新另外一个表
  6. NOIP竞赛学习整理--动态规划算法举例P1264
  7. python float字节数_float型的数在内存中的表示 附:python3解析函数 | 学步园
  8. Persistent Memory编程简介
  9. 信号转化java_Java基础知识回顾-7
  10. 使用实例工厂方法实例化_一些工厂实例
  11. 【Java例题】1.3给朋友的贺卡
  12. Web 2.0下一个版本是什么 3.0就要到来了吗?
  13. 应用电子计算机英文,应用电子技术英文介绍
  14. Xilinx FPGA的Device DNA获取方法
  15. Apple Watch Series 8功能介绍 watch series 8续航
  16. Spark 列转行操作
  17. bpm java_bpm完全解读
  18. 2021高考枣强中学成绩查询,枣强中学,衡水系的重点高中,成绩斐然
  19. System.Windows.Markup.XamlParseException:““无法从文本“pack://application:,,,/Resources/images/Picture.jpg
  20. 【深度学习】TensorFlow系统架构和设计理念

热门文章

  1. Idea打可执行jar包
  2. linux查看java版本_linux 查看java版本
  3. 【计蒜客 - 程序设计竞赛】商业信息共享(Tarjan缩点)
  4. ACM所有算法大全(持续更新)
  5. 重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》
  6. Apollo进阶课程⑳丨Apollo感知之旅——机器学习与感知的未来
  7. linux bin su,linux – su:/ bin / bash:资源暂时不可用
  8. linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)
  9. c语言程序位置式pid算法,增量式与位置式PID算法(C语言实现与电机控制项目)...
  10. 基于IO流读取的 完成 用户登录,注册,修改,查看所有用户,删除功能