SQL Server安装、快捷键及脚本入门【数据库系统概论实例适用】

安装

看的下边这个博客,一步步安装下来就成功了

https://blog.csdn.net/slyh_td/article/details/83474486

快捷键

填加注释: Ctrl-K、C

去掉注释:Ctrl-K、U

运行:F5

基本SQL语句

点击新建查询,就可以直接输语句了

1、基本表的删除定义与修改

--在hanhhh_19中新建Student表
use hanhhh_19
create table Student
(
sno char(9) primary key,   /*列级完整性约束条件*/
sname char(20) unique,   /*sname取唯一值*/
ssex char(2),
sage smallint,
sdept char(20)
);

--在hanhhh_19中新建Course表
use hanhhh_19
create table Course
(
cno char(4) primary key,
cname char(40) not null,    /*列级完整性约束条件,cname不能为空*/
cpno char(4),
ccredit smallint,
foreign key (cpno) references Course(cno)  /*表级完整性约束条件,cpno是外码,被参照表是Course,被参照列是Cno*/
);

--在hanhhh_19中新建SC表
use hanhhh_19
create table SC
(sno char(9),
cno char(4),
grade smallint,
primary key(sno,cno),
foreign key(sno) references Student(Sno), /*表级完整性约束条件*/
foreign key(cno) references Course(Cno)
)
/*向Student表中添加列*/
alter table Student
add s_entrance Date;

--将年龄的数据类型由字符串改为整数
alter table Student 
alter column sage int;

--添加课程名称必须取唯一值的条件
alter table Course 
add unique(cname);

2、表中内容的添加、删除、修改 

<--插入元组
insert 
into Course(cno,cname)
values(1,'数学')
insert 
into SC(sno,cno)
values('201700',1)

<--插入子查询结果
create table Dept_age
(Sdept char(15),
Ave_age smallint);
insert 
into Dept_age(Sdept,Ave_age)
select Sdept,avg(Sage)
from Student
group by sdept

<--修改数据
<--修改多个元组的值
update Student
set Sage=22
where Sage=20

<--带子查询的修改语句
update SC
set grade=0
where sno in (
select sno
from Student
where sdept='IS')

<--删除
<--删除某一个元组的值
delete
from Student
where sno=201703

<--带子查询的删除语句
delete
from student
where sno in (
select sno
from student
where sdept='CS'
)

2、索引的建立与删除 

一些小问题

1、删除基本表时使用关键字restrict和cascade报错,“CASCADE"附近有语法错误的原因

原因:SQL Server不支持这两个关键字

--删除基本表
drop table Student restrict;

2、自己新建数据库hanhhh_19,建立表后不在对应的数据库中

此时应该在master里边

解决方法:在脚本最前端应写use hanhhh_19,再继续建表

3、按上一步操作文件资源管理器中还是看不到自己建的表

右键点击hanhhh_19->表,刷新

4、对象名无效

我没有运行,看到下边有红色的下划线就以为有错想把它改掉,,,,,但是其实没有错误

解决方法:

1、先运行一下看报不报错

2、如果运行报错,检查左上角,这个hanhhh_19处是不是master,是的话改成你现在用的数据库就可以解决了

5、rename附近有语法错误

运行下边代码的时候出来的。。。。查询发现这种用法在SQL server中不行(。。。SQL server真的限制好多,许多错误都是因为不支持)

--修改索引
alter index SCno rename to ScSno;

6、为 DROP INDEX 语句指定表名和索引名

本来是照着书上打的,但是出错了

drop index Stusno 

解决方法:(注意格式)

--删除索引Student表中的Stusno
drop index Stusno on Student;

7、消息 8152,级别 16,状态 4,第 1 行将截断字符串或二进制数据。语句已终止 

插入的值长度超过了一开始定义的char(20)之类的长度

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值