基础SQL语句整理
来源:互联网 发布:js获取index 编辑:程序博客网 时间:2024/05/29 15:29
好久没写sql语句了,面试的时候被怼到,超级郁闷:(
回来之后花了一个晚上怒补了sql的基本知识,
下面是参考的sql必知必会写出的基本sql语句,方便以后查看~~_(:з)∠)_
检索数据
SELECT a1, a2, a3FROM A;
检索所有数据
SELECT *FROM A;
去掉检索中重复的值
SELECT DISTINCT vend_idFROM A;
限制检索结果的行数
SELECT a1, a2, a3FROM ALIMIT 5; --这是一条注释
排序检索结果(DESC降序排列)
SELECT a1, a2, a3FROM AORDER BY a1 DESC, a2;
过滤检索结果
SELECT a1, a2, a3FROM Awhere a1 = 1;-- 其他过滤条件: >, <, BETWEEN, IS NULL
高级过滤
SELECT a1, a2, a3FROM AWHERE a1 = 1 AND a2 = 2;--AND 和 OR--AND优先级大于OR
SELECT a1, a2, a3FROM AWHERE a4 IN (1, 2, 3);
SELECT a1, a2, a3FROM AWHERE NOT a1 = 1;
通配符过滤
SELECT a1, a2, a3FROM AWHERE pro_name LIKE 'fish%';--找出所有fish开头的项--%fish%: 包含fish的项--f%h: f开头h结尾
拼接SELECT元素结果
SELECT Concat(a1, a2,'(', RTRIM(a3), ')')FROM AWHERE NOT a1 = 1;--RTRIM用来去除多余的空格
使用别名
SELECT Concat(a1, a2,'(', RTRIM(a3), ')') AS unitFROM AWHERE NOT a1 = 1;
常见的数据处理函数
提取字符串组成部分: SUBTRING()数据类型转换: CONVERT()取当前日期: CURDATE()SQL常用文本处理函数: ...(sql必知必会p67)
SQL聚集函数
AVG(): 返回某列的平均值COUNT(): 返回某列的行数SUM(): 返回某列值之和MAX(): 返回某列的最大值MIN(): 返回某列的最小值
创建分组
SELECT id, COUNT(*) AS NUMFROM AGROUP BY id;--GROUP BY出现在WHERE语句之后, ORDER BY语句之前
过滤分组后的数据
SELECT id, COUNT(*) AS NUMFROM AGROUP BY idHAVING COUNT(*) >=2;--过滤分组前的数据使用WHERE--HAVING结合GROUP BY使用
子查询
复合语句有时可以用内联结代替 P110
联结
关系表的设计就是要把信息分解成多个表;一类数据一个表;各个表通过某些共同的值互相关联;使用联结在多个关系表中SELECT数据;
SELECT a1, a2, a3FROM A, BWHERE A.b1 == B.b1;--其中a3在另一个表中--这种联结成为内联结
内联结的另一个语法
SELECT a1, a2, a3FROM A INNER JOIN BON A.b1 == B.b1;--检索的表之间存在关联
外联结
SELECT A.a1, B.a2FROM A LEFT OUTER JOIN BON A.b1 == B.b1;--用于没有关联行的情况--LEFT表示OUT JOIN左边的表--(选择左边的表的所有行)--还有一种FULL OUTER JOIN,全部关联
组合查询(执行多条查询语句后汇总)
SELECT a1, a2, a3FROM A;UNIONSELECT a4FROM A;--可以使用UNION ALL保留所有行
插入数据
INSERT INTO A( id, name, product)VALUES( 1, breavo, a1);
--复制一个表至另一个表INSERT INTO A( id, name, product)SELECT id, name, productFROM A_NEW;
--上条的简化语法CREATE TABLE B ASSELECT * FROM A;
更新数据
UPDATE ASET a1 = 2, a2 = 1WHERE id = 001;--删除某列的值,可将值SET为NULL
删除数据
DELETE FROM AWHERE id = 2;
创建表
CREATE TABLE A( id CHAR(10) NOT NULL, name CHAR(254) NOT NULL DEFAULT 1, product VARCHAR(1000) NOT NULL PRIMARY KEY project VARCHAR(1000) NOT NULL REFERENCES);
更新表
--给表增加一列数据ALTER TABLE AADD project CHAR(20);
使表中的某一列成为主键
ALTER TABLE AADD CONSTRAINT PRIMARY KEY(project);
设置外键
ALTER TABLE AADD CONSTRAINT FOREIGN KEY (project) REFERENCES B(project)
删除表
DROP TABLE A;
SQL视图
P155
使用存储过程
p166可以理解为SQL语句的封装
事务处理
使用事务处理,确保成批的SQL操作要么完全执行,要么完全不执行,用来维护数据库的完整性
事务(transaction)指一组SQL语句回退(roll back)指撤销执行SQL语句的过程提交(commit)将未存储的SQL语句结果写入数据库表保留点(savepoint)指事务处理中设置的临时占位符
事务用来管理的语句INSERTDELETEUPDATE
游标
作用:在检索出来的行中前进或者后退一行或者多行。
主键\外键
主键:保证一列(或一组列)中的值是唯一的外键:表中的一列,其值必须在另一表的主键中
索引(需要继续寻找资料)
--想象一本书后的索引CREATE INDEX pro_name_indexON A(pro_name);
阅读全文
0 0
- Sql基础语句【整理】
- 基础SQL语句整理
- sql基础部分语句整理
- 个人整理的sql语句--基础
- 整理的oracle实现的基础sql语句查询
- 把SQL语句比较基础的整理了一下
- 基础整理-分支语句
- 精妙SQL语句整理
- Sql语句小整理
- SQL 语句的整理!
- 精妙SQL语句整理
- 精妙SQL语句整理
- 精妙SQL语句整理
- 整理的sql语句
- 精妙SQL语句整理
- 精妙SQL语句整理
- 精妙SQL语句整理
- Sql 语句整理
- ansible的inventory文件含义
- 08.递归函数
- 三个营长与三个和尚
- Django 开发学习笔记(7)- 开发特定主题显示的页面
- Log4j的详细使用说明
- 基础SQL语句整理
- 先知XSS挑战赛 知识点提要
- Android---NDK开发系列之环境搭建和第一个NDK项目
- Ansible2:主机清单
- redis安装补充
- 莱特币与比特币的区别
- Hibernate总结
- 原型链及作用域知识图解
- java链表算法题一