1:增加
INSERT INTO t_student (name, age) VALUES ('liwx', 18);
2:删除
DELETE FROM t_student WHERE name = 'liwx';
3:修改
UPDATE t_student SET age = 19 WHERE name = 'liwx';
4:查找
SELECT name, age FROM t_student where name = 'liwx';
5:统计查询
SELECT count(age) FROM t_student;
6:排序查询
SELECT * FROM t_student ORDER BY age ASC;
SELECT * FROM t_student ORDER BY age DESC;
SELECT * FROM t_student ORDER BY age ASC, score DESC;
7:limit分页查询
SELECT * FROM t_student LIMIT 4, 8;: 跳过最前面4条语句,然后取8条记录.
8:SELECT DISTINCT 语句 去重复
SELECT DISTINCT Company FROM Orders
9:AND和OR
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
10:模糊搜索
SELECT * FROM Persons WHERE City LIKE '%g'
11:在
 

数据库操作操作(增删改查)


插入数据(insert)

  • 1.插入数据格式

    • 注意: 数据库中的字符串内容应该用单引号 ’ 括住;

格式: insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;

  • 2.插入数据示例

插入数据示例: INSERT INTO t_student (name, age) VALUES ('liwx', 18);


更新数据(update)

  • 1.更新数据格式

格式: update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值 where 条件;

  • 2.更新数据示例

    • 注意: WHERE 条件是 =号,不是==号.

更新数据示例: UPDATE t_student SET age = 19 WHERE name = 'liwx';


删除数据(delete)

  • 1.删除数据格式

格式: delete from 表名 where 条件;

  • 2.更新数据示例

更新数据示例: DELETE FROM t_student WHERE name = 'liwx';


DQL数据库查询语句(查询)

  • 1.查询数据格式

格式1: select * from 表名;*:通配符,表示所有字段.
格式2: select 字段1, 字段2, … from 表名;
格式3: select 字段1, 字段2, … from 表名 where 条件;

  • 2.查询数据示例

更新数据示例1: SELECT * FROM t_student;
更新数据示例2: SELECT name, age FROM t_student;
更新数据示例3: SELECT name, age FROM t_student where name = 'liwx';


4.查询相关语句

统计查询

  • 1.count(X)计算记录个数

计算所有记录个数: SELECT count(*) FROM t_student;

计算age有值的记录个数(Null不计算在内): SELECT count(age) FROM t_student;

  • 2.avg(X)计算某个字段的平均值
  • 3.sum(X)计算某个字段的总和
  • 4.max(X)计算某个字段的最大值
  • 5.min(X)计算某个字段的最小值

排序查询

  • 1.升序ASC

格式: SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 ASC;

示例: SELECT * FROM t_student ORDER BY age ASC;

  • 2.降序

格式: SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 DESC;

示例: SELECT * FROM t_student ORDER BY age DESC;

  • 3.多个字段排序

格式: SELECT * FROM 表名 ORDER BY 字段名1 排序类型, 字段名2 排序类型;

示例: SELECT * FROM t_student ORDER BY age ASC, score DESC;


limit分页查询

  • 1.limit分页查询

格式: select * from 表名 limit 数值1, 数值2 ;

示例: SELECT * FROM t_student LIMIT 4, 8;: 跳过最前面4条语句,然后取8条记录.

  • 2.查询第n页的数据

    • 假设一页显示5条数据.

示例: SELECT * FROM t_student LIMIT 5*(n-1), 5;

  • 3.特殊案例

示例: select * from t_student limit 7;
相当于: select * from t_student limit 0, 7;

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 

select id from t where num is null

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

select id from t where num=0

3.应尽量避免在 where 子句中使用!=<>操作符,否则将引擎放弃使用索引而进行全表扫描。

4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: 

select id from t where num=10 or num=20

可以这样查询:

select id from t where num=10

union all

select id from t where num=20

5.in not in 也要慎用,否则会导致全表扫描,如: 

select id from t where num in(1,2,3)

对于连续的数值,能用 between 就不要用 in 了:

select id from t where num between 1 and 3

很多时候用 exists 代替 in 是一个好的选择:

select num from a where num in(select num from b)

用下面的语句替换:

select num from a where exists(select 1 from b where num=a.num)

6.下面的模糊查询也将导致全表扫描: 

select id from t where name like ‘%abc%’

select id from t where name like ‘%abc’

但是下面的这种模糊查询依然可以使用索引

select id from t where name like ‘abc%’

7.应尽量避免在 where 子句中对字段的“=”左边进行函数、算术运算或其他表达式运算,这将导致引擎放弃使用索引而进行全表扫描。 

