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

添加新数据:

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. Oracl 一条sql语句 批量添加、修改数据

    最近一直在用,也一直在学oralc,项目上也用到了批量的添加(读取上传CSV文件信息,把符合条件的信息写入到数据库中),在写的时候想到了可能是数据量大就想该怎么快,(由于本人在.NET开发期间没有做过 ...

  2. 基本Sql语句汇总

    关于Sql语句的学习,选择的DBMS为SQL Server,Sql语句随着工作中的应用不断补充,不具备系统性,为个人笔记汇总,网上有很多优秀的资源,故不对每一处应用做过多细致的说明,后期会对部分篇幅较 ...

  3. SQL总结(二)连表查询

    ---恢复内容开始--- SQL总结(二)连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union ...

  4. 常用sql语句总结(一)(查询)

    常用sql语句总结(一)(查询) 数据操作语句:DML 数据定义语句:DDL 数据控制语句:DCL (执行顺序------序号) 一.基本查询: 1. SELECT * ----- 2 FROM 数据 ...

  5. SQL语句增加列、修改列、删除列

    SQL语句增加列.修改列.删除列 1.增加列: 1.alter table tableName add columnName varchar(30) 2.ALTER TABLE dbo.doc_exa ...

  6. 数据库-SQL语句:删除和修改语句-列类型-列约束

    使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe  -h127.0.0.1  -uroot  -p mysql   -uroot (2)脚本模式:——增删改 m ...

  7. SQL Server参数化SQL语句中的like和in查询的语法(C#)

    sql语句进行 like和in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like参数化查询:string sqlstmt = "select * from users whe ...

  8. SQL语句汇总(二)——数据修改、数据查询

    SQL语句第二篇,不说废话直接开始吧. 首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VA ...

  9. SQL语句整理(二) 数据定义语言DDL

    前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试 ...

随机推荐

  1. ASP.NET中调用存储过程方法

    两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的“官方”方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后不再一一说明.本文所 ...

  2. easyui datagrid 跨页选择

    $.fn.extend( memberList ,{ quickSearch : function() { var time1 = new Date(); /* this.datagrid.datag ...

  3. MFC CFileDialog用法例子。

     Set it to TRUE to construct a File Open dialog box. Set it to FALSE to construct a File Save As dia ...

  4. iOS nib file owner

    nib文件中的file owner属性,设定后app在运行时加载nib文件的过程中会通过file owner重新建立nib文件中描述的控件与其在file owner中对应的IBOutlet或IBAct ...

  5. left join ,right join ,inner join ,cross join 区别

    left join ,right join ,inner join ,cross join 区别(参考:http://zhidao.baidu.com/link?url=gpOl9HXZR0OrQuy ...

  6. jQuery 屏幕遮罩

    1.先做一个可以覆盖整个屏幕的div,颜色为黑色,然后再设置透明度,作为遮罩#zhezhao { position: absolute; top: 0px; left: 0px; width: 100 ...

  7. Volley框架之网络请求和图片加载

    Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架. Volley的特性 (1).封装了的异步的请求API.Volley 中大多是基于接口的设计,可配置性强.(2). ...

  8. RPC应用的java实现(转)

    一.RPC介绍 什么是RPC?Remote Procedure Call,远程过程调用.也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信.比较严格的定义是: ...

  9. C#版SQLHelper.cs类

    using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...

  10. HttpServletResponse

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...