1:–创建数据库之前检查整个数据库(sysdatabases)内有没有重名数据库NEWBOOK,有就删掉。
–alter database NEWBOOK set single_user with rollback immediate
if exists(select*from sysdatabases where name=‘NEWBOOK’)
drop database NEWBOOK
go
create database NEWBOOK
字段同理,将sysdatabases改为sysobjects
2:–on用来存储数据文件
3:–主数据文件后缀为mdf
–辅数据文件用ndf
4:–log on存储数据库的日志文件(后缀ldf)
Add file创建下一个日志文件
5:–初始大小,最大大小,自动增长
size=8,maxsize=25,filegrowth=10%
–无限制增长maxsize=unlimited
6:filename='D:\Encode\SQL\DBFile\myDB…
–filename是文件地址
7:alter database myDB修改数据库
–新size必须大于当前size
alter database myDB
modify file(
name=myDB_Dat1,
maxsize=unlimited,filegrowth=1
)
name=‘myDB_Dat1’, --不能使用filename,不能加后缀名
8:alter database myDB
remove file myDB_Dat2
–删除文件用remove而不是drop
9:–不能在使用myDB数据库的时候去删除myDB数据库
10:filegroup group1
–创建文件组group1
11:–表的创建用table
create table student
( sno varchar(10)primary key,sname varchar(20),

ssex varchar(2),sage tinyint,

–tinyint占一个字节,数据范围是-128~127,int占四个字节
sdept varchar(50)
)
12:–primary key 表示关键字,数据不能为空(not null)是通过唯一索引对给定的一列或多列强制实体完整性的约束,每个表只能有一个约束
13:给表增加字段用add
14:drop column [address]删除address这个列字段
column是视图中列使用的名称
15:–使用Insert语句向表中插入记录
insert student(sno,sname,sage,ssex,sdept) values(‘001’,‘王力’,21,‘m’,‘CS’)
16:–用update修改数据表中的数据比如改年龄改名字等
请把course表中课程号为c02的课程名改为计算机网络。
(u单元格值修改a行列修改)
update course set cname=‘计算机网络’where cno=‘c02’
17:用delete语句删除表中的记录
Delete student where sname=’王力’
如果delete不包含where子句那将删除delete全部
18:每一条T-SQL语句都由一个谓词开始,该谓词描述这条语句要产生的动作,如select或delete关键字,谓词后紧接着一个或多个子句,子句给出了被谓词作用的数据或提供谓词动作的详细信息,每一条子句都由一个关键字开始
19:局部变量命名要@开头,声明局部变量用declare,赋值局部变量用select或者set
Declare @b int
Select/set @b=1
20:优先级not>and>or
21:%表示零个或更多字符的任意字符
_表示任何单个字符
[]指定范围
[]排除范围
22:distinct去重
请查找选课学生的学号,并去重。
select distinct sno from sc
23:select:指定由查询返回列,它是一个逗号分隔的表达式列表
Into:创建新表并将查询行从查询插入新表中
From:指定从其中检索行的表,检索来源
Where:限制返回行的搜索条件
Group by:将结果集分成组
Having:指定组或聚合的搜索条件
Order by:结果集中的行排列的顺序,默认asc升序,desc降序
Older by age desc
24:select
显示表中所有列
25:between and/not between and进行范围查询
26:in/not in指定列表搜索条件
Where cno in(‘c01’,’c02’)
27:where子句链接(两个)
–请查找选修C语言的学生的学号。
select sno
from sc join course 链接sc和course表
on sc.cno=course.cno on两个表的共同之处
where course.cname=‘C语言’ 限制语句
28:where子句链接(三个)
法一:
select sname
from student,sc,course
where student.sno=sc.sno and course.cno=sc.cno and cname=‘数据库’
–from写出相关表,where写出表的联系和限制条件
法二:
select sname from student
join sc on sc.sno=student.sno
join course on sc.cno=course.cno
where cname=N’数据库’
–from写出来源,join on写出表联系,where写出限制条件
29:–查询选修’c05’课程,并且是女生的学生的学号和成绩,并按成绩降序,学号的升序排列。
select sno,grade
from sc
where cno='c05’and sno in (select sno from student where ssex=‘m’
)
order by grade desc,sno asc
30:–请查找出选了课的学生的姓名,课程名和成绩。
select sname,cname,grade
from sc,course,student
where course.cno=sc.cno and student.sno=sc.sno
31:grade is not null是成绩不为null的意思
32:多表链接时候要注意重合表的声明,说清楚是那个的表
33:左外连接就是以左边表为基准,行数列数必须是左边表的数目,不论右边空了还是多了
右外连接就是以右边表为基准,行数列数必须是右边表的数目,不论左边空了还是多了
内连接就是取两个表都不为null的地方
交叉连接是两个表的笛卡尔积的另一个名称,即两个表的交叉乘积
内连接(普通连接或者自然连接)格式:
Select …(目的)
From…(目的所在表)
Join…(关联表)on…(关联关系)
Join…on…
Where…(限制条件)
Where子句连接格式
Select…
From…(涉及的所有表)
Where…and…(所涉及表的关系)and…(限制条件)
  left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
  right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
  inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
  full join:外连接,返回两个表中的行:left join + right join。
  cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。
