- 数据库的基本操作
- 表的基本操作
- 索引的基本操作
- 视图的基本操作
- 存储过程基本操作
- 触发器的基本创建
数据库的基本操作
- 建议设置mysql数据库表名不区分大小写
- SQL Server Management Studio 中命令不区分大小写
- 数据库查询:
use Students
select *from dbo.Managment - 数据库的建立:
CREATE DATABASE 数据库名
[ON
{ [PRIMARY] (NAME = 逻辑文件名,
FILENAME = ‘物理文件名’
[ , SIZE = 文件初始大小]
[ , MAXSIZE = {文件最大大小| UNLIMITED } ]
[ , FILEGROWTH = 自动增量] )
} [ , … n]
]
[LOG ON
{ ( NAME = 逻辑文件名,
FILENAME = ‘物理文件名’
[ , SIZE = 文件初始大小]
[ , MAXSIZE = { 文件最大大小 | UNLIMITED } ]
[ , FILEGROWTH = 自动增量] )
} [ , … n]]
- 举例:
create database Stu_info #创建数据库名为 Stu_info 的数据库
create database Students on primary( name='Students_data', filename='e:DatabaseStudents_mdf', size=10mb, filegrowth=10%) log on (name=Students_log, filename='e:DatabaseStudents_ldf', size=1mb, maxsize=5mb, filegrowth=1mb)
- 查看数据库信息: sp_helpdb 数据库名
- 修改数据库:
alter database 数据库名
add file[,…n] [to filegroup 文件组名]:表示向指定的文件组中添加新的数据文件。
add log file [,…n]:增加新的日志文件。
remove file 逻辑文件名:删除指定的操作系统文件。
remove filegroup 文件组名:删除指定的文件组。
modify file :修改某个操作系统文件。
modify name=新数据库名:重命名数据库。
add filegroup 文件组名:增加一个文件组。
modify filegroup 文件组名:修改某个指定文件组的属性。 - 举例:
ALTER DATABASE Sample MODIFY FILE ( NAME = 'SampleLog', SIZE = 15MB) GO ALTER DATABASE Sample ADD FILE (NAME = SampleData2, FILENAME=‘d:DataSample2.ndf', SIZE=15MB, MAXSIZE=20MB) GO alter database Students add file #添加文件 (name=Students_Data2, filename='e:DatabaseStudents_Data2.ndf', filegrowth=10%) go
- 删除数据库: :DROp DATABASE 数据库名
- 创建表: CREATE TABLE 表名 ( 列定义)
create table Student( Sno char(9) primary key, --列级完整性约束条件,Sno是主码 Sname char(20) unique, --Sname取唯一值 Ssex char(2), Sage smallint, Sdept char(20) ); create table Course( Cno char(4) primary key, --列级完整性约束条件,Cno是主码 Cname char(40) not null, --列级完整性约束条件,Cname不能取空值 Cpno char(4), --Cpno是先修课 Ccredit smallint, foreign key(Cpno) references Course(Cno) --表级完整性约束条件,CPno是外码,被参照表是Course,被参照列是Cno ); create table SC( Sno char(9), Cno char(4), Grade smallint, primary key(Sno,Cno), --主码由两个属性构成,必须作为表级完整性进行定义 foreign key (Sno) references Student(Sno), --表级完整性约束条件,Sno是外码,被参照表是Student foreign key (Cno) references Course(Cno) --表级完整性约束条件,Cno是外码,被参照表是Course ); create table Managent( Usename char(20), Password char(10), id char(4) primary key );
- 查看表: EXEC sp_help 表名
- 修改表:
向表中添加新列 :ALTER TABLE 表名 ADD 列名 数据类型 属性1 属性2…….. 删除表中的列 :ALTER TABLE 表名 DROP COLUMN 列名 ; 修改表中列的定义:ALTER TABLE 表名 ALTER COLUMN 列名 <列属性> ; 修改表中列的名称:EXEC SP_RENAME‘表名.原列名’,‘新列名’, ‘COLUMN’ ;
- 删除表: DROP TABLE 表名
- 表中数据的操作:
数据添加: INSERT [INTO] <表名> [<字段名列表>] VALUES (值列表)
insert into Student (Sno , Sname , Ssex,Sage , sdept)
values ( ' 201418048',"熊子杰·,男,'21',计算机系')
insert into Student ( Sno,Sname ,Ssex, Sage , sdept)
values ( '201418056', '李光荣',·男",'20','化学系')
insert into Course(Cno , Cname , ccredit)
values ( ' Java' , " Java程序设计·,'4")
insert into Course (Cno, Cname , ccredit)
values ( "Ios', " 1os应用开发·,'4')
insert sc (Sno,cno)
values ( '201418048", ' Java ' )
insert Sc (Sno,Cno)
values ( '201418056', 'Ios ')
数据更新:UPDATE 表名 SET {字段名 = 表达式 | NULL | DEFAULT } [ , …N] [WHERe 逻辑表达式]
update Rj1402
set Sid='rj1702'
update sc
set Grade=o
where sc.cno=" Java'
update sc
set Grade=8o
where sc.Cno="Ios'
delete from sc
where crade<60;
数据删除: DELETe FROM 表名 [WHERe 逻辑表达式 ]
DELETe FROM 教材 WHERe 出版商名称='水利水电出版社' GO
索引的基本操作
- 索引的建立:
create [unique] [ clustered | nonclustered ]
index 索引名
on { 表名 | 视图名 } ( 列名 [ asc | desc ] [ , …n ] )
with <索引选项> - 举例:
create unique index Stusno on Student(Sno); #根据Student(Sno)创建名为Stusno的索引 create unique index Coucno on Course(Cno); create unique index SCno on SC(Sno asc,Cno desc); create unique index Manid on Managment(id);
- 索引的查看:EXEC SP_HELPINDEX 表名 或 EXEC SP_HELP表名
- 索引的删除: drop index 表.索引名 | 视图.索引名 [,„n]
- 视图的建立:
CREATE VIEW [<数据库名>. ] [<所有者>. ]视图名 [ (列 [ ,…n ] ) ]
[ WITH {ENCRYPTION|SCHEMABINDING | VIEW_METADATA} ]
AS
SELECT子语句 - 举例:
create view IS_Student --建立信息系学生的视图 as select Sno,Sname,Sage from Student Where Sdept='IS'; create view IS_S1(Sno,Sname,Grade) as --建立信息系选修了1号课程的学生的视图 select Student.Sno,Sname,Grade from Student ,SC where Sdept='IS' and Student.Sno=SC.Sno and Sc.Cno='1';
- 视图的修改:
ALTER VIEW [<数据库名>. ] [<所有者>. ]视图名 [ (列 [ ,…n ] ) ]
[WITH {ENCRYPTION|SCHEMABINDING | VIEW_METADATA} ]
AS
SELECt子语句 - 视图的删除:
DROP VIEW <视图名>,[,[…n]]
- 创建存储过程:
CREATE PROC[EDURE]〈存储过程名〉
[@〈参数名〉〈参数类型〉[=〈默认值〉][OUTPUT]][,…n]
[WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS
〈SQL语句组〉
举例:
USE Students
GO
CREATE PROC proc_2 @班级代码 char(6)
AS
BEGIN
SELECT 学号,姓名,性别,出生日期,班级代码,联系电话,家庭住址,备注
FROM 学生
WHERe 班级代码=@班级代码
- 执行存储过程:
[EXEC[UTE]][@状态值=]〈存储过程名〉 [[@〈参数名〉=]{参数值|@变量 [output]}][,…n]
举例:
USE Students
GO
EXEC proc_2 @班级代码=‘rj1201’
GO
- 查看存储过程:
sp_help 存储过程名 SP_HELP proc_2 Go
- 修改存储过程:
ALTER PROC [ EDURE ] 存储过程名
[@〈参数名〉〈参数类型〉[=〈默认值〉][output]][,…n]
[WITH { RECOMPILE | ENCRYPTION }]
AS
〈SQL语句组〉
举例:
ALTER PROC proc_3 @学历 char(6)
WITH ENCRYPTION
AS
SELECt * FROM 教师 WHERe 学历 like '%'+@学历
- 重命名存储过程:
SP_RENAME <原存储过程名>,<更改后的存储过程名> SP_RENAME proc_1,pro_2
- 删除存储过程:
DROP PROC 存储过程名 DROP PROC proc_2
- 创建触发器:
CREATE TRIGGER 触发器名 ON表名|视图名 AFTER | FOR | INSTEAD OF [INSERT] [,] [DELETE][,][ UPDATE ] AS BEGINEND 举例: CREATE TRIGGER Tr_DML ON 学号 AFTER INSERT AS PRINT '添加了一条记录' #当执行插入学号时,会返回添加了一条记录的消息
- 查看触发器:
通过SP_HELP 系统存储过程,可以了解触发器的一般信息 - 修改触发器:
ALTER TRIGGER 触发器名 ON 表|视图 AFTER | FOR | INSTEAD OF [ INSERT ] [ , ] [DELETE][,][ UPDATE ] AS BEGIN SQL 语句 END
- 重命名触发器: SP_RENAME<触发器原名>,<触发器新名>
- 禁用触发器: DISABLE TRIGGER 触发器名称 ON 表名
- 启用触发器: ENABLE TRIGGER 触发器名称 ON 表名
- 删除触发器: DROP TRIGGER { 触发器名称 } [ ,…n ]



