一、 基本的查询语句
1.1 从表中查询某指定的列
SELECT 列名
FROM 表名;
具体操作:查询 -> 新建查询 -> 查询编辑器 -> 输入SQL语句 -> 运行 -> 查看结果
![719385e2879ece894a7f60db317913af.png](https://i-blog.csdnimg.cn/blog_migrate/963e7a4e124575e2c8c2a8174046a608.png)
1.2 从表中查询所有列
-- 星号(*):查询所有列
SELECT *
FROM 表名;
建议:数据量大的时候,SELECT子句中应尽量避免使用*。对于上千万条数据,全部遍历很费时,平时的练习中要培养良好的习惯,需要哪列数据,有针对性的提取。
1.2 为列设定别名AS
SELECT 列名 AS 新命名的列名
FROM 表名;
1.3 删除重复数据DISTINCT,用在多列之前
SELECT DISTINCT 列名
FROM 表名;
附加:SQL书写规则
- SQL语句以英文分号(;)结尾;
- SQL语句不区分关键字的大小写;
- 列名不能加单引号,列名命名时不能有空格;
- 只能使用英文符号;
二、指定查询条件WHERE
SQL运行顺序和书写顺序不同。
运行顺序:FROM从哪张表中查找数据 -> WHERE查询出符合条件的行 -> 从查询的行中选取SELECT语句指定的列。总结就是SELECT子句最后运行,其他子句按书写顺序运行。
对应的书写顺序:
SELECT 列名
FROM 表名
WHERE 条件;
PS:WHERE子句比较符号左侧避免函数,比较符号的左侧出现表达式、函数等操作,会导致数据库引擎进行全表扫描,增加运行时间。
比如: WHERE 成绩+5 > 95 (表达式在比较符号左侧)
优化后:WHERE 成绩 > 90-5 (表达式在比较符号右侧)
三、注释和SQL语句注意事项
3.1 单行注释
![3d5cbdea177948ba050f9b0d5dd6f195.png](https://i-blog.csdnimg.cn/blog_migrate/5938047227b75b4c77bb58df5fb2cf21.png)
3.2 多行注释
/*
注释内容
*/
四、运算符
运算符经常在WHERE子句中作为精准筛选的条件。
![b25cc1d16f53c96423df9a1f5400d293.png](https://i-blog.csdnimg.cn/blog_migrate/c9b7484283ff399ea7de30be45042dba.png)
PS:尽量避免使用or,会导致数据库进行全表搜索,用or从几百万语句中取出几条,非常划不来。
五、字符串模糊查询:LIKE
5.1 %表示任意字符串
-- 查询姓“张”的学生名单
SELECT *
FROM student
WHERE 姓名 LIKE '张%'
5.2 _1个下划线表示任意1个字符,两个字符需要两个下划线__
![c7b30ae53884b7602adc63a9509d3602.png](https://i-blog.csdnimg.cn/blog_migrate/6766d1bbe7f96a71cb276877ad30aa0e.png)
对上面的知识点做了相关的练习,一定要亲自去练习,多练习,巩固知识。越来越觉得数学这门学科真奇妙,练习SQL除了要掌握基本的语句,最重要的还是理清思路,即查询前一定要明白自己的需求,和解数学题看清题意是一样的。
附上自己第二次打开Navicat遇到的问题:Navicat建立的数据库连接失败,显示错误是2003,大家一定不要害怕遇到问题,有句话叫“怕什么来什么”,报错的时候要学会看报错原因,最简单的办法是把报错提示直接复制到搜索栏中。
原因:我的电脑中SQL没有设置为自启动,一直是禁用状态,根据网上的提示进行操作,重启电脑就成功了。遇到问题卸载重装是下下策,不得已为之,尝试着去解决问题,也可以间接提升自己的能力。