关键字: on
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用left jion时,on和where条件的区别如下:
① on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
② where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
where语句与inner join确实能得到相同的结果,只是效率不同
现在要对两张表做连接查询,连接一般需要写条件,where 或者 on 后
34:–.列出没有选课的学生姓名(提示:使用not in)。
select sname
from student
where sno not in(select sno from sc)
在student表有在sc表里没有的就是没有选课的
35:–.查询既选修了c01又选修了c02的学生的学号。
select sno
from sc
where cno=‘c01’and sno in(
select sno
from sc
where cno=‘c02’)
使用两个表的嵌套
36:group by将表划分为不同的组,除了聚集函数,其他所出现的字段一定要在group by子句中有定义才行
37:分组之前用where关键字,分组之后用having关键字
38:
union并查询(选了这个或者选了那个)
Intersect交查询(既选了这个又选了那个)
Except补差查询(选择了这个但是没有选择哪个)
39:alter(房间)与update(家具)的区别
Alter增加表字段,修改表字段
Update 修改字段的值
40:delete(小)和drop(大)的区别
Delete 只删除表里的数据不删除表的结构
Drop 删除表的结构被依赖的属性、触发器、索引,表的结构和数据都删除
41:alter和update的区别
Alter修改数据库中的对象(表,数据库,视图)
Update 修改表中数据的语句
42:DML与DDL的区别
DML(Data Manipulation Language)数据操纵语言
适用范围:对数据库中的数据进行一些简单的操作,比如insert,delete,update,select
DDL(Data Definition Language)数据定义语言
适用范围:建库,建表,设置约束 create,drop,alter
43:count数量,avg平均,sum和
44:–查询平均分高于70分的学生的学号。
select sno from sc group by sno having avg(grade)>70
45:–请列出CS系男生,女生各有多少人。
select N’男’ 性别,count() 人数 from student where ssex=‘m’and sdept=‘cs’
union
select N’女’ ,count(
) from student where ssex='f’and sdept=‘cs’
46:-- 列出总分最低的学生的学号。
select top 1 sno from sc group by sno order by sum(grade)
47:where和having都是限制条件,但是where是对查询的行数据进行条件限制,而having
是对group by 分组后的聚合函数值进行条件限制
48:书写顺序:Select>from>where>group by>having>order by
执行顺序: From>where>group by>having>select>order by
49:where不能使用聚合函数,但是where和Group by可同时出现,先限制条件后分组
50:order by 可以出现表里有但是select中没有的字段
order by 可以按聚合结果排序
order by 可指定多个排序字段,并且每个字段都可以用asc,desc指明升降序,不指明默认降序

