1. --使用数据库
  2. use date
  3. go
  4.  
  5. --创建表班级表
  6. create table classInfo
  7. (
  8. classNo int primary key identity(1,1),--主键约束使用primary key identity
  9. className varchar(10) not null--非空约束
  10. )
  11. go
  12. --创建学员表
  13. create table stuInfo --标识列约束使用identity
  14. (
  15. stuNo int primary key identity(1,1),--主键约束要求主键数据唯一并且不允许为空
  16. stuname varchar(10)not null unique,--唯一约束使用unique关键字允许为空,但只能出现一个空值
  17. age int check(age>10 and age<100),--检查约束使用check设置年龄
  18. sex nchar(1)default'男',--默认约束
  19. class int foreign key references classInfo(classNo)--外键约束用于两表之间建立关系,需要指定引用主表的那一列
  20.  
  21. )
  22. go
  23. --插入数据
  24. insert into classInfo values('S2S147'),('S2S148')
  25. insert into stuInfo values
  26. ('田七',18,'女',null),
  27. ('张三',38,'女',null),
  28. ('王五',20,'女',null),
  29. ('赵六',30,'男',null)
  30.  
  31. --修改表中的数据
  32. update stuInfo set class=1
  33. --删除表中的数据
  34. delete stuInfo where stuNo=1
  35.  
  36. --修改朱茂深的年龄和性别
  37. update stuInfo set age=18,sex='男'where stuname='张三'
  38.  
  39. --查询表中的数据
  40. select * from stuInfo
  41. select * from classInfo
  42.  
  43. --查询性别为女的数据
  44. select * from stuInfo where sex='女'
  45.  
  46. --模糊查询使用like --查询'朱'字开头的名字
  47. select * from stuInfo where stuname like '张%'
  48.  
  49. --查询年龄1820之间的数据
  50. select * from stuInfo where age=18 or age=20
  51. --使用in的效果一样
  52. select * from stuInfo where age in(18,20)
  53. select * from stuInfo where age between 18 and 20
  54. --查询姓名年龄
  55. select '姓名'=stuname,'年龄'=age from stuInfo where age between 18 and 20
  56.  
  57. --查询男生的人数(使用聚合函数)
  58. select count(*) as 人数 from stuInfo where sex='男'
  59.  
  60. --sum(求和)、avg(平均值)、max(最大值)、min(最小值)、count(计算总数)
  61.  
  62. --查询男生女生分别多少人(分组)(group by 统计函数联合使用)
  63. select 性别=sex, 人数=count(*) from stuInfo group by sex
  64. --查询年龄1820之间的个数大于等于2的数
  65. select 性别=sex, 人数=count(*) from stuInfo
  66. where age in (18,20) group by sex
  67. having COUNT(*)>=2
  68.  
  69. --order by(作用是升降序 (ASC升从小到大排列)(Desc降)从大到小排列)
  70. select * from stuInfo order by age asc
  71. select * from stuInfo order by age desc
  72.  
  73. --使用top查询前三条数据
  74. --查询降序后的三条数据
  75. select top 3 * from stuInfo order by age desc
  76.  
  77. --查询出男生的 姓名 年龄 性别
  78. select 姓名=stuname,年龄=age,性别=sex
  79. from stuInfo,classInfo
  80. where stuInfo.class=classInfo.classNo and sex='男'
  81.  
  82. --内链接查询
  83. --查询 姓名 年龄 性别 班级
  84. select 姓名=stuname,年龄=age,性别=sex,班级=className
  85. from stuInfo inner join classInfo
  86. on stuInfo.class=classInfo.classNo
  87. where sex='男'
  88.  
  89. --左外连接查询使用(left join)
  90. select stuname,age,sex,className
  91. from stuInfo left join classInfo
  92. on stuInfo.class=classInfo.classNo
  93.  
  94. --右外连接查询 使用(right join)如果不满足条件的则返回null(空值)
  95. select stuname,age,sex,classname
  96. from stuInfo right join classInfo
  97. on stuInfo.class=classInfo.classNo
  98.  
  99. --全外连接查询使用(full outer join)outer可以不写
  100. select stuname,age,sex,classname
  101. from stuInfo full join classInfo
  102. on stuInfo.class=classInfo.classNo
  103.  
  104. --交叉链接查询(笛卡尔积)就是查询所指定要查询的值
  105. select stuname,age,sex,classname
  106. from stuInfo cross join classInfo
  107.  
  108. --自连接查询查询张三所在班级的所有学员信息
  109. select
  110. 姓名=s1.stuname ,
  111. 年龄=s1.age,
  112. 性别=s1.sex
  113. from stuInfo s1,stuInfo s2
  114. where s1.class=s2.class
  115. and s2.stuname='张三'
  116.  
  117. select
  118. 姓名=s1.stuname,
  119. 年龄=s1.age,
  120. 性别=s1.sex,
  121. 班级=c3 .className
  122. from stuInfo s1, stuInfo s2 ,classInfo c3
  123. where s1.class=s2.class
  124. and s2.stuname='张三'
  125. and s1.class=c3.classNo
  126.  
  127. --子查询
  128. select
  129. 姓名=stuname,
  130. 年龄=age,
  131. 性别=sex,
  132. 班级=class
  133. from stuInfo
  134. where class=(select class from stuInfo where stuname='张三')
  135.  
  136. select
  137. 姓名=stuname,
  138. 年龄=age,
  139. 性别=sex,
  140. 班级=(select classname from classInfo where classNo=class)
  141. from stuInfo
  142. where class=
  143. (select class from stuInfo where stuname='张三')

