SQL 基本查询语句
--使用数据库
use date
go --创建表班级表
create table classInfo
(
classNo int primary key identity(1,1),--主键约束使用primary key identity
className varchar(10) not null--非空约束
)
go
--创建学员表
create table stuInfo --标识列约束使用identity
(
stuNo int primary key identity(1,1),--主键约束要求主键数据唯一并且不允许为空
stuname varchar(10)not null unique,--唯一约束使用unique关键字允许为空,但只能出现一个空值
age int check(age>10 and age<100),--检查约束使用check设置年龄
sex nchar(1)default'男',--默认约束
class int foreign key references classInfo(classNo)--外键约束用于两表之间建立关系,需要指定引用主表的那一列 )
go
--插入数据
insert into classInfo values('S2S147'),('S2S148')
insert into stuInfo values
('田七',18,'女',null),
('张三',38,'女',null),
('王五',20,'女',null),
('赵六',30,'男',null) --修改表中的数据
update stuInfo set class=1
--删除表中的数据
delete stuInfo where stuNo=1 --修改朱茂深的年龄和性别
update stuInfo set age=18,sex='男'where stuname='张三' --查询表中的数据
select * from stuInfo
select * from classInfo --查询性别为女的数据
select * from stuInfo where sex='女' --模糊查询使用like --查询'朱'字开头的名字
select * from stuInfo where stuname like '张%' --查询年龄18到20之间的数据
select * from stuInfo where age=18 or age=20
--使用in的效果一样
select * from stuInfo where age in(18,20)
select * from stuInfo where age between 18 and 20
--查询姓名年龄
select '姓名'=stuname,'年龄'=age from stuInfo where age between 18 and 20 --查询男生的人数(使用聚合函数)
select count(*) as 人数 from stuInfo where sex='男' --sum(求和)、avg(平均值)、max(最大值)、min(最小值)、count(计算总数) --查询男生女生分别多少人(分组)(group by 统计函数联合使用)
select 性别=sex, 人数=count(*) from stuInfo group by sex
--查询年龄18到20之间的个数大于等于2的数
select 性别=sex, 人数=count(*) from stuInfo
where age in (18,20) group by sex
having COUNT(*)>=2 --order by(作用是升降序 (ASC升从小到大排列)(Desc降)从大到小排列)
select * from stuInfo order by age asc
select * from stuInfo order by age desc --使用top查询前三条数据
--查询降序后的三条数据
select top 3 * from stuInfo order by age desc --查询出男生的 姓名 年龄 性别
select 姓名=stuname,年龄=age,性别=sex
from stuInfo,classInfo
where stuInfo.class=classInfo.classNo and sex='男' --内链接查询
--查询 姓名 年龄 性别 班级
select 姓名=stuname,年龄=age,性别=sex,班级=className
from stuInfo inner join classInfo
on stuInfo.class=classInfo.classNo
where sex='男' --左外连接查询使用(left join)
select stuname,age,sex,className
from stuInfo left join classInfo
on stuInfo.class=classInfo.classNo --右外连接查询 使用(right join)如果不满足条件的则返回null(空值)
select stuname,age,sex,classname
from stuInfo right join classInfo
on stuInfo.class=classInfo.classNo --全外连接查询使用(full outer join)outer可以不写
select stuname,age,sex,classname
from stuInfo full join classInfo
on stuInfo.class=classInfo.classNo --交叉链接查询(笛卡尔积)就是查询所指定要查询的值
select stuname,age,sex,classname
from stuInfo cross join classInfo --自连接查询查询张三所在班级的所有学员信息
select
姓名=s1.stuname ,
年龄=s1.age,
性别=s1.sex
from stuInfo s1,stuInfo s2
where s1.class=s2.class
and s2.stuname='张三' select
姓名=s1.stuname,
年龄=s1.age,
性别=s1.sex,
班级=c3 .className
from stuInfo s1, stuInfo s2 ,classInfo c3
where s1.class=s2.class
and s2.stuname='张三'
and s1.class=c3.classNo --子查询
select
姓名=stuname,
年龄=age,
性别=sex,
班级=class
from stuInfo
where class=(select class from stuInfo where stuname='张三') select
姓名=stuname,
年龄=age,
性别=sex,
班级=(select classname from classInfo where classNo=class)
from stuInfo
where class=
(select class from stuInfo where stuname='张三')
SQL 基本查询语句的更多相关文章
- SQL逻辑查询语句执行顺序 需要重新整理
一.SQL语句定义顺序 1 2 3 4 5 6 7 8 9 10 SELECT DISTINCT <select_list> FROM <left_table> <joi ...
- 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?
如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- mysql第四篇--SQL逻辑查询语句执行顺序
mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> < ...
- SQL Server SQL高级查询语句小结(转)
--select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select disti ...
- 45、SQL逻辑查询语句执行顺序
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...
- sql的查询语句的总结
一:基本的查询sql 1:基本常用查询 select * from student; --select select all sex from student; --all 查询所有 select d ...
- NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现
异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: ...
- 第四篇:记录相关操作 SQL逻辑查询语句执行顺序
http://www.cnblogs.com/linhaifeng/articles/7372774.html 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <selec ...
- SQL逻辑查询语句执行顺序
阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELE ...
随机推荐
- SSM框架之AOP、动态代理、事务处理相关随笔
AOP: 原理:底层利用动态代理(两种动态代理技术都使用了) 两种实现方案: 第一种:JDK动态代理技术 实现的InvocationHandler接口,要想实现某个类的动态代理对象,必须有接口有实现类 ...
- [Codeforces 1214A]Optimal Currency Exchange(贪心)
[Codeforces 1214A]Optimal Currency Exchange(贪心) 题面 题面较长,略 分析 这个A题稍微有点思维难度,比赛的时候被孙了一下 贪心的思路是,我们换面值越小的 ...
- getopt_long函数解析命令行参数
转载:http://blog.csdn.net/hcx25909/article/details/7388750 每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用 ...
- HNUSTOJ-1698 送外卖(TSP问题 + 状态压缩DP)
1698: 送外卖 时间限制: 1 Sec 内存限制: 128 MB提交: 123 解决: 28[提交][状态][讨论版] 题目描述 在美团和饿了么大行其道的今天,囊中羞涩的小周和小美,也随大流加 ...
- 搜索专题: HDU1428漫步校园
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- numpy.random.randn()和numpy.random.rand()
1 numpy.random.rand() (1)numpy.random.rand(d0,d1,…,dn) rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1 dn表格每个维度 返回 ...
- 自己写的SqlHelper,提示在调用"Fill"前,SelectCommand 属性尚未初始化.错误
namespace 操作数据{ class SqlHelper { public DataSet SqlTODs(string cmdstring) { ...
- MIT-线性代数公开课
本博客是学习MIT-线性代数笔记,Gilbert Strang大神讲的通俗易懂,感兴趣的可以观看视频 其中习题集请点击 01)方程组的几何解释 02)矩阵消元 03)乘法和逆矩阵 04)A的LU分解 ...
- FPGA引脚锁定 注意err和高阻状态
1.fpga没有用的的管脚一定要设置成高阻状态设置路径如下: Assignmen->Device->Device&Pin Option->Unused pins->As ...
- fpga配置方式 .jic固化为ps模式
FPGA不同下载方式的区别[扫盲]以及如何利用AS模式固化程序(转载) 主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式: AS由FPGA器件引导配置操作过程,它控制着 ...