SQL-SERVER常用操作

发布时间 2023-10-10 08:20:19作者: IT_农民

===================数据库的基本操作==================
1.新建数据库:
建立一个“sqgxy”数据库,主要数据文件为学校情况。存储位置为E:\db\sqgxy.mdf。
create database sqgxy
on
(
name=sqgxy,
filename='E:\db\sqgxy.mdf'
);
--------------------------------------------------------------------
2.修改数据库名称(数据库处于非使用模式)
将数据库info的文件名更改为infomation。
ALTER DATABASE info --修改名称为info的数据库
MODIFY NAME = infomation --修改后的名称为infomation
use info;
go
alter database info modify name=infomation;
--------------------------------------------------------------------
3.删除数据库 :drop database infomation
use master --切换到主数据库
go
drop database infomation;
--------------------------------------------------------------------
4.新建数据表: create table tablename
新建数据表class在表中设备三个字段分别为id,className,address且三个字段均不
能为空。
use infomation---切换到infomation数据库
go
create table class
(
id int not null,
className varchar(50) null,
address varchar(50) null
)
--------------------------------------------------------------------
5.修改数据表字段名:
修改数据表class将className修改为class_name

EXEC sp_rename 'class.className','class_name','column';
这个查询将使用 sp_rename 存储过程来重命名 "class" 表中的 "className" 字段为 "class_name"。
--------------------------------------------------------------------
6.修改数据表字段的数据类型,将字段address的数据类型修改为text
ALTER TABLE CLASS
alter column addreSS text not null;
--------------------------------------------------------------------
7.添加字段
向数据表class添加一列字段tel,类型为char(11)
ALTER TABLE CLASS
add tel char(11) not null;
--------------------------------------------------------------------
8.删除字段
删除class表中的tel字段
ALTER TABLE CLASS
drop column tel;
--------------------------------------------------------------------
9.向表中插入一条数据
INSERT INTO class VALUES('一班', '科苑一楼')
--------------------------------------------------------------------
10.向表中插入多条数据
INSERT INTO class VALUES
('二班', '科苑一楼'),
('三班', '科苑一楼'),
('四班', '科苑一楼'),
('五班', '科苑二楼'),
('六班', '科苑二楼')
--------------------------------------------------------------------
*************数据查询和修改操作*************
--------------------------------------------------------------------
11.查询class 表的全部内容
select * from class
--------------------------------------------------------------------
12.查询class表里class_name的前3条内容
select top(3) class_name from class
--------------------------------------------------------------------
13.修改class表中id为3的信息将“科苑一楼”修改为“行知苑八楼”
update class set address='行知苑八楼' where id=3;
--------------------------------------------------------------------
14.使用group by 分组处理class_name字段
select id,count(class_name) from class group by id
--------------------------------------------------------------------
15.查询class表中所有数据并按降序排列
select * from class order by id desc
--------------------------------------------------------------------
16.查询class表中address字段中带有“行”字的数据
select * from class where address like '%行%';
--------------------------------------------------------------------
17.查询class表中class_name为六班,address为科苑一楼的数据
select * from class where class_name='六班' and address='科苑一楼';
--------------------------------------------------------------------
18.新建数据表student以便多表联查。
create table student
(
id int primary key identity(1,1),
student_name varchar(50) not null,
sex varchar(50) not null,
age int not null
);
//插入数据
insert into student values
('马云','男',60),
('王健林','男',62),
('王兴','男',63),
('董明珠','女',65),
('陶华碧','女',75)
--------------------------------------------------------------------
19.查询每个学生所有在班级和楼层--多表查询
select class.*,student.* from class,student where class.student_id=student.id;
优化查询:
select student.id,student.student_name,student.sex,student.age,class.class_name,class.address from class,student where class.student_id=student.id;
再次优化class表取别名为c,student表取别名为s
select s.id,s.student_name,s.sex,s.age,c.class_name,c.address from class as c,student as s where c.student_id=s.id
--------------------------------------------------------------------
20.查询所有的教室(不含重复值)
select distinct class_name from class;
--------------------------------------------------------------------
21.将class和student两个表合并成一个新表
select class_name,address from class
union
select student_name,sex from student;
--------------------------------------------------------------------