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

SQL语句第二篇,不说废话直接开始吧。spa

 

首先建立一张表以下,建立表的方法在上篇介绍过了,这里就再也不赘述。3d

 

添加新数据:日志

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

如:code

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

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

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

多行数据添加:排序

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

 

更改数据:class

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 FROMWHERE 条件1 (AND或者OR) 条件2

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

 

选择范围——BETWEEN

如:

SELECT * FROM t_student WHERE student_age BETWEEN 20 AND 23;

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

 

定义集合——IN或NOT IN

如今想查看年龄为1七、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的第二篇就到这里了,博主写的快吐了!感受学的时候没这么多啊,但愿各位认同的朋友顶一下,也好让我有动力写完。

相关文章
相关标签/搜索