一,基础CURD语句
1.增加语句 INSERT INTO tablename (`name`,`sex`) values ('小白',‘0’)
2.查询语句 SELECT * FROM tablename
3.删除语句 DELETE FROM tablename WHERE (`id`=$id)
4.修改语句 UPDATA tablename SET `name`='小王',`sex`='1' WHERE (`id`=$id)
初学者开始学习Sql语句是最先接触到的就是这四句CURD,但Sql语句光会这四句是远远不够的,
面对大数据的查询操作时,简单的查询语句会给服务器巨大的压力,导致服务器反应慢,引起宕机。
二,Sql学习
首先我们来学习一些数据库最重要的sql命令
select 从数据库中提取数据
updata 更新数据库中的命令
delete 从数据库中删除数据
insert into 向数据库中插入数据
create database 创建新数据库
alter database 修改数据库
create table 创建新表
describe table 显示具体的表结构
alter table 变更数据表
drop table 删除表
create index创建索引
dorp index 删除索引
三,查询语句
1.在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
select distinct uname from school_user 返回表中uname用户的唯一值。
2.where子句 运用案例
(1).搜索表中uname为猪小明的同学
select * from school_user where uname = '猪小明'
(2).adn同时满足两select * from school_user where age > 2 or age < 25个条件
select * from school_user where age > 2 and age < 26
(3).or满足其中一个条件
select * from school_user where age > 2 or age < 25
and 和 or也可以组合使用
select * from school_user where age >2 and (sex='0' or uname = '大白')
(4).not 非 满足不包含该条件的值
select * from school_user where not age >25
查询得出表中小于等于25的值
(5).查询表中uname列中的空值
select * from school_user where uname='' or uname is null;
这里需要注意如果表中为''那么可以用uname=''来查询,如果表中为null 查不到可以用 is null查询;
(6).between adn 在。。。之间 和
select * from school_user where age between 2 and 25
查询表中条件age 大于等于2和小于等于25之间的所有值
(7).in 查询school_user表中age列中等于(2,22,25)的所有值
select * from school_user where age in(2,22,25)
(8).like模糊查询
% 表示多个字值,_ 下划线表示一个字符;
M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
select * from school_user where uname like '小%'
%M% : 表示查询包含M的所有内容。
%M_ : 表示查询以M在倒数第二位的所有内容。
case 可以判断想要输出的值的具体显示
(9).sql:case( when then)事例 在....时 那时
select
(case
when sex='1' then '男'
when sex='0' then '女'
else '空的'
end
)性别
from school_user;
(10)order by 排序默认为asc正序排列
select * from school_user ORDER BY uname
以上就是sql基础语句要掌握的内容.
四、sql函数学习
- AVG() - 返回平均值
- COUNT() - 返回行数个记录的值,
- MAX() - 返回最大值
- MIN() - 返回最小值
- SUM() - 返回总和
1.GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
统计 school_log 各个 site_id 的访问量:
SELECT site_id,sum(school_log.count) as nums from school_log GROUP BY site_id
GROUP BY 多表连接查询,查询school.user中用户的数量
select school_user.uname,sum(school_log.count) as nums from school_log LEFT JOIN school_user on school_log.site_id=school_user.id GROUP BY school_user.uname
2.HAVING,在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
select school_user.uname,sum(school_log.count) as nums from school_log LEFT JOIN school_user on school_log.site_id=school_user.id GROUP BY school_user.uname HAVING sum(school_log.count) >300;
3.UCASE把字段的值转换为大写,LCASE把字段的值转换为小写。
4.MID 用于从文本字段中提取字符
select mid(uname,1,1)as uname from school_user
展示查询出来值的前一个字符。
5.LENGTH 用于返回文本字段中的值
select LENGTH(uname) from school_user
6.FROMAT 用于对字段的显示进行格式化
SELECT*,DATE_FORMAT(Now(),'%Y-%m-%d %H-%i-%s') AS date
FROM school_user;