SQL笔记一

发布于:2025-05-16 ⋅ 阅读:(15) ⋅ 点赞:(0)

SQL的分类

DDL(数据定义语言):CREATE(创建) ALTER(修改) DROP(删除结构) RENAME(重命名) TRUNCATE(清空)

DML(数据操作语言,针对记录的操作行为):INSERT(增) DELETE(删) UPDATE(修改) SELECT(查询)

DCL(数据控制语言):COMMIT(提交)ROLLBACK(回到上一步,撤销)SAVEPOINT(设置保存点)GRANT(设置权限)REVOKE(回收权限)

基本的SELECT语句

*:表示表中的所有字段或列,SELECT *FROME XXX即显示XXX表中所有的列;

查询表中特定几列的内容(结果集):SELECT 列1 ,列2 FROME表;

列的别名(别名可以是汉字):SELECT 列1 别名1 ,列2 AS 别名2,列3 “别名3”FROME表;

别名1和别名3 的区别是别名3双引号内可以包含空格;

去除重复行(某属性有几种值):SELECT DISTINCT 列1FROME 表;

                                                      SELECT DISTINCT 列1,列2FROME 表;(组合不重复)

                                                      SELECT 列1DISTINCT 列2FROME 表;(错误)

空值null参与运算:null不等于0,“ ”,“null”;

                               无论何种计算,结果也为null;

                               解决方法:将列1替换为IFNULL(列1(值为null),0)参与运算;

列名与保留字、关键字重复:用着重号``标识出来,`列名`;

查询常数:SELECT‘XX公司’,常数c,列名1,列名2FROME 表;结果是新增两列常数,会为每                       一行新增常数匹配项;

显示表结构:DESCRIBE(DESC) 表;显示表中字段的详细信息;

过滤数据(查询满足条件的数据):SELECT  * FROME 表 WHERE 列=‘XX’/常数(大于小于也                                                              可以作为条件):WHERE一定要紧挨着在FROME的后面

比较运算符

字符串存在隐式转换,如果转换数值不成功,则看做数值0

只要有null参与比较结果均为null。因此不能查询筛选值为null的元祖。查询机制是满足条件的元祖为1,不满足条件的元祖为0,最后显示元组值为1的项。因此值为null的项并不能显示。

查询在条件一与条件二之间的数据:between 条件1 and 条件2 ,且条件1必须是下限,条件2 是上限,否则没有查询结果。

列的别名只能在ORDER BY使用,不能在WHERE中使用。因为执行顺序是先执行FROM 和WHERE再执行SELECT,最后执行ORDER BY。WHERE要写在DROM之后在ORDER BY之前。

分页:每页显示pagesize条记录,此时显示第pageno个页面,公式如下:LIMIT (pageno-1)*pagesize,pagesize。

声明顺序: SELECT...WHERE...ORDER BY...LIMIT。

可以在FROM中给表起别名,在SELECT和FROM中使用别名,但是一旦在SELECT或WHERE中使用了别名就一定要使用别名,查询结果依然显示原名。

如果实现n个表的多表查询,查询条件至少有n-1个。