用SQL语句操作数据
?
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的
编程语言,是一种
数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系
数据库
系统;同时也是数据库脚本文件的扩展名。
?
01.SQL语句书写规范
?
1.在SQL Sever中,SQL语句不区分大小写(数据库名,表名,列名,关键字) ,SQL编译器都识别
?
2.对表进行操作的时候,一定要使先用use关键字切换到对应的数据库
?
3.自增列不可以赋值
?
4.字符串和日期类型都需要单引号
?
5.起表名的时候,千万不要起得太好,例如不要使用User作为表名。
?
如果表名和关键字重复了,我们可以通过[]取消转义
?
6.通过Ctrl+R:可以显示和隐藏结果集窗口
?
02.新增数据注意事项
?
01.如果新增全部列,那么表名后可以不跟列名,但是要提供所有列的值,除非当前
?
列有默认值,那么也要给出default关键字。
?
02.如果只想给一张表中添加部分列,那么在表名后要跟上列名,并且需要保证除了你给出
?
的列的值之外,其他列都允许为空或者有默认值。
?
03.自增列不能赋值哟!
?
eg:
?
insert into goodPerson(stuName,stuAge,Email)?
?
values('张晓玲',20,default) --Email为自增列,且有ID列为自增列,我没有给它赋值,记住哟!
?
03. 一次性向一张表中插入多条数据的解决方案
?
方案一:insert into 目标表
?
select* from 原表
?
注意事项:如果目标中有自增列,那么不能使用*号。
?
eg:
?
insert into goodPerson2?
selectStuName, stuAge, stuAddress, stuLike, stuWishes from goodPerson
delete from goodperson2
?
方案二:select *into 目标表(不存在)
?
from 原表
?
注意事项:该方式只保留了数据和子自增列,但是主键等约束就都没有了。
?
eg:
?
select * into goodpersonbak
from goodperson
?
?
方案三(较常用):
?
eg:
?
insert into 目标表(存在)
?select '高一二班' union
?select '高一五班'
?
04. 使用T-SQL更新数据
?
1.以后大家见到update语句,一定要跟where条件,打死也要跟。
?
2.在SQL Server中null代表不知道,所以如果where后的限定条件不能用=和null做对比,必须使用is null
?
eg:如果要查找Email为null的学生信息.
?
select *from Student
where Email is null--切不可写成where Email=null
?
更新数据语法: update 表名 set 列名 =更新值 [where 更新条件]
?
eg1:在学生表中,把所有你的学生的性别改为0(女)
?
update Student set SSex=0
?
eg2:更新"成龙"为'李小龙'
?
update Student set name='李小龙'
?
where name='成龙'?
?
eg3:将"成龙" 改成"李小龙"且年龄改为25
?
update goodpersonbak set stuname='李小龙',age=25
?
where stuname='成龙'?
?
05. 别名的使用
?
别名方案一:
select msgAuthor as 留言人,msgContent as 留言内容
from Message
?
别名方案二:
?
select msgAuthor留言人,msgContent留言内容
from Message
?
别名方案三:
select 留言人=msgAuthor,留言内容=msgContent
from Message
?
将多列合并成一列显示
select msgAuthor+'____'+msgContent as 留言人说的留言是一种留言留言
from Message
?
05.delete和truncate删除键的使用
?
01.delete 后可以跟where条件,而truncate不行
?
02.delete删除数据的时候会记录日志,而truncate不会
?
03.delete删除表中所有数据库,id编号不会从1开始,而truncate会。