知识回顾

DDL数据定义语言,数据库操作

创建数据库,数据表

查看数据库 show databases;

创建数据库 create database db_xx charset utf8;

修改数据库字符集 alter database db_xx charset utf8; Windows装的时候用gbk

查看数据库的创建信息 show create database db_xx;

切换使用数据库 use db_xx;

查看当前工作数据库 select database();

删除数据库 drop database db_xx;

DDL数据定义语言,数据表操作

数据表操作

查看当前数据库中有哪些数据表 show tables;

常见数据表 create table t_xx(id int(显示宽度) primary key auto_increment,name char(储存的字符数) unique,address varchar(50) default '北京',gender enum(‘男’,‘女’) not null, cid int,foreign key(cid) references t_xxx(id));

ID 用unsigned修饰一下,无符号,就是全是正的

zerofill 零填充的意思(长度不够的都补上0,而且指定了zerofill的话,该字段自动被认为是unsigned的)

varchar 变长字符串

外键要关联的字段类型必须一致 int(5),那么都是int(5)

查看数据表的创建信息 show create table t_xx;

show create table t_xx \G

查看表结构 desc t_xx;

改-增字段 alter table t_xx add new_f_xx ty_xx;

改-修改字段类型 alter table t_xx modify f_xx new_ty_xx;

改-修改字段名 (同时可以修改字段类型) alter table t_xx change old_f_xx new_f_xx new_ty_xx;

改-删除字段 alter table t_xx drop f_xx;

删除数据表 drop table t_xx;

DML数据操作语言

主要完成 对数据的CUD

先使用数据库

先去借助一个查询语句,用来验证结果select * from t_xx;

插入数据

为所有字段插入单条数据 insert into t_xx value(v1,v2,v3,.....);

value 和values的区别是插入单条或多条时效率不同,单条前面效率高

为指定字段插入数据,要注意值得顺序和类型要和给定字段匹配

insert into t_xx(f_xx,f_xx,...) values(v_1,v-2,...);

插入多条数据 insert into t_xx(f_xx,f_xx,...) values(v_1,v-2,...),(v_1,v-2,...),....;

insert into t_xx values(v_1,v-2,...),(v_1,v-2,...),....;

修改更新数据 update t_xx set f_xx = v_xx; 对整表操作

update t_xx set f_xx = v_xx where f_xx = v=xx; 满足条件的记录进行修改

删除数据

删除整表,不经过事务,会重置auto_increment 编号

truncate t_xx;

不会重置编号,可以放到事务操作中的删除指令

delete from t_xx; 默认整表操作

delete from t_xx where f_xx = v_xx; 删除满足条件的数据

DQL数据查询语言

只实现查询操作select

查询所有数据select * from t_xx;

查询指定字段的数据 select f_xx,f_xx,..... from t_xx; 先去获取数据,再查询

给字段起别名 select f_xx as a_xx, f_xx a_xx,...... from t_xx as t_a_xx;

表也可以起别名

as可以写可以不写

数据的去重 select distinct f_xx from t_xx; 单字段去重;

select distinct f_xx,f_xx,..... from t_xx; 多字段去重,只有所有指定的字段值都相同,才认为是重复数据

条件查询 select * from t_xx where f_xx 条件运算符 v_xx;

关系运算符 > , < ,>= ,<= , = , != ,<>

逻辑运算符 and,or ,not

模糊查询 like, % 任意多个字符 ,_任意单个字符

范围查询 非连续值 in(v1,v2,....), 连续值between .. and ...

判断空 不能使用等于个不等于

只能使用 is null 和 is not null

not f_xx is null 效率要慢一点,两个运算符进行计算

排序 select * from t_xx order by f_xx asc; 单字段排序,默认是asc,可以不写

select * from t_xx order by f_xx desc; 降序

select * from t_xx roder by f_xx asc | desc, f_xx ase |desc,......; |代表或者

先以第一个主排序字段进行排序,如果有相同使用下一个

分页 limit

select * from t_xx limit 起始索引,显示条数;

默认起始索引从0开始,可以不写

第n页的其实索引计算公式 (n-1) * count

聚合函数 sum() avg() min() max() count() group_concat()

count()可以写*强制统计空值,其他除了grope_concat()都统计的非空值

一般情况下,聚合函数要和分组配合使用

分组 group by

select f_xx,f_xx from t_xx group by f_xx,f_xx; 分组时使用了那个字段进行分组,那么就只能查询哪个字段

分组可以实现去重的作用,但是比distinct更加强大

select 后除了分组字段外,只能写聚合函数

分组筛选条件

select f_xx from t_xx group by f_xx having f_xx =v_xx;

where 和 having的区别

where一般先于分组执行,而having是后与分组执行,就是对分组后的数据进行筛选。

本文分享自微信公众号 - 全栈技术精选(Pythonnote),作者:小闫同学啊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 扒源码 - 一个请求在flask中经历了什么

    客户端发起一个请求,Flask 都干了什么呢?url 如何与视图进行绑定的?更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

    小闫同学啊
  • Django&DRF重点内容大盘点

    本文只是将学习过程中需要深刻记忆,在工作中常用的一些命令或者知识点进行一个罗列并阐释,不会全面的将所有内容进行讲解。大家可以在了解了Django框架和DRF框架...

    小闫同学啊
  • 小闫陪你入门 Java (二)

    意气风发啊骑上我快乐的小摩托良心公众号啊!我上墙了你开始了嚯嚯嚯嚯嚯哈哈哈哈哈皮皮虾我们走可乐在厨房 红牛在冰箱6666666

    小闫同学啊
  • 为 Android Studio 或者 Android 项目设置代理

    本文记录给 Android Studio 设置代理,并添加白名单。适用于 Jenkins 等 CI/CD 环境。有修改配置文件和命令行2种方式。

    他叫自己MR.张
  • javascript ES6 初次相见

    JS的ES6网上也热炒了好久了, 我一直也没怎么太细看, 今天想起来就写个东西, 也为分享,也为学习。 我喜欢接地气一点,所以网上的那些新名词我就不写了, 就写...

    web前端教室
  • 自媒体运营技巧:如何成功申请今日头条号?

    王小婷
  • xshell工具在开发中的使用技巧

    这个没啥好说的,但是很实用,特别对于单显示器的情况。5.0或以上才支持,鼠标拖拽标签到屏幕某一个位置即可实现。

    后端云
  • Codeforces Round #547 (Div. 3) A. Game 23(思维)

    版权声明:欢迎转载,若转载,请标明出处,如有错误,请指点,也欢迎大佬们给出优化方法 http...

    Ch_Zaqdt
  • 让android支持https访问银联后台,测试成功

    java很强大,在java上调用http接口以及解析json之类的应该很容易,有很多现成的接口和第三方库如httpclinet,okhttp,volley,re...

    特立独行的猫a
  • 记一次"诡异"的git merge错误

    今天照常开发,在日常部署测试的时候进行git merge 竟然出现了"代码丢失"的情况,相当诡异,特此记录。

    LNAmp

扫码关注云+社区

领取腾讯云代金券