六、常用的sql语句
1.sql语句的分类
- DDL:表的创建,删除,修改
- DML:数据的插入,删除,修改
- DQL:数据的查询
- DCL:数据控制语言,grant,revoke
2.主键、外键、候选键、超键
- 主键:作表的行的惟一标识的候bai选关键字。一个表只有一个主关键字; 主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键
- 外键:用于关联其他数据表的关系键
- 候选键:不含有多余属性的超键称为候选键
- 超键:在数据表中能唯一标识数据行属性的集合超键
3.sql约束
- 主键约束
- 非空约束
- 唯一约束
- 外键约束
- check约束:限制列中的值的范围
Id_P int NOT NULL CHECK (Id_P>0)
- 默认值约束
4. 关联查询
- 交叉连接(CROSS JOIN):没有任何关联条件,查询所有表
select * form a,b,c select * from a cross join b cross join c
- 内连接(INNER JOIN)
- 外连接(LEFT JOIN/RIGHT JOIN)
- 联合查询(UNION 与 UNION ALL)
- 全连接(FULL JOIN)
5.子查询的三种情况
- 外层查询
select id,uid,name from goods where uid = (select max(uid) from goods)
- from查询
SELECT COUNT(uid)
FROM (SELECT id,uid,action,currend,SUM(`value`) as val FROM from GROUP BY uid
) as tmp
WHERE tmp.val BETWEEN '0' AND '5'
- exists查询:先判断外层有没有,如果有就查询,否则没有就直接跳过
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测 行 的存在。
select cat_id,cat_name
from category
where exists (select * from goods where goods.cat_id=category.cat_id
);
6.in和exists的区别
in 确定给定的值是否与子查询或列表中的值相匹配;在查询的时候,首先查询子查询的表,然后将内表查询的结果和外表做一个笛卡尔积,然后按照条件进行筛选
exists:指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。(先查主表,再查子查询)
如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists
not in 和not exists:如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。
7.mysql中int(10)和char(10)以及varchar(10)的区别:
- int(10)的10表示显示的数据的长度,不是存储数据的大小;chart(10)和varchar(10)的10表示存储数据的大小,即表示存储多少个字符
- char(10)表示存储定长的10个字符,不足10个就用空格补齐,占用更多的存储空间
- varchar(10)表示存储10个变长的字符,存储多少个就是多少个,空格也按一个字符存储
8.drop、delete与truncate的区别
- delete语句执行删除的过程是每次从表中删除一行(DML)
- truncate一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的,不会激活删除触发器(DDL)
- drop删除表结构和数据(DDL)
9.union和union all
- UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型
- UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值(包括重复的列)
六、常用的sql语句相关推荐
- 经典SQL语句大全、50个常用的sql语句
50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...
- 常用经典SQL语句大全完整版--详解+实例 (存)
常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012 http://blog.sina.com.cn/s/blog_84 ...
- mysql 10分钟_10分钟入门mysql(含常用的sql语句,mysql常见问题及解决方案)
开发中常用的sql语句 1,创建一个数据库并指定编码格式 drop database if exists test;create database test default character set ...
- 50个常用mysql语句_50个常用的sql语句
50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...
- 常用的sql语句,sql使用大全
常用的sql语句,sql使用大全 我工作中常用到的sql 插入 查询 更新 介绍其他的sql SQL分类 基本的sql语句 高级查询运算词 我工作中常用到的sql 下面是我工作中常用的sql,每次都是 ...
- mysql 输出名称_MySQL常用的SQL语句//输出所有信息showfullfieldsfrom'表名称';//改表
MySQL常用的SQL语句 //输出所有信息 show full fields from '表名称'; //改表名 ALTER TABLE table_name RENAME TO new_tabl ...
- MYSQL中常用的SQL语句(增删改查)
MYSQL中常用的SQL语句 一.增删改查 1.新增 指定字段插入: INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VA ...
- java开发中常用的SQL语句
在实际开发过程中常用的sql语句, 以user_table为例. 1)创建语句如下: CREATE TABLE USER_TABLE (USER_ID VARCHAR2(8), USER_NAME V ...
- oracle数据库中最常用的sql语句
对SQL语句进行调整,往往有一项前期工作,就是定位最常用的SQL 语句.Oracle数据库可以从多个方面取得SQL语句.如从数据库自身的存储过程或者函数中取得,也可以从前台的应用程序中取得.所以,数据 ...
- vb mysql 语句_VB与数据库编程常用的SQL语句总结
SQL数据库介绍国庆假期 美好而短暂 现已正式结束 不忘初心,继续前行 今天我们来学习VB与数据库编程中的SQL语句. SQL简介 SQL数据库语言是一种通用的,功能强大的关系数据库语言,是操作数据库 ...
最新文章
- Centos Docker安装、升级、卸载
- 微众WeCross 跨链平台(10)使用场景
- UVa --10566
- 【BZOJ3295】动态逆序对,CDQ分治/BIT套权值线段树
- 虚拟机(centos系统)连接网络,xshell连接虚拟机
- C# 正则匹配 电话号码 和 座机号
- [转载] numpy.ma详解
- mybatis plus使用
- RuntimeError: Exporting the operator uniform to ONNX opset version 12 is not supported.
- 多维空间:对于一维到七维的理解
- win10安装steam有损计算机,win10系统steam安装更新失败的解决方法
- 用python制作电子时钟包装_使用电子水墨屏和树莓派制作的时钟,Epaper_clock
- 我是住在山里的小和尚,我把我的寺庙生活告诉大家[转载之2]
- 【小程序开发实战】使用WxJava实现手机号获取
- oracle 错误06512,处理ORA-06512错误
- R 语言 apply 系列函数
- DSP28379D_ePWM同步触发差分AD
- Hive内置函数与常用函数汇总
- 从1-100求质数 Python for else
- CAN BLF包解析和播包发送(二):CAN BLF包解析