SQL Server创建库,表步骤和基本操作语句

SQL Server2012创建库步骤和相关基本操作语句:
WIn+R输入cmd,进入dos系统,启动SQL Server服务,语句为:net start mssqlserver(跟mysql差不多,启动mysql语句为net start mysql)
打开软件Management Studio12.0(上面有扳手的图标)
接着连接,选择windows身份验证,身份下面选择数据库引擎浏览更多
创建数据库:
点击新建查询
输入代码:(不区分大小写)
CREATE DATABASE person
ON PRIMARY
(NAME=‘person_data’,
FILENAME=‘e:\person.mdf’,
SIZE=25,
MAXSIZE=100,
FILEGROWTH=15%)
LOG ON
(NAME=‘person_log’,
FILENAME=‘e:\person.ldf’,
SIZE=10,
MAXSIZE=20,
FILEGROWTH=10%)
其中person为数据库名,可任意取名;
FILENAME=“e:\person.mdf”,这里写入路径,文件目录,我建立在e盘,后缀为.mdf
SIZE和MAXSIZE为数据库大小和最大容量;可以加单位MB,也可以不加;
FILEGROWTH为数据库增长量为15%;
FILENAME=‘e:\person.ldf’,为日志文件路径;
SIZE=10,
MAXSIZE=20,
FILEGROWTH=10%和以上含义一样;
创建好数据库,选中所编写的代码,执行,执行成功,点击数据库刷新,就可以看到我们自己新建的数据库person;在e盘可以看到我们建立的.mdf和.ldf文件(这个是在数据库刷新后看到的,并非之前建立好的)

然后创建表(不过在创建表之前要使用所创建的数据库,即use person)
创建表
create table students(
Sno char(5) primary key,
Sname varchar(20) not null unique,
Sage int check(Sage>10 and Sage<30),
Ssex char(2) check(Ssex=‘男’ or Ssex=‘女’),
Sdept varchar(20),
Saddress varchar(50)
)
students为表名(任意取),primary key为主键,一张表只能有一个主键;
varchar(20)表示字符长度;
插入数据:
insert into students(Sno,Sname) values(‘00001’,‘zhangsan’)
insert into students(Sno,Sname,Sage,Sdept,Saddress) values(‘00002’,‘lisi’,20,‘computer science’,‘sichuang’)
insert into students(Sno,Sname,Sage,Sdept,Saddress) values(‘00003’,‘wangwu’,21,‘software engineer’,‘chongqing’)
insert into students(Sno,Sname,Sage,Sdept,Saddress) values(‘00004’,‘zhaoliu’,21,‘software engineer’,‘chongqing’)
insert into students(Sno,Sname,Sage,Sdept,Saddress) values(‘00005’,‘qianqi’,22,‘computer science’,‘beijing’)
插入四个学生的信息;
然后展示表中的数据:
select * from students;//将展示已插入的所有学生信息,它等同于select Sname ,Sno,Sdept,Saddress,Ssex,Sage from students;
点击person数据库,刷新,就可以看到我们所建立的表;

然后类似的创建一张课程表courses,并插入数据;
create table courses(
Cno char(5) primary key,
Title varchar(20) not null,
Credit int
)
insert into courses(Cno,Title,Credit) values(‘0001’,‘sql server’,4)
insert into courses(Cno,Title,Credit) values(‘0002’,‘C’,4)
insert into courses(Cno,Title,Credit) values(‘0003’,‘java’,4)
insert into courses(Cno,Title,Credit) values(‘0004’,‘C++’,4)
insert into courses(Cno,Title,Credit) values(‘0005’,‘数据结构’,4)
select * from courses
修改数据:
update courses set 字段 where +条件(条件为布尔类型);
eg:修改数据结构的学分为5
update courses set Credit=5 where Title=“数据结构”

再建立一张选课表sc,插入选课信息;
create table sc(
Sno char(5),
Cno char(5),
Score float,
primary key(Sno,Cno),
foreign key(Sno) references students(Sno),//外键引入;
foreign key(Cno) references Courses(Cno)
)
insert into sc(Sno,Cno,Score) values(‘00003’,‘0002’,56)
insert into sc(Sno,Cno,Score) values(‘00003’,‘0003’,78)
insert into sc(Sno,Cno,Score) values(‘00003’,‘0005’,96)
insert into sc(Sno,Cno,Score) values(‘00004’,‘0002’,59)
insert into sc(Sno,Cno,Score) values(‘00004’,‘0003’,79)
insert into sc(Sno,Cno,Score) values(‘00004’,‘0004’,94)
insert into sc(Sno,Cno,Score) values(‘00005’,‘0001’,76)
insert into sc(Sno,Cno,Score) values(‘00005’,‘0003’,88)
insert into sc(Sno,Cno,Score) values(‘00005’,‘0005’,97)
select * from sc
通过三张表,我们可以用SQL语句查询一些东西,单表查询和多表查询;
(子查询和嵌套查询)

/从选课表中选取课程号为0005的最高分;
select max(Score)from sc where Cno=‘0005’
/
/选课的总人数
select count(distinct Sno) from sc;
/
distinct去重,去掉重复的;

/选择课程数大于等于2的学号
select Sno from sc group by Sno having count(
)>=2;*/group by 表示分组;
/每门课程多少人选择
select Cno,count(Sno) from sc group by Cno;
/

/学号00003选修的学分总数
select Sno,sum(Credit) from sc,courses where Sno=“00003” and sc.Cno=courses.Cno;
/
sum()//求和函数;
max()//最大值;
min()//最小值;
avg()//求平均数;
/选修的总学分数
select Sno,sum(Credit) from sc,courses where sc.Cno=courses.Cno;
/
/*
/选取学号在选课表选择了课程号为0002的学生的地址;
select Saddress
from students
where Sno in(select Sno from sc where Cno=“0002”);
/

/选取学号在选课表选择了课程号为0002的学生的年龄
select Sage
from students
where Sno in(select Sno from sc where Cno=“0002”);
/in关键字

/选取不在选课表中选了0005课程的学号
select Sname
from students
where not exists(select * from sc where Sno=students.Sno and Cno=“0005”);
/exist关键字

/选取年龄大于等于19并且来自computer science系的学生的所有信息;
select * from students where Sdept=“computer science” and Sage>=19;
/连接的条件要
同时存在用and;

今天就到这里吧,如有不足,请多指教;

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boger666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值