增(insert)
-
直接插入单行数据:
格式:insert into "表名" values (值1、值2、值3。。。)
这中方法是当需要给全部列都插入数据时使用
-
对应列名插入单行数据:
格式: insert into book(列名1、列名2、列名3。。。) values(值1、值2、值3。。。)
这种发放用于只给对应列添加数据,没有给出的字段系统将用默认值代替
-
set子句插入单行数据:
格式:insert into book set 列名1='值1' 列名2='值2' 列名3='值3'。。。
效果和上面的方法一样
删(delete)
- 单表内容删除:
where后面跟着的是限定条件,符合条件的便会被删除格式:delete from '表名' where 姓名='张三'
- 多表内容删除:
可以一次性删除多个表中的对应数据格式:delete from '表名1,表名2,表名3。。。' where 姓名='张三'
改(update)
- 单表数据修改:
格式:updata 表名 set 列名1=表达式1, 列名2=表达式2, 列名3=表达式3。。。
- 多表数据修改:
格式:updata 表1,表2。。。 set 列名1=表达式1, 列名2=表达式2, 列名3=表达式3。。。
查(select)
先建立一个表。名为:personnel
内容:
普通查询
-
部分列查询:
格式:select 列1,列2.。。。 from 表
例:
select 姓名,年龄 from personnel
-
全表查询:
格式:select * from 表
例:
select * from personnel
定义列别名
利用as可以将查询的列名给定义一个别的名字。替换成别名后,查询的表中,标题显示的便是别名。 格式:列名 [AS] 别名
格式:select 列名1 as 别名1 , 列名2 as 别名2 , 。。。from 表名
例:select 姓名 as name , 年龄 as age from personnel
当自定义的别名中含有空格时,必须使用引号将其括起来
格式:select 姓名 as 'personal name' , 年龄 as 'your age' from 表名
例子:select 姓名 as 'personal name' , 年龄 as 'personal age' from personnel
注意:别名不能在where子句中使用,因为,执行where代码时,可能尚未确定列值。
如:select 姓名 as name , 年龄 as age from personal where name='张三'
此句语法是错误的,别名出现在了where子句中。
替换查询结果中的数据
作用:在查询时,如果我们需要得到的不是具体的数据,而是一个概念。
比如说,如上表中,我需要将查询出来的内容中,不同年龄显示为青年、中年、老年而不是具体的年龄数字
格式:
case
when 条件1 then 表达式1
when 条件2 then 表达式2
。。。
else 表达式n
end [as 别名]
例:
select 姓名 as 'name' ,
case
when 年龄 <= 20 then '青年'
when 年龄 >20 and 年龄<=50 then '中年'
else '老年'
end as age
from personnel
计算列值
在使用select语句查询时,在结果中可以输出对列值计算后的值。
例:select 姓名 as name , 年龄*2 as age from personnel
此处 年龄*2 也可以换成函数操作
消除结果集中的重复行
使用 distinct 关键字即可
select distinct 姓名,年龄 from personnel
where子句
作用:用于限定查询结果
AND:select distinct 姓名,年龄 from personnel where 年龄>20 and 年龄<40
OR:select distinct 姓名,年龄 from personnel where 年龄>40 or 姓名='张三'
注意:and优先级大于or
where中还有一个特殊的运算符:<=>
此运算符专门用来比较空值的
模式匹配like
给上述表中添加几行数据
格式:select * from 表名 where 列名 [not] like '_%'
not是可选的,当使用not时,结果值取反
_代表单个字符,%代表多个字符。一般情况下使用这两个特殊符号进行模糊查询
例1 下划线:select 姓名,年龄 from personnel where 姓名 like '张_'
例2 百分号:select 姓名,年龄 from personnel where 姓名 like '张%'
例3 字符中间值:select 姓名,年龄 from personnel where 姓名 like '%老%'
比较范围between
格式:select * from 表名 where [not]between 值1 and 值2
not是可选的,当使用not时,结果值取反
例:select 姓名,年龄 from personnel where 年龄 between 20 and 40
上例等同于:select 姓名,年龄 from personnel where 年龄>=20 and 年龄<=40
加not关键字
例:select 姓名,年龄 from personnel where 年龄 not between 20 and 40
空值比较
格式:select * from personnel where 列名 is [not] null
表达式为null时,返回true,反之为false
not是可选的,当使用not时,结果值取反
例:select * from personnel where 年龄 is null
因为每一行的年龄都不为null,所以没有记录
加not:select * from personnel where 年龄 is not null