SQL 基本查询语句的更多相关文章

  1. SQL逻辑查询语句执行顺序 需要重新整理

    一.SQL语句定义顺序 1 2 3 4 5 6 7 8 9 10 SELECT DISTINCT <select_list> FROM <left_table> <joi ...

  2. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  3. python 3 mysql sql逻辑查询语句执行顺序

    python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...

  4. mysql第四篇--SQL逻辑查询语句执行顺序

    mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> < ...

  5. SQL Server SQL高级查询语句小结(转)

    --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select disti ...

  6. 45、SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  7. sql的查询语句的总结

    一:基本的查询sql 1:基本常用查询 select * from student; --select select all sex from student; --all 查询所有 select d ...

  8. 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: ...

  9. 第四篇:记录相关操作 SQL逻辑查询语句执行顺序

    http://www.cnblogs.com/linhaifeng/articles/7372774.html 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <selec ...

  10. SQL逻辑查询语句执行顺序

    阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELE ...

随机推荐

  1. [知乎]自己真是Know Nothing 历史上有哪些细思恐极的事件?

    作者:敖让链接:https://www.zhihu.com/question/38374479/answer/652432284来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  2. 数据库系统原理之SQL(四)

    数据库系统原理之SQL(四) 1. 数据更新 插入数据 INSERT-VALUES语句 #插入多条数据 insert [into] table_name (column_name,...) value ...

  3. abstract关键字及static关键字

    抽象关键字abstract 抽象类 在类前加上关键字abstract可以将此类变成抽象类.抽象类不允许通过new关键字实例化,但是可一通过其子类向上转型为其创建实例. 抽象类可以有抽象方法,也可以没有 ...

  4. 快速查看php文档技巧

    在php源码中看到注释中的相关链接后 Ctrl+鼠标,浏览器打开 将输入栏的“en”改为“zh”即可变为中文文档,其他语言类推

  5. laravel框架之增刪改查

    <?php namespace App\Http\Controllers\admin; use Illuminate\Http\Request as request; use App\Http\ ...

  6. 断开ssh链接在后台继续运行命令

    转载:http://blog.csdn.net/v1v1wang/article/details/6855552 对于linux运维,我们都是使用ssh登录到服务器,如果我们运行的任务需要很长时间或不 ...

  7. Django @csrf_exempt不能在类视图中工作(Django @csrf_exempt not working in class View)

    我在Django 1.9中有一个使用SessionMiddleware的应用程序.我想在同一个项目中为这个应用程序创建一个API,但是在做一个POST请求时,它不能使用@csrf_exempt注释. ...

  8. linux 环境 Xshell操作数据库

    一:采用sqlplus连接登录(确保安装了sqlplus) 1:先登陆进入到oracle的数据库的服务器环境下 2:切换到sqlplus操作:  sqlplus /nolog 3:conn /as s ...

  9. oracle在没

    db_user表中数据: name age nub 张三 13 13 张三 12 12 张三 12 13 张三 12 13 李四 12 12 李四 12 12 查询重复数据(一条) sql:selec ...

  10. UIDynamic物理引擎

    iOS开发拓展篇—UIDynamic(简单介绍) 一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟 ...