数据库的基本操作_表的基本操作_索引的基本操作_视图_存储过程_触发器


在这里插入图片描述

数据库的基本操作

  1. 建议设置mysql数据库表名不区分大小写
  2. SQL Server Management Studio 中命令不区分大小写
  3. 数据库查询:
    use Students
    select *from dbo.Managment
  4. 数据库的建立:
CREATE DATABASE 数据库名
[ON 
     { [PRIMARY]  (NAME = 逻辑文件名,
      	FILENAME = ‘物理文件名’
		[ , SIZE = 文件初始大小]
		[ , MAXSIZE = {文件最大大小| UNLIMITED } ]
		[ , FILEGROWTH = 自动增量] )
     }  [ , … n]
]
[LOG ON 
     {  ( NAME = 逻辑文件名,
      	FILENAME = ‘物理文件名’
		[ , SIZE = 文件初始大小]
		[ , MAXSIZE = { 文件最大大小 | UNLIMITED } ]
		[ , FILEGROWTH = 自动增量] )
     }  [ , … n]]
  1. 举例:
create database Stu_info  #创建数据库名为 Stu_info 的数据库
create database Students
on
primary(
name='Students_data',
filename='e:\Database\Students_mdf',
size=10mb,
filegrowth=10%)
log on
(name=Students_log,
filename='e:\Database\Students_ldf',
size=1mb,
maxsize=5mb,
filegrowth=1mb)
  1. 查看数据库信息: sp_helpdb 数据库名
  2. 修改数据库:
    alter database 数据库名
    add file[,…n] [to filegroup 文件组名]:表示向指定的文件组中添加新的数据文件。
    add log file [,…n]:增加新的日志文件。
    remove file 逻辑文件名:删除指定的操作系统文件。
    remove filegroup 文件组名:删除指定的文件组。
    modify file :修改某个操作系统文件。
    modify name=新数据库名:重命名数据库。
    add filegroup 文件组名:增加一个文件组。
    modify filegroup 文件组名:修改某个指定文件组的属性。
  3. 举例:
ALTER DATABASE Sample
MODIFY FILE ( NAME = 'SampleLog', SIZE = 15MB)
GO
ALTER DATABASE Sample
ADD FILE 
  (NAME = SampleData2,
   FILENAME=‘d:\Data\Sample2.ndf',
   SIZE=15MB,
   MAXSIZE=20MB)
GO
alter database Students
add file           #添加文件
(name=Students_Data2,
filename='e:\Database\Students_Data2.ndf',
filegrowth=10%)
go
  1. 删除数据库: :DROP DATABASE 数据库名

表的基本操作

  1. 创建表: 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
);
  1. 查看表: EXEC sp_help 表名
  2. 修改表:
向表中添加新列 :ALTER TABLE 表名  ADD 列名  数据类型  属性1 属性2…….. 
删除表中的列 :ALTER TABLE 表名 DROP COLUMN 列名 ;
修改表中列的定义:ALTER TABLE 表名 ALTER COLUMN 列名 <列属性> ;
修改表中列的名称:EXEC SP_RENAME‘表名.原列名’,‘新列名’,COLUMN;
  1. 删除表: DROP TABLE 表名
  2. 表中数据的操作:
数据添加: 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

索引的基本操作

  1. 索引的建立:
    create [unique] [ clustered | nonclustered ]
    index 索引名
    on { 表名 | 视图名 } ( 列名 [ asc | desc ] [ , …n ] )
    with <索引选项>
  2. 举例:
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);
  1. 索引的查看:EXEC SP_HELPINDEX 表名 或 EXEC SP_HELP表名
  2. 索引的删除: drop index 表.索引名 | 视图.索引名 [,„n]

视图的基本操作

  1. 视图的建立:
    CREATE VIEW [<数据库名>. ] [<所有者>. ]视图名 [ (列 [ ,…n ] ) ]
    [ WITH {ENCRYPTION|SCHEMABINDING | VIEW_METADATA} ]
    AS
    SELECT子语句
  2. 举例:
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';
  1. 视图的修改:
    ALTER VIEW [<数据库名>. ] [<所有者>. ]视图名 [ (列 [ ,…n ] ) ]
    [WITH {ENCRYPTION|SCHEMABINDING | VIEW_METADATA} ]
    AS
    SELECT子语句
  2. 视图的删除:
    DROP VIEW <视图名>,[,[…n]]

存储过程基本操作

  1. 创建存储过程:
CREATE PROC[EDURE]〈存储过程名〉
[@〈参数名〉〈参数类型〉[=〈默认值〉][OUTPUT]][,…n]
[WITH {RECOMPILE|ENCRYPTION|RECOMPILEENCRYPTION}]
[FOR REPLICATION]
ASSQL语句组〉

举例:
USE Students
GO
CREATE PROC proc_2 @班级代码 char(6)
AS
BEGIN
SELECT 学号,姓名,性别,出生日期,班级代码,联系电话,家庭住址,备注
FROM 学生
WHERE 班级代码=@班级代码
  1. 执行存储过程:
[EXEC[UTE]][@状态值=]〈存储过程名〉 [[@〈参数名〉=]{参数值|@变量 [output]}][,…n]

举例:
USE Students
  	   GO 
      EXEC proc_2 @班级代码=‘rj1201’
       GO
  1. 查看存储过程:
sp_help 存储过程名
 SP_HELP proc_2   Go
  1. 修改存储过程:
ALTER PROC [ EDURE ] 存储过程名 
[@〈参数名〉〈参数类型〉[=〈默认值〉][output]][,…n]
[WITH { RECOMPILE | ENCRYPTION }]
ASSQL语句组〉

举例:
ALTER PROC proc_3 @学历 char(6)
WITH ENCRYPTION
AS
SELECT * FROM 教师 WHERE 学历 like '%'+@学历

  1. 重命名存储过程:
SP_RENAME <原存储过程名>,<更改后的存储过程名>
SP_RENAME proc_1,pro_2

  1. 删除存储过程:
DROP PROC 存储过程名
DROP PROC proc_2

触发器的基本创建

  1. 创建触发器:
CREATE TRIGGER 触发器名
ON表名|视图名
AFTER | FOR | INSTEAD OF [INSERT] [,] [DELETE][,][ UPDATE ] 
AS
BEGIN
<SQL 语句组>
END

举例:
CREATE TRIGGER Tr_DML
ON 学号
AFTER INSERT
AS
PRINT '添加了一条记录'     #当执行插入学号时,会返回添加了一条记录的消息

  1. 查看触发器:
    通过SP_HELP 系统存储过程,可以了解触发器的一般信息
  2. 修改触发器:
ALTER TRIGGER 触发器名
ON|视图
AFTER | FOR | INSTEAD OF [ INSERT ] [ , ] [DELETE][,][ UPDATE ] 
AS
BEGIN
SQL 语句
END
  1. 重命名触发器: SP_RENAME<触发器原名>,<触发器新名>
  2. 禁用触发器: DISABLE TRIGGER 触发器名称 ON 表名
  3. 启用触发器: ENABLE TRIGGER 触发器名称 ON 表名
  4. 删除触发器: DROP TRIGGER { 触发器名称 } [ ,…n ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值