SQL是访问和处理数据库的计算机语言,用于存取数据以及查询、更新和管理关系数据库系统
SQL从功能上可以分为3部分:数据定义、数据操纵和数据控制
这篇文章只介绍一下数据定义和数据操纵
数据定义(DDL)
数据定义语言是用的定义和操作数据库对象
创建
创建数据库
create database 数据库名;
创建表
create table 表名{
列名1 数据类型1,
列名2 数据类型2,
列名3 数据类型3,
...
列名n 数据类型n,
约束...
};
删除
删除数据库
drop database 数据库名;
判断数据库是否存在,存在才执行删除
drop database if existx 数据库名;
删除表
drop table 表名;
判断表是否存在,存在才执行删除
drop table if exisex 表名;
修改
修改数据库的字符集
alter database 数据库名 character set 字符集名;
修改表名
alter table 表名 rename to 新表名;
修改表的字符集
alter table 表名 character set 字符集名;
往表里补添一列
alter table 表名 add 列名 数据类型;
修改列名及数据类型
alter table 表名 change 列名 新列名 新数据类型;
修改列名的数据类型
alter table 表名 modify 列名 新数据类型;
删除指定一列
alert table 表名 drop 列名;
查询
查询所有数据库的名称
show databases;
查询指定数据库的创建语句
show create database 数据库名;
进入已有数据库
use 数据库名;
查询指定数据库中所有表的名称
show tables;
查询表结构
desc 表名;
数据操纵(DML)
数据操纵是SQL语言使用最多和最重要的部分,作用于数据库中的表里的数据,作为后端程序员主要的工作就是使用SQL将各种数据与数据库交互
数据操纵主要分为四个部分,分别是增加新数据,删除废弃数据,修改旧数据和使用最多的查询各种条件的期望数据,我们将这部分简称为增删改查
增(insert into)
语法格式
语法1:这种方式按照表的列名固定顺序添加一行数据,values后面括号里的数据必须与数据库的列全部对应
insert into 表名 values(值1, 值2, 值3, ...);
语法2:这种方式按照表名后面括号里的数据顺序对应values后面括号里的值添加数据,可以不按表的顺序,也可以不写全所以列,未添加的列的值按默认值或空值添加
insert into 表名(列名1, 列名3, 列名4) values(值1, 值3, 值4);
删(delete)
删除数据是最简单的语句了,只需要指定表名和查询条件就行
语法格式
delete from 表名 where 条件;
改(update)
修改数据只需要指定自己需要修改的几个列名,按条件查询出对应数据,并将值设置好就可以了
语法格式
update 表名 set 列名1 = 值1, 列名2 = 值2, 列名5 = 值5, ... where 条件;
查(select)
查询数据是数据操纵的重点难点,主要难在判断条件上
下面语句中的 *
代表查询所有列,在实际项目中我们会将星号替换成我们实际需要用到的几个列名,多条列名用英文逗号分隔,这样有助于提高查询速度
基本语法
select * from 表名 where 条件;
模糊查询
模糊查询用于不确定具体查询条件是什么的时候使用,用于匹配字符串,比如以某个字符开头,以某个字符结尾或是否包含某个字符
和基本语法对比,模糊查询将判断符号换成了 like
下面语句以 模糊格式
代替这部分语句
举例
以字符a开头:a%
以字符a结尾:%a
包含a:%a%
select * from 表名 where 列名 like 模糊格式;
排序查询
升序
select * from 表名 where 条件 order by 列名 asc;
降序
select * from 表名 where 条件 order by 列名 desc;
条件
这里单独将一下查询条件
1.基本条件
使用 >
>=
<
<=
=
等逻辑运算符判断
比如判断年龄大于等于18岁
age >= 18
2.范围条件
语法 bentween 起点值 and 结束值
比如判断分数在60到75之间
score bentween 60 and 75
3.单点指定
语法 in(值1, 值2, 值3, ...)
可以指定多个值,比如查询学号为15,35,46,47几位同学
sid in(15, 35, 46, 47)
聚合函数
上面说到查询语句里的 *
可以替换成指定列名,其实还可以替换成SQL语言提供的内置聚合函数实现特定功能
- count(列名) 统计当前条件下查询出的数据的数量
- sum(列名) 求某一列值的总和
- max(列名) 求某一列的最大值
- min(列名) 求某一列的最小值
- avg(列名) 求某一列的平均值
下面几个用于语句最后
- distinct 去冗余
- group by 分组
- having 分组筛选
总结
SQL用于操作数据库,是使用数据库的必备技能,上面只是介绍了适用于所有数据库的通用语法,不同数据库的个别语法有少许差异,需要我们进一步学习运用