
周报07
sql基础
单行注释:开头”--”加上注释内容;
语句:
SELECT *
FROM ” students ”;
其中”SELECT ”为选取,”*”为表格中所有栏目,要选取特定栏位时改为所需要选取栏位名字;中间用逗号相隔即可,FROM ” student ”为从student表格中选取;
若要从前往后限制检索五个栏位,则在上述语句分号前添加:LIMIT 5;
从后往前检索,则:OFFSET 5;
注:写每个关键字时分行能更清晰直观;
设定查询时的筛选条件,比如只显示1年2班:WHERE 班级=’1年2班’;
不等于号:<>;
按照某一栏位进行排序,比如按班级且班级中学生按成绩升序(从最高到最低):
ORDER BY 班级,成绩(若要降序则在该语句后增加DESC);
想要查询同学姓张但名不确定时,等号改为LIKE,可以用到%:
WHERE 姓名 LIKE ’张%’;
其中%是万用字元表示零个或多个字元;与其对应的万用字元底线’_’每一个代表一个字元;
between筛选介于两数值之间的资料:WHERE 成绩 BETWEEN 80 AND 90;
and优先级大于or,若要改变语句优先级则用();
简化多个or语句的使用比如:
(原)班级=’1年1班’or班级=’1年2班’;
(使用in关键字)班级IN(‘1年1班’,’1年2班’);
求平均,比如求平均成绩:
SELECT AVG(成绩)
FROM students;
除此之外汇总函数还有max求最大,min求最小,sum求和,count计数等;
设置栏目名称提高可读性如:AVG(成绩) AS 成绩平均;
设置保留小数位数:ROUND(所要操作的数据,保留小数位数)若要保留到整数位则省略逗号后数即可;
与汇总函数配合使用的分组关键字,比如以班级为单位显示平均成绩:GROUP BY 班级;
GROUP BY处理后的数据若要筛选:HAVING 条件;
注:关键字之间的特殊顺序;
SELECT-FROM-WHERE-GROUP BY-HAVING-ORDER BY-LIMIT
计数函数:COUNT(栏目名称)显示对应栏目下行数且忽略空白行
通常配合count函数使用进行检索的关键字distinct:COUNT(DISTINCT 栏目名称)可显示排除重复行后的检索结果;
若要查看具体是哪几个数据则去掉count即可但此时不会自从排除null行,此时若要去掉null则加上一行WHERE语法即可:WHERE 栏目名称 IS NOT NULL;
建立表格语法:
CREATE TABLE 表格名称(
社团编号 INT(栏位储存资料类型) PRIMARY KEY,
社团名称 VARCHAR(括号中设定字符上限),
........
);
注:要在栏位中设置一个为主键primary key(用于识别每一笔资料类似身份证号不得有重复或null,比如社团编号)
删除表格语法:
DROP TABLE 表格名称;
在表格中输入新资料语法:
INSERT INTO 表格名称(插入资料的栏位标题)
VALUE(要输入栏位1下的内容,。。。要输入栏位n下的资料),(),().....;//每一个括号对应一笔资料,括号内不同内容用逗号隔开
SELECT * FROM 表格名称;//若要查看输入是否成功可加上该select全部语句
若要更新表格内数据语法:
UPDATE 表格名称;
SET 栏位名称=’所要更新内容’
WHERE 限定筛选条件;
删除表内资料用DELETE用法与update相似
跨表查询:
SELECT 表格1.栏位1,表格1.栏位2,表格2.栏位3
FROM 表格1
LEFT JOIN 表格2//结合并显示左侧表格的所有数据
ON 表格1.栏位2=表格2.栏位3//结合点位
注:join会将未对应成功的显示成null,若要只显示对应成功的则用inner代替