MSSQLServer基础02(SQL语句入门(脚本、命令))

时间:2023-01-22 20:03:25

SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言

SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法。

SQL语句中字符串用单引号、单等号。
select *、SeLeCT *:
SQL语句是大小写不敏感的,不敏感指的是SQL关键字,字符串值还是
大小写敏感的(大小写是否敏感取决于具体的数据库排序规则设置)
--在数据库中两个'表示一个‘    【  ''  转义 ‘】

-------drop database MySchool
create database MySchool
on
(
--------括号一定是圆括号
name='MySchool_data',------------数据库名称
filename='d:\MySchool_data.mdf',----------物理文件名
size=5mb,----------初始大小
maxsize=10mb,--------------最大大小
filegrowth=15% --------------主文件增长率
)
log on
(
name='MySchool_log',----------------日志文件名
filename='d:\MySchool_log.ldf',---------------日志物理文件名
maxsize=4mb,-----------------最大大小
size=2mb,
filegrowth=1mb
)
go


use MySchool
go
-------drop table Class
create table Class
(
cId int identity(1,1) primary key,
cName nvarchar(50) not null,
cDesciption text
)
-------------drop table student
create table Student
(--------------创建学生信息表
sId int identity(1,1) primary key,-----------------自动编号
sClassId int not null,-----------------班级外键
sName nvarchar(50) not null,
sAge int not null,
sNo numeric(18,0),-----------------------身份证号,十八位数字,小数为
sSex char(2) not null,
sEmail varchar(50)
)


==============================================================================================

介绍生成脚本工具

数据库→右键→任务→生成脚本
可选择生成什么样的脚本
选择生成的数据库版本
是否包含某些脚本等
是否生成带数据的脚本(2005、2008都有该功能,express没有)


简单数据插入insert

向表中插入一行(该行的每一列都有数据)
insert into 表(列名,列名) values(值1,值2)
insert语句可以省略表名后的列名,但是不推荐。
Insert into 表 values(值1,值2)

简单数据更新(数据修改)

更新一个列:update Student set sSex = ‘男’
更新多个列: update  Student set sSex ='女',sAge = 18,sBirthday='1989-8-8'
更新一部分数据: update  Student set sClassId= 4 where sClassId = 1,用where语句表示只更新Name是’tom’的行,注意SQL中等于判断用单个=,而不是==。
Where中还可以使用复杂的逻辑判断update Student set sAge=30 where sName='华佗' or sAge<25 ,or相当于C#中的||(或者)
所有学生的年龄加1update Student set sAge = sAge + 1
update Student set sClassId=6
where (sAge>20 and sAge<30) or(sAge=50)
Where中可以使用的其他逻辑运算符:(||)or、(&&)and、(!)not、<、>、>=、<=、 <>(或!=)等

优先级:
not and or
用小括号可以改变优先级.


简单数据删除

删除表中全部数据:DELETE  FROM  Student。
Delete只是删除数据,表还在,和Drop Table不同。
Delete 也可以带where子句来删除一部分数据:DELETE FROM Student WHERE sAge > 20  

--=======使用delete from 表名与truancate table 表名,都能把表中的数据全部删除-======
--区别:
--1.delete 语句删除数据的时候,自动编号没有恢复到默认值。但是truancate语句重新设置了自动编号
--2.通过truncate语句删除表中的数据的时候,只能一次性都清空,不能根据条件来删除,而delete可以根据条件来删除。
--3.truncate语句清空表中的数据时,速度(性能)比delete语句快的多的多的多。
--4..truncate语句不触发delete触发器。