首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述。

添加新数据:

INSERT INTO <表名> (<列名列表>) VALUES (<值列表>) 

如:

INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES (1,'大毛',18,'男');

其中列名可以省略,省略之后要求插入的值必须与列一一对应:

INSERT INTO t_student VALUES (2,'王二',20,'男');

多行数据添加:

INSERT INTO t_student VALUES (3,'张三',22,'男'),
(4,'李四',17,'女'),
(5,'王五',23,'男');

更改数据:

UPDATE 表名 SET 列1=新值1,列2=新值2 WHERE 过滤条件

假如要修改李四的年龄为21岁

UPDATE t_student SET student_age=21 WHERE student_name='李四';

注:修改多个列的值时用逗号隔开。要想设置某一列的值为空,只需让<列名>=NULL 即可。WHERE表示过滤条件。

删除数据(行):

DELETE FROM 表名 WHERE 过滤条件

现要删除20到22岁的学生信息:

DELETE FROM t_student WHERE student_age BETWEEN 20 AND 22;

WHERE的判断条件之后会更详细的介绍。

删除除了DELETE还有一种方法TRUNCATE,写法:

TRUNCATE TABLE 表名

二者区别在于:

DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。需要注意的是,TRUNCATE不能用于有外键约束引用的表。

查询操作

分类:

–投影操作
  指定查询结果中能显示哪些列
–选择操作
  指定哪些行出现在结果中
–排序操作
  指定查询的结果以什么样的顺序显示
 
投影操作:
SELECT 列1,列2 FROM 表名

多个列中间用逗号隔开,如果选择所有列可以用*号简写。

还是此表:

现在只想要查看姓名和年龄列:

SELECT student_name,student_age FROM t_student;

注意这里不是把其他列删除了,而是只显示我们想看见的部分。

SELECT CONCAT(student_name,'——',student_age) '组合值' FROM t_student;

CONCAT,可以将列与列之间用想要的符号连接起来:

排除重复——DISTINCT

现给原表加入一班级列:

按照之前方法查询班级列得到:

但是我们只想查看具体有哪些班级,这里就需要用到去重,也就是DISTINCT。

SELECT DISTINCT student_class FROM t_student;

返回限定行数的查询——LIMIT

LIMIT后面参数为1或2个:

LIMIT N 表示从第一行开始返回N行结果,LIMIT i,N 表示从第i+1行开始返回N行结果。

例:

SELECT * FROM t_student LIMIT 3;

SELECT * FROM t_student LIMIT 2,3;

*注:LIMIT很重要,它是之后做数据表格分页的关键。

选择操作——WHERE:

分为单条件选择与多条件选择

单条件选择标准结构:

SELECT 列1, 列2 FROM 表名 WHERE 列3 = 值 

关系运算符包括:>  >=  <  <=  =  !=

多条件选择标准结构:

SELECT 列A, 列B FROM 表 WHERE 条件1 (AND或者OR) 条件2

其中AND表示并且,OR表示或者。

选择范围——BETWEEN

如:

SELECT * FROM t_student WHERE student_age BETWEEN 20 AND 23;

BETWEEN后的值为从下限到上限。

定义集合——IN或NOT IN

现在想查看年龄为17、20、23的学生信息:

SELECT * FROM t_student WHERE student_age IN (17,20,23);

反之NOT IN就是选择不包括在集合里的学生信息。

模糊查询——LIKE

为了更好的解释模糊查询,这里重新建张表:

这里姓王的兄弟们躺枪...别介意。

首先先说下占位符与通配符:

占位符 "_",表示任何单个字符。

通配符 "%",表示包含零或多个字符。

下面就来用模糊查询逐一选中我们想要的行。

名字只有两个字的:

SELECT * FROM t_student WHERE student_name LIKE '__';

这里可能看不清,引号里实际是两个占位符。

所有姓王的:

SELECT * FROM t_student WHERE student_name LIKE '王%';

最后一个字是“王”的:

SELECT * FROM t_student WHERE student_name LIKE '%王';

只要是名字中有“王”字的:

SELECT * FROM t_student WHERE student_name LIKE '%王%';

这下模糊查询就很明白了吧,当然还有其他组合,大家可以自己尝试。

