dml
数据管理语言,用于管理操作数据库中存储的数据
关键字 insert
语法:
INSERT [INTO] 表名 [(列名)] VALUES (值列表)
1、基本写法(为全属性进行书写赋值)
insert into 表名 (列1,列2)values (值1,值2)
如果在进行输入插入时只想为某一属性赋值,其他使用默认值赋值可以只书写赋值属性(注意,如果设置了not null且没有设置默认值 那么会报错)
2、简略写法(为部分属性书写赋值)
insert into 表名(添加数据的列) values(值)
3、简略为全属性赋值
可以理解为默认为全属性进行赋值,但要求value个数与属性个数相匹配
4、批量赋值
注意:
2、每个数据值的数据类型、精度和小数位数必须与相应的列匹配,在进行数据插入时可以将数据使用字符串形式插入,数据库会自动进行转换与格式验证(但如果字符串类型也不匹配则保错)
3、不需要为标识列指定具体值,可用null代替,在进行插入时要求为每列数据赋值,但如果数据可以为null,可以在插入数据时使用null作为数据插入
4、如果在设计表的时候就指定了某列不允许为空,则必须插入数据(在插入时value必须使用具体的值进行插入)
5、具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值,如果设置了默认值,那么可以不进行插入,会自动使用默认值进行数据的赋值
6、在进行外键列数据添加时必须使用外键已有数据进行添加
更新数据
关键字 update
语法: UPDATE 表名 SET 列名 = 更新值 [WHERE 更新条件]
进行更新时使用where进行更新记录的筛选,如果没有where 默认为 where 1=1
update 表名 set 修改的列名=值,修改的列名=值 where 更新条件
注意:在where中对null值进行判断时不能使用=, 使用is not null 与is null进行判断
关键字deleter
语法:
DELETE FROM 表名 [WHERE <删除条件>]
在进行数据添加时是按行进行添加,所以在删除时也是按行进行删除,注意现在软件开发使用的是伪删除(逻辑删除)设置删除字段在进行删除时使用更新语句将字段设置为已删除
dql
数据查询语言
SELECT * FROM 表名 [where 条件]
查询产生一个虚拟表 看到的是表形式显示的结果,但结果并不真正存储 每次执行查询只是从数据表中提取数据,并按照表的形式显示出来
*代表全部的列(展示数据所有列)
简单语法
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
查询全部行与列
select * from 表名
查询全部的行与部分列
select 查询的列,查询的列 from 表名
在进行列名书写时建议使用全名(表名.列名)进行书写,为了避免之后进行多表查询时字段重复的问题
查询指定行与指定列
select 表名.列名 from 表名 where 表名.列名=值
在进行查询时建议使用指定名称的方式获取属性名(即使查询的是所有列)
别名定义
列别名
在select 查询的列后使用 as 别名或者 空格 别名的形式进行别名的命名,返回的虚拟表对应列名称就会被别名修改
表别名
在进行多个表的查询时,有时表名过于复杂这时需要使用类似于声明变量的方式起别名进行替代,对于表名只能使用空格 别名的方式进行命名,这样在当前语句使用到表名的地方都可以使用别名进行替换
查询空行
在数据库中null数据的判断使用is null 或者is not null进行判断 如果使用=null判断时数据是否为’null‘字符串
在查询列时可以为每行数据额外添加一列常量列,直接将数据当做列名,可以进行别名的修改(使用as)
select student.studentname,'活着' as '是否存活' from student where studentsex='男'
分割数据(按行)
将返回的所有数据按照指定要求进行分割返回指定行数的数据
在已经查询出结果的sql后添加 limit 起始条索引(从0开始),截取行数
常用用于分页功能的实现 (select * from student LIMIT 每页数(n-1),每页数)
排序
使用关键字order by asc desc进行数据的排序
升序排序
在数据库中如果在排序是没有指定字段排序方式默认使用asc升序方式进行排序
多列排序
在进行排序时如果多行排序字段的值相同时,那么不会进行位置的修改,但是多行数据其他值可能不同,在排序时通常会对多个列进行排序(当列相同时使用不同的列进行排序)
like
在进行查询字符串字段时有时可能只知道部分内容,如果视同=进行匹配则不会返回任何数据,这个时候就需要使用模糊查询(关键字查询:根据全部或部分信息继续数据的匹配)
解释 | 示例 | 符合条件的值 | |
---|---|---|---|
_ | 一个字符 | A LIKE 'C_' | CS、Cd等 |
% | 任意长度的字符串 | B LIKE 'CO%' |
#查询名字中包含c的人的所有信息
select * from student where studentname like '%c%';
#查询名字以j开头长度4的人的所有信息
select * from student where studentname like 'j___';
#查询第二个字母为i的人的所有信息
select * from student where studentname like '_i%';
between
用于数值范围的查找
in/not in
使用已知数据进行值匹配与java中的switch case很像 返回指定数据指定列与已有数据相匹配的结果
使用已有数据集进行匹配(数据集可以使用单列查询结果)
sql基本查询语法
select 列名
from 表名
where 查询条件
order by 排序字段 排序方式
limit 分页起始,分页数
注意:本文归作者所有,未经作者允许,不得转载