SQL语句汇总(二)——数据修改、数据查询
首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述。

添加新数据:
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 表名
二者区别在于:
查询操作
分类:
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语句汇总(二)——数据修改、数据查询的更多相关文章
- Oracl 一条sql语句 批量添加、修改数据
最近一直在用,也一直在学oralc,项目上也用到了批量的添加(读取上传CSV文件信息,把符合条件的信息写入到数据库中),在写的时候想到了可能是数据量大就想该怎么快,(由于本人在.NET开发期间没有做过 ...
- 基本Sql语句汇总
关于Sql语句的学习,选择的DBMS为SQL Server,Sql语句随着工作中的应用不断补充,不具备系统性,为个人笔记汇总,网上有很多优秀的资源,故不对每一处应用做过多细致的说明,后期会对部分篇幅较 ...
- SQL总结(二)连表查询
---恢复内容开始--- SQL总结(二)连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union ...
- 常用sql语句总结(一)(查询)
常用sql语句总结(一)(查询) 数据操作语句:DML 数据定义语句:DDL 数据控制语句:DCL (执行顺序------序号) 一.基本查询: 1. SELECT * ----- 2 FROM 数据 ...
- SQL语句增加列、修改列、删除列
SQL语句增加列.修改列.删除列 1.增加列: 1.alter table tableName add columnName varchar(30) 2.ALTER TABLE dbo.doc_exa ...
- 数据库-SQL语句:删除和修改语句-列类型-列约束
使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe -h127.0.0.1 -uroot -p mysql -uroot (2)脚本模式:——增删改 m ...
- SQL Server参数化SQL语句中的like和in查询的语法(C#)
sql语句进行 like和in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like参数化查询:string sqlstmt = "select * from users whe ...
- SQL语句汇总(二)——数据修改、数据查询
SQL语句第二篇,不说废话直接开始吧. 首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VA ...
- SQL语句整理(二) 数据定义语言DDL
前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试 ...
随机推荐
- const int * p 和 int const * p 和 int * const p 的区别
首先注意,const int * p 和int const *p 是一样的,并且不管是不是*p,即使const int i和int const i也是一样的,所以我们接下来只讨论int const * ...
- ftp服务器远程拷贝命令
xiamense@xiamense-testserver:~$ ftp 218.5.82.40 输入账户密码 get 远程文件路径 本机服务器路径get pa20160927.xml /home/xi ...
- 随机打乱工具sklearn.utils.shuffle,将原有的序列打乱,返回一个全新的错乱顺序的值
Shuffle arrays or sparse matrices in a consistent way This is a convenience alias to resample(*array ...
- Bootstrap 更改Navbar默认样式
alt+shift+n 新建文件ctrl+shift+/ 注释ctrl+shift+f 重新排版代码ctrl+/ 注释 /* navbar */.navbar-default { background ...
- Icinga快速安装与配置
Icinga快速安装与配置/* body */body { margin: 20px; padding: 0; font-family: "Lucida Grande", &quo ...
- C++/MFC如何启动另一个应用程序并获取其进程 ID
ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open.runas.print.edit.explore.find[ ...
- Android-ConvenientBanner轻松实现广告头效果
Android-ConvenientBanner通用的广告栏控件,让你轻松实现广告头效果.支持无限循环, 可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页. 你也可以设置在界 ...
- EAS linux挂载数据盘
查看数据盘名称 fdisk -l 假设没有挂载的数据盘为/dev/xvdb 格式化数据盘 mkfs.ext3 /dev/xvdb 添加自动挂载 mkdir /data echo '/dev/xvdb ...
- 在C#中创建和读取XML文件
1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 using ...
- servletconfig和servletContext的区别
1.servletConfig: 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个we ...