如:

select id from t where num/2=100

应改为:

select id from t where num=100*2

又如查找name以abc开头的id:

select id from t where substring(name,1,3)=’abc’

应改为:

select id from t where name like ‘abc%’

8.不要使用 select * from table ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

40 (OC)* 数据库常见sql语句的更多相关文章

  1. SQL Server 【附】创建"商品管理数据库"、"学生选课数据库"的SQL语句

    附:(创建“商品管理数据库”的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据库_m', file ...

  2. Access、SQLServer、Oracle常见SQL语句应用区别

    Access.SQLServer.Oracle常见SQL语句应用区别 关劲松 PMP 如果要兼容Access.SQL Server.Oracle三个数据库版本:我们在编写SQL语句的过程中,尽量使用一 ...

  3. mysql(数据库,sql语句,普通查询)

    第1章 数据库 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. l 什 ...

  4. 《大话数据库》-SQL语句执行时,底层究竟做了什么小动作?

    <大话数据库>-SQL语句执行时,底层究竟做了什么小动作? 前言 大家好,我是Taoye,试图用玩世不恭过的态度对待生活的Coder. 现如今我们已然进入了大数据时代,无论是业内还是业外的 ...

  5. 解决死锁之路3 - 常见 SQL 语句的加锁分析 (转)

    出处:https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html 这篇博客将对一些常见的 SQL 语句进行加锁 ...

  6. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

  7. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  8. GP数据库 常用SQL语句

    GP数据库 常用SQL语句 --1,查看列名以及类型 select upper(column_name) ,data_type from information_schema.columns wher ...

  9. Oracle数据库 基础SQL语句练习

    一.说明 第一次使用Oracle,想做一些练习,熟悉一些oracle. 表:使用的是scott用户,默认的表 具体表讲解,可以参考该文档:https://www.cnblogs.com/xjcheng ...

随机推荐

  1. 移动开发-UI设计

        UI:手机的用户界面 UI物理版:手机实际的屏幕像素 UI设计版:我们截屏的手机界面在ps中去量,发现的尺寸 UI放大版:手机的尺寸等比放大1.5倍得出的分辨率   响应式布局 原由:窗体缩小 ...

  2. Go-TCP粘包

    TCP黏包 黏包示例 服务端代码如下: // socket_stick/server/main.go func process(conn net.Conn) { defer conn.Close() ...

  3. Django Mysql数据库-F查询和Q查询

    一.F查询和Q查询 F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较.F() 的 ...

  4. MVC + EFCore 完整教程19-- 最简方法读取json配置:自定义configuration读取配置文件

    问题引出 ASP.NET Core 默认将 Web.config移除了,将配置文件统一放在了 xxx.json 格式的文件中. 有Web.config时,我们需要读到配置文件时,一般是这样的: var ...

  5. css布局之居中

    CSS布局之居中 本文主要是介绍水平居中,垂直居中,还有水平垂直居中的方法 水平居中 1.行内元素水平居中 使用text-align:center;就可以实现行内元素的水平居中,但是记得要在父元素中设 ...

  6. 小白系统篇-windows 系统安装

    现阶段装系统的方法基本有几种1.硬盘安装2.光驱安装3.PE(u盘即可)安装 现在比较主流方便的用pe安装,所以我们这边就说一下PE安装系统的方法 首先我们了解下系统镜像,也就是你装系统所需得到文件( ...

  7. js全选与取消全选

    实现全选与取消全选的效果 要求1(将军影响士兵):点击全选按钮,下面的复选框全部选中,取消全选按钮,下面的复选框全部取消 思路:复选框是否被选中,取决于check属性,将全选按钮的check属性值赋值 ...

  8. MySql基础架构以及SQL语句执行流程

    01. mysql基础架构 SQL语句是如何执行的 学习一下mysql的基础架构,从一条sql语句是如何执行的来学习. 一般我们写一条查询语句类似下面这样: select user,password ...

  9. Egret白鹭开发微信小游戏手机震动功能

    最近一直在修改调整项目,没有接触新功能,今天终于有机会,去翻了微信API,发现手机震动的API,今天分享出来大家一起学习学习 对于震动,微信提供了两个API,分别是: wx.vibrateShort: ...

  10. volatile、Synchronized实现变量可见性的原理,volatile使用注意事项

    变量不可见的两个原因 Java每个线程工作都有一个工作空间,需要的变量都是从主存中加载进来的.Java内存模型如下(JMM): 线程访问一个共享的变量时,都需要先从主存中加载一个副本到自己的工作内存中 ...