SQL数据库的基本操作Word下载.docx
《SQL数据库的基本操作Word下载.docx》由会员分享,可在线阅读,更多相关《SQL数据库的基本操作Word下载.docx(10页珍藏版)》请在冰点文库上搜索。
![SQL数据库的基本操作Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/5f7881b0-cebf-4e79-a4f2-8f8cb1b184c4/5f7881b0-cebf-4e79-a4f2-8f8cb1b184c41.gif)
)whereuser='
root'
flushprivileges;
12.修改密码的三种方法:
updateusersetpassword=password('
123456'
joy_pen'
flushprivileges;
setpasswordfor'
joy_oen'
=password('
grantusageon*.*to'
identifiedby'
1、创建数据库
命令:
createdatabase<
数据库名>
例如:
建立一个名为xhkdb的数据库mysql>
createdatabasexhkdb;
2、显示所有的数据库
showdatabases(注意:
最后有个s)mysql>
showdatabases;
3、删除数据库
dropdatabase<
删除名为xhkdb的数据库mysql>
dropdatabasexhkdb;
4、连接数据库
use<
如果xhkdb数据库存在,尝试存取它:
usexhkdb;
屏幕提示:
Databasechanged
5、当前选择(连接)的数据库mysql>
selectdatabase();
6、当前数据库包含的表信息:
showtables;
(注意:
最后有个s)
三、表操作,操作之前应连接某个数据库
1、建表
命令:
createtable<
表名>
(<
字段名1>
<
类型1>
[,..<
字段名n>
类型n>
]);
createtableMyClass(
>
idint(4)notnullprimarykeyauto_increment,
namechar(20)notnull,
sexint(4)notnulldefault'
'
0'
degreedouble(16,2));
2、获取表结构
desc表名,或者showcolumnsfrom表名
mysql>
DESCRIBEMyClass
descMyClass;
showcolumnsfromMyClass;
3、删除表
droptable<
删除表名为MyClass的表
droptableMyClass;
4、插入数据
insertinto<
[(<
[,..<
字段名n>
])]values(值1)[,(值n)]
例如,往表MyClass中插入二条记录,这二条记录表示:
编号为1的名为Tom的成绩为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为96.5.
insertintoMyClassvalues(1,'
Tom'
96.45),(2,'
Joan'
82.99),(2,'
Wang'
96.59);
5、查询表中的数据
1)、查询所有行
select<
字段1,字段2,...>
from<
表名>
where<
表达式>
查看表MyClass中所有数据
select*fromMyClass;
2)、查询前几行数据
查看表MyClass中前2行数据
select*fromMyClassorderbyidlimit0,2;
6、删除表中数据
deletefrom表名where表达式
删除表MyClass中编号为1的记录
deletefromMyClasswhereid=1;
7、修改表中数据:
update表名set字段=新值,…where条件
updateMyClasssetname='
Mary'
whereid=1;
8、在表中增加字段:
altertable表名add字段类型其他;
在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
altertableMyClassaddpasstestint(4)default'
9、更改表名:
renametable原表名to新表名;
在表MyClass名字更改为YouClass
renametableMyClasstoYouClass;
更新字段内容
update表名set字段名=新内容
update表名set字段名=replace(字段名,'
旧内容'
'
新内容'
数据库、表、索引的定义
一、目的:
通过本实验加深对SQLServer2000环境下数据定义语言的理解,能够熟练地建立数据库,并通过SQL语句来创建和修改基本表、创建和取消索引。
二、内容:
使用SQLServer2000软件,练习创建和修改数据库、表、索引。
三、要求:
建立一个新的SQLServer设备管理数据库,使用SQL的数据定义功能建立数据库中的各个基本表(共3个),并按要求对有关表进行修改。
每次操作后通过企业管理器查看有关对象的变化。
四、步骤:
1.创建数据库
1)
使用企业管理器创建数据库
使用企业管理器创建数据库的步骤如下:
①如果SQLServer服务还没有启动,应先启动SQLServer服务,然后启动企业管理器。
②在控制台上依次单击“MicrosoftSQLServers”和“SQLServer组”左边的加号,然后单击要创建数据库的服务器左边的加号图标,展开树形目录。
③右击“数据库”,然后单击“新建数据库”命令。
④在“名称”文本框中输入数据库名(根据学生本人的学号取名)。
⑤在“数据文件”页中输入主数据文件的名称。
⑥若要更改数据文件的存储位置,单击“位置”列表框上的按钮,(注意确定文件目录已经存在、并允许读写)。
⑦在“初始大小”项上输入希望的大小。
⑧如果希望数据库文件的容量能根据实际数据的需要自动增加,可选中“文件属性”部分的“文件自动增长”复选框。
⑨仿照“数据文件”页的定义方法定义“事务日志”页。
【说明一】:
数据文件和日志文件的作用
数据文件又包括:
主数据文件和辅助数据文件。
主数据文件的扩展名是.mdf,每个数据库只能包含一个主数据文件。
辅助数据文件的扩展名是.ndf。
辅助数据文件可以同主数据文件存放在相同的位置,也可以存放在不同的地方。
日志文件记录页的分配和释放以及对数据库数据的修改操作。
日志文件的扩展名为.ldf,它包含用于恢复数据库的日志信息。
每个数据库必须至少有一个日志文件。
【说明二】:
数据库文件的属性
在定义数据库的数据文件和日志文件时,可以指定如下属性:
Ø
文件名及其位置。
每个数据库的数据文件和日志文件都具有一个逻辑名称以及文件的物理存放位置。
文件大小。
可以指定每个数据文件和日志文件的大小,以MB为单位。
增长方式。
如果需要的话,可以指定文件是否自动增长,该选项的默认配置为自动增长。
最大大小。
指定文件增长的最大大小。
默认是大小无限制。
2)
使用Transact-SQL语句创建数据库
①语法结构
CREATEDATABASE数据库名
[ON
[
文件格式>
[,…n]
]
[LOG
ON{
}]
:
:
=
([NAME=逻辑文件名,]
FILENAME=‘操作系统下的物理路径和文件名’
[,SIZE=文件初始大小]
[,MAXSIZE=文件最大大小|UNLIMITED]
[,FILEGROWTH=增量值])
[,
…n]
②有关说明
ON关键字表示数据库是根据后面的参数来创建的;
n是一个占位符,表明可为新数据库指定多个文件;
LOGON子句用于指定该数据库的事务日志文件;
NAME用于指定数据库文件的逻辑文件名;
FILENAME用于指定数据库文件的存放位置及在磁盘上的文件名;
SIZE用于指定数据库文件的初始大小,可以加上MB或KB,默认为MB;
MAXSIZE用于指定数据库文件的最大大小,可以加上MB或KB,默认为MB。
省略此项表示最大大小无限制;
FILEGROWTH用于指定数据库文件的增加量,可以加上MB或KB或%,默认为MB。
省略此项表示不自动增长。
③内容
创建一个数据库,数据库名称为你的学号,例如:
“AP0406150”,此数据库包含一个数据文件和一个事务日志文件。
数据文件只有主数据文件,其逻辑文件名为“AP0406150_data”,其物理文件名为“AP0406150.mdf”,存放位置在默认目录下,其初始大小为10MB,最大大小为30MB,自动增长时的递增量为5MB。
事务日志文件的逻辑文件名为“AP0406150_log”,物理文件名为“AP0406150.ldf”,也存放在默认目录下,初始大小为3MB,最大大小为12MB,自动增长时的递增量为2MB。
【注意】:
上机时要根据实际情况确定存放位置,由于计算中心的大多数机器的C、D驱动器有保护卡,建议在驱动器E中建立自己的目录,有关文件将存放在该目录中。
④语句格式
CREATE
DATABASE
AP0406150
ON
(NAME=AP0406150_data,
FILENAME='
E:
\AP0406150\AP0406150.mdf'
SIZE=10,
MAXSIZE=30,
FILEGROWTH=5)
LOGON
(NAME=AP0406150_log,
\AP0406150\AP0406150.ldf'
SIZE=3,
MAXSIZE=12,
FILEGROWTH=2)
2.创建基本表
打开查询分析器,找到第一步建立的数据库,使用数据定义语句建立三个基本表:
n
学生表:
Student(Sno,Sname,Ssex,Sage,Sdept)
其中:
属性Sno,Sname,Ssex,Sage和Sdept分别表示学号、姓名、性别、年龄和所在系,Sno为主码,加下划线表示。
CREATETABLEStudent(
SnoCHAR(9)PRIMARYKEY,
SnameCHAR(20)UNIQUE,
SsexCHAR
(2),
SageCHAR(3),
SdeptCHAR(20)
);
课程表:
Course(Cno,Cname,Cpno,Ccredit)
属性Cno,Cname,Cpno和Ccredit分别表示课程号、课程名、先修课号和学分,Cno为主码,加下划线表示。
CREATETABLECourse(
CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),
CpnoCHAR(4),
CcreditSMALLINT,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno)
学生选课表:
SC(Sno,Cno,Grade)
属性Sno,Cno和Grade分别表示学号、课程号和成绩,主码为属性组(Sno,Cno),加下划线表示。
CREATETABLESC(
SnoCHAR(9),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESStudent(Sno),
FOREIGNKEY(Cno)REFERENCESCourse(Cno)
3.修改基本表
在Student表中增加“入学时间”列,数据类型为日期型
ALTERTABLEStudent
ADDS_entranceDATETIME;
将年龄的数据类型由字符型改为整型,因SQLSERVER2000没有MODIFY功能,只能先删除再添加,即:
ALTERTABLEStudent
//先删除
DROPCOLUMNSage;
//再添加
ADDSageINT;
在Student表中增加一个完整性约束定义,使年龄的取值只能在15到40之间
ADDCHECK(SageBetWEEN15AND40);
4.建立索引
为学生-课程数据库中的Student、Course、SC三个表建立索引。
其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATEUNIQUEINDEXStusnoONStudent(Sno);
CREATEUNIQUEINDEXCoucnoONCourse(Cno);
CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);
5.取消索引
取消按步骤4建立的索引。
DROPINDEXStudent.Stusno;
DROPINDEXCourse.Coucno;
DROPINDEXSC.SCno;
数据更新语言的使用
通过本实验熟悉数据库的数据更新操作,加深SQL语言中对数据库进行数据插入、更新、删除操作的理解。
使用SQLServer2000软件,练习SQL语言中的插入、更新、删除命令。
使用数据插入语句INSERTINTO向实验一所建立的基本表中输入若干数据,然后再通过UPDATE或DELETE语句对已经插入的数据进行更新或删除,每执行一次操作都将通过查询命令SELECT语句查看数据变化。
1.插入内容
Student
Sno
Sname
Ssex
Sage
Sdept
200215121
李勇
男
19
CS
200215122
刘晨
20
CS
200215123
王敏
女
MA
200215125
张立
22
IS
Course
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
操作系统
6
3
数据结构
7
数据处理
PASCAL语言
学生选课表:
SC
Cno
Grade
200215121
92
85
88
200215122
90
3
80
2.插入数据
使用insert语句将给定数据分别插入上述基本表中:
INSERTINTOStudentVALUES('
200215121'
李勇'
男'
19,'
CS'
200215122'
刘晨'
20,'
200215123'
王敏'
女'
MA'
200215124'
王敏乙'
用SELECT命令观察结果。
INSERTINTOCourseVALUES(‘2’,’数学’,,2);
INSERTINTOCourseVALUES(‘6’,’数据处理’,,2);
INSERTINTOCourseVALUES(‘4’,‘操作系统’,’6’,3);
INSERTINTOCourseVALUES(‘7’,’PASCAL语言’,’6’,4);
INSERTINTOCourseVALUES(‘5’,’数据结构’,’7’,4);
INSERTINTOCourseVALUES(‘1’,’数据库’,’5’,4);
INSERTINTOCourseVALUES(‘3’,’信息系统’,’1’,4);
先按课程号顺序向Course表中插入记录,再按上述顺序向Course表插入记录,体会两者的不同,并用SELECT命令观察结果。
INSERTINTOSC(Sno,Cno)VALUES(‘200215121’,’1’);
INSERTINTOSC(Sno,Cno,Grade)VALUES(‘200215121’,’2’,85);
INSERTINTOSCVALUES(‘200215121’,’3’,88);
INSERTINTOSCVALUES(‘200215122’,’2’,90);
INSERTINTOSCVALUES(‘200215122’,’3’,80);
3.修改数据
给学号为200215121学生录入课程号为1(数据库)的成绩。
UPDATE
SC
SETGrade=92
WHERE
Sno=‘200215121’andCno=‘1’;
4.删除数据
删除学号为200215124的学生记录。
DELETE
FROMStudent
WHERESno=‘200215124’;