处理空值数据:

判断条件不能用列名=NULL,而是要用IS NULL或IS NOT NULL。

标准写法:

SELECT * FROM t_student WHERE 性别 IS NULL

排序操作——ORDER BY:

使用ORDER BY时,列名上指定ASC或DESC。ASC表示正序,DESC表示倒序。如果不指定则默认为正序。

按年龄排:

SELECT * FROM t_student ORDER BY student_age ASC;

SELECT * FROM t_student ORDER BY student_age DESC;

最后一定要注意!

基本查询SQL的执行顺序:

1.执行FROM 2.WHERE条件过滤 3.SELECT投影 4.ORDER BY排序

SQL语句汇总——数据修改、数据查询的更多相关文章

  1. .net Core使用sql语句实现批量修改数据状态

    上图为查出的所有满足条件的数据,要选中若干条数据将其状态设置为作废 一共选中6条数据,当点击确认后修改数据状态. 前端代码 1.安装NuGet包 [Abp.Dapper]于EFCore中, 2.创建文 ...

  2. 【转载】SQL语句将一个表的数据写入到另一个表中

    在日常的数据库运维过程中,有时候需要将Select查询出来的数据集写入到另一个数据表中,其中一种方式是通过存储过程循环写入数据,另一种简便的方式是直接使用Insert Into语句后面跟上Select ...

  3. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  4. 使用sql语句比较excel中数据的不同

    使用sql语句比较excel中数据的不同 我所在的项目组是一套物流系统,负责与公司的电商系统进行对接.但是公司的电商系统的省市区的配置和物流系统的省市区的配置有差异,所以需要找到这些差异. 首先找到我 ...

  5. SQL语句添加删除修改字段及一些表与字段的基本操作

    用SQL语句添加删除修改字段 1.增加字段     alter table docdsp    add dspcode char(200)2.删除字段     ALTER TABLE table_NA ...

  6. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  7. SQL语句添加删除修改字段[sql server 2000/2005]

    用SQL语句添加删除修改字段1.增加字段     alter table docdsp    add dspcodechar(200)2.删除字段     ALTER TABLE table_NAME ...

  8. SQL语句添加删除修改字段

    用SQL语句添加删除修改字段1.增加字段     alter table docdsp    add dspcodechar(200)2.删除字段     ALTER TABLE table_NAME ...

  9. Mysql学习总结(1)——常用sql语句汇总

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name  2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  10. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...

随机推荐

  1. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  2. spark连数据库

    DataFrame提供了一条联结所有主流数据源并自动转化为可并行处理格式的渠道,通过它Spark能取悦大数据生态链上的所有玩家,无论是善用R的数据科学家,惯用SQL的商业分析师,还是在意效率和实时性的 ...

  3. 省市区联动,非ajax请求。

    需求 不允许用 ajax 请求的方式加载数据,所以把所有的省市区写在数组里,用js动态加载. 数据源 民政部门户网站:http://www.mca.gov.cn/article/sj/xzqh/201 ...

  4. 2018-2019-2 20165330《网络对抗技术》Exp5 MSF基础应用

    目录 基础问题 相关知识 实验目的 实验内容 实验步骤 离实战还缺些什么技术或步骤? 实验总结与体会 实验目的 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路 返回目 ...

  5. PrimeNG之DataTable

    --数据表显示在表格格式数据. Basic Import import {DataTableModule,SharedModule} from 'primeng/primeng'; source &l ...

  6. 阿里云api调用做简单的cmdb

    阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序 ...

  7. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  8. 初步了解Fork/Join框架

    框架介绍 Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个子任务,最终汇总每个子任务的执行结果以得到大任务结果的框架.Fork/Join框架要完成两件事 ...

  9. 浅谈AC自动机

    写在前面:从10月23日开始写这篇博文,离NOIP2018只有十多天了.坚持不停课的倔强蒟蒻(我)尽量每天挤时间多搞一搞信竞(然而还要准备期中考试).NOIP争取考一个好成绩吧. 一.简介 AC自动机 ...

  10. WebService简单搭建和调用

    http://www.cnblogs.com/JiYF/p/6164859.html https://www.cnblogs.com/JiYF/p/6169349.html #region Invok ...