试述网站建设应考虑哪些方面的问题,苏州互联网大厂,崇左网页设计,外贸网站建设优化营销写在前面 : 语法中大写字母是关键字#xff0c;用[]括这的是可以省略的内容。文中截图是相对应命令执行完得到的结果截图。1.CRUD 注释#xff1a;在SQL中可以使用“--空格描述”来表示注释说明.CRUD:即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首… 写在前面 : 语法中大写字母是关键字用[]括这的是可以省略的内容。文中截图是相对应命令执行完得到的结果截图。1.CRUD 注释在SQL中可以使用“--空格描述”来表示注释说明.CRUD:即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写. 2.新增CREATE
语法格式
INSERT [INTO] table_name[(column [, column] ...)]VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ... 使用这个这个命令之前我们需要先创建好一个数据库选中数据库后再在这个数据库中创建一个表之后我们才可以用上述命令将数据填入到表中了。
--创建的的表结构
-------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-------------------------------------------------
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| math | int(11) | YES | | NULL | |
| english | int(11) | YES | | NULL | |
-------------------------------------------------
2.1 单行数据 全列插入
insert into student values(1,张三,90,87);
insert into student values(1,李四,89,87);
单行输入时关键字values可以不加s这里大家应该都可以理解。在实际应用中很少使用到添加单行数据就像我们网购在一家网店买的东西都是通过一个快递邮递到站不然太费资源单行输入也是如此。因此下方开始展示多行输入。
2.2 多行数据 指定列插入
-- 插入两条记录value_list 数量必须和指定列数量及顺序一致
insert into student (id,name,math,english) values(3,钟馗,12,45),(4,卢布,null,null);
通过上方代码我们可以看出在数据中我们可以将数据赋值为空什么时候置为空能就拿现在这个例子卢布同学因为出去约会了没参加考试那么我们就把他所有的成绩全都置为null相当于卢布同学缺考了。
3.查询SELECT
语法格式
SELECT[DISTINCT] {* | {column [, column] ...}[FROM table_name][WHERE ...][ORDER BY column [ASC | DESC], ...]LIMIT ... 查询语法才是有趣中的有趣因为他可以套用很多不同的查询方式让我给你一一道来。
3.1全列查询
-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多意味着需要传输的数据量越大
-- 2. 可能会影响到索引的使用。索引待后面课程讲解
SELECT * FROM exam_result; 3.2指定列查询
-- 指定列的顺序不需要按定义表的顺序来
SELECT id, name, english FROM exam_result; 3.3 查询字段为表达式
-- 表达式不包含字段
SELECT id, name, 10 FROM exam_result;
-- 表达式包含一个字段
SELECT id, name, english 10 FROM exam_result;
-- 表达式包含多个字段
SELECT id, name, math english FROM exam_result; 注在我们执行english10englishmath 这些语句时对于我们的存入数据是不会有影响的我们在客户端看到的所有表都是一个“临时表”。 3.4别名
为查询结果中的列指定别名表示返回的结果集中以别名作为该列的名称
语法格式
-- 结果集中表头的列名别名
SELECT column [AS] alias_name [...] FROM table_name; 3.5去重
使用DISTINCT关键字对某列数据进行去重
去重前 去重后 通过上方对比可以看出去重是将出现大于等于两次的数据仅仅保留一项的操作。
3.6 排序ORDER BY
语法格式
-- ASC 为升序从小到大
-- DESC 为降序从大到小
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
示例
--查询姓名和数学成绩根据数学成绩降序排序
select name,math from student order by math desc; 我们还可以将两行相加再进行排序 select name,mathenglish from student order by mathenglish desc; 上方有刚学完as用于改别名我们还可以将mathenglish改一个别名这时上方的截图标题mathenglish就会被改为score中代码如下 select name,mathenglish as score from student order by mathenglish desc;
除了上述的方式我们还可以进行更复杂的排序方式例如可以对多个字段进行排序排序优先级随书写顺序。
-- 查询同学各门成绩依次按 数学降序英语升序方式显示
select name,math,english from student order by math desc, english ; 注意
没有 ORDER BY 子句的查询返回的顺序是未定义的永远不要依赖这个顺序。NULL 数据排序视为比任何值都小升序出现在最上面降序出现在最下面。3.7条件查询
比较运算符
运算符说明, , , 大于大于等于小于小于等于等于NULL 不安全例如 NULL NULL 的结果是 NULL等于NULL 安全例如 NULL NULL 的结果是 TRUE(1)!, 不等于BETWEEN a0 AND a1范围匹配[a0, a1]如果 a0 value a1返回 TRUE(1)IN (option, ...)如果是 option 中的任意一个返回 TRUE(1)IS NULL是 NULLIS NOT NULL不是 NULLLIKE模糊匹配。% 表示任意多个包括 0 个任意字符_ 表示任意一个字 符
逻辑运算符
运算符说明AND多个条件必须都为 TRUE(1)结果才是 TRUE(1)OR任意一个条件为 TRUE(1), 结果为 TRUE(1)NOT条件为 TRUE(1)结果为 FALSE(0)
注意
WHERE条件可以使用表达式但不能使用别名。AND的优先级高于OR在同时使用时需要使用小括号()包裹优先执行的部分3.7.1基本查询 --查找姓名和英语成绩查询出英语成绩不足60的同学
select name,english from student where english60; --查找姓名、英语和数学成绩成绩查询出数学成绩高于英语成绩的同学
select name,english,math from student where englishmath; 3.7.2 AND和OR --英语、数学成绩都在60分以上的学生
select name,english,math from student where english60 and math60; --英语或者数学大于60分的同学
select name,english,math from student where english60 or math60; 3.7.3范围查询 BETWEEN ... AND ...
--查询英语成绩在60-100分的同学
select name,english,math from student where english between 60 and 100; IN
--查询英语等于87、45分的同学
select name,english,math from student where english in (87,45); 模糊查询
-- % 匹配任意多个包括 0 个字符
SELECT name FROM student WHERE name LIKE 张%;
-- _ 匹配严格的一个任意字符
SELECT name FROM student WHERE name LIKE 张_; NULL查询IS [NOT] NULL
-- 查询 id 已知的同学姓名
SELECT name, id FROM student WHERE id IS NOT NULL;
-- 查询 id 未知的同学姓名
SELECT name, id FROM student WHERE id IS NULL; 3.8分页查询
语法格式
-- 起始下标为 0
-- 从 0 开始筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始筛选 n 条结果比第二种用法更明确建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
分页查询就是将数据按照页的形式进行显示就像我们购物时商品会有页码数这就是分页查询的实际应用。 示例 第 1 页
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 0;
-- 第 2 页
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 3;
-- 第 3 页如果结果不足 3 个不会有影响
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 6; 4.修改UPDATAE
语法格式
UPDATE table_name SET column expr [, column expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
示例
-- 将大鹏同学的数学成绩变更为 80 分
UPDATE student SET math 80 WHERE name 大鹏;
-- 将张三同学的数学成绩变更为 60 分语文成绩变更为 70 分
UPDATE student SET math 60, english 70 WHERE name 张三;
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
UPDATE student SET math math 30 ORDER BY math english LIMIT 3;
-- 将所有同学的语文成绩更新为原来的 2 倍
UPDATE studentt SET math math * 2;
注意
修改可以联合上方提到的语句ORDER BY;WHERE等进行修改这样在使用方面对数据的操作就全面了许多。 5.删除DELETE
语法格式
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...] 示例
--删除张三的成绩
DELETE FROM student WHERE name 张三; --创建一个测试表
create table test_table(id int,name varchar(20)
);--删除测试表
delete from test_table;注意在开发当中删除操作是非常危险的我们一定要再三再三考虑如果操作失误很有可能把自己的“饭碗”给弄丢严重的话可能老板的饭碗也给弄没了。