SQL增删改查知识点总结相关推荐

  1. 测试开发面经(六)SQL增删改查

    文章目录 测试开发面经(六)SQL增删改查 6. 查询(续) 53).查询未授课教师的姓名和系 54).按职称显示软件学院的教师人数. 55).查询成绩高于<数据结构>平均成绩的学生信息. ...

  2. sql增删改查_快速搞定数据库增删改查|附思维导图

    数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. 下面是关 ...

  3. sql增删改查_面试速记之数据库增删改查|附思维导图

    数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实.下面是关于 ...

  4. sql增删改查_增删改查!sql2pandas方法手册

    数据分析 Author:louwill Machine Learning Lab 作为一名数据分析师,利用SQL熟练的取数是一项必备的基础能力.除了SQL以外,Python的pandas也为我们提供了 ...

  5. sql增删改查_Sirvia 一套web端增删改查系统

    众所周知,后端开发的一个重要组成部分就是数据库,数据的作用简单来说就是将网站的用户数据存起来,至于数据库的什么特性,一些奇技淫巧这里就不便赘述了,因为今天的主角是Sirvia--一套web端增删改查系 ...

  6. Sql增删改查(包含Sql Server基础知识)

    作者:云都小生 简述 Sql是一种标准的语言,几乎在所有的数据库中,如何访问.操作数据,都是遵循Sql的标准. 在了解语法之前,我们必须先熟悉在SSMS上的操作,例如附加数据库.分离数据库.备份数据库 ...

  7. mybatis动态SQL增删改查

    我们在对数据库进行增删改查的时候,很多时候我们并不确定我们要进行传入的参数的个数,种类以及是否为空. 此时我们就需要用到mybatis动态sql来对数据库进行灵活的交互. 步骤一:导入相关jar包,编 ...

  8. SQL 增删改查(具体)

    一.增:有3种方法 1.使用insert插入单行数据: insert [into] <表名> [列名] values <列值>insert into Strdents (nam ...

  9. Qt/C++ 数据库SQL 增删改查 语句示例

    注:文中例子均使用QSQLITE 一,增 QSqlQuery query;query.prepare(QString("INSERT INTO playList%1(songname,son ...

  10. 常用的四种sql增删改查

    增: String sql="insert into employees(id,username,age) values(22,2,2)"; 删: String sql2=&quo ...

最新文章

  1. 《那些年啊,那些事——一个程序员的奋斗史15》
  2. Intellij idea 快捷键 生成序列化ID
  3. 中国古代道家思想与网页重构的思考
  4. [Jscript]Js导出Excel
  5. 现代计算机主要有哪些方面的应用,现代汉字主要应用于哪些方面;汉字的整理有哪些内容?...
  6. 想起“不能什么都是你来干”
  7. colmak键盘_萌神进化 IKBC 新POKER2机械键盘体验
  8. idea的设置,导致list长度只有1000
  9. 【架构风格 架构模式 设计模式 概念】
  10. 邮件服务器SASL TLS 反垃圾邮件系统
  11. nuxt+tsx项目 class报错
  12. Java 存牌洗牌发牌看牌
  13. python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇
  14. 阿里云服务器绑定域名、esc绑定域名、域名备案
  15. 关于查看不了ip地址的问题解决
  16. 爬虫之爬取豆瓣排行榜
  17. Centos7 挂载新硬盘(SSD|M.2)的操作方法
  18. ubuntu 本地更新php,Linux_Ubuntu系统怎么手动进行更新升级?,Ubuntu 系统有自己的自动更新升 - phpStudy...
  19. ps给图片加钢印方法
  20. pdf在线转jpg格式的转换方法分享

热门文章

  1. VirtualBox安装增强工具时:Unable to install guest additions: unknown filesystem type 'iso9660'
  2. 属性编辑器PropertyEditor
  3. MATLAB颜色的使用
  4. 直接在pocket pc上编译c#程序
  5. 支持p2p的m3u8.php,m3u8视频播放器集成p2p加速源码分享
  6. Qt文档阅读笔记-trimmed()与simplified()官方解析与实例
  7. linux安装硬盘阵列卡驱动,centos7 RAID磁盘阵列卡驱动安装图文教程
  8. From Intrusion Detection to Attacker Attribution: A Comprehensive Survey of Unsupervised Methods翻译
  9. opencv 应用程序无法正常启动0xc000007b
  10. Unity 之 Scorll Rect 动态循环列表