数据库实验一报告 MYSQL语句用例.docx
《数据库实验一报告 MYSQL语句用例.docx》由会员分享,可在线阅读,更多相关《数据库实验一报告 MYSQL语句用例.docx(18页珍藏版)》请在冰豆网上搜索。
数据库实验一报告MYSQL语句用例
实验一:
MySQL关系数据库管理系统的使用
李建中高宏邹兆年
1.实验目的
掌握MySQL关系数据库管理系统的基本命令,并熟练使用SQL语言在MySQL上创建关系数据库、创建关系、插入数据、更改数据、编写SQL查询。
2.实验环境
WindowsXP上安装的MySQL5.1.41
3.实验步骤及结果
3.1MySQL基本命令
1)连接MySQL服务器
在命令行下输入mysql–hlocalhost–uroot–p
当显示“Enterpassword:
”时,输入密码mysql
2)查看MySQL中有哪些数据库
mysql>showdatabases;(注意SQL语句结尾的分号!
)
3)使用数据库mysql
mysql>usemysql;
4)查看当前使用的数据库
mysql>selectdatabase();
5)查看数据库mysql中有哪些关系
mysql>showtables;
6)查看数据库mysql中关系的模式(以关系user为例)
mysql>describeuser;
7)使用help命令来了解其他命令和变量类型等的含义
mysql>help;
mysql>helpuse;
8)使用SQL语言在数据库mysql上进行简单查询
mysql>select*fromuser;
mysql>selectuser,host,passwordfromuser;
mysql>selectcount(*)fromuser;
mysql>selectcount(*)asucountfromuser;
9)取消命令
若要取消一条正在编辑命令,键入\c并回车
10)断开MySQL服务器连接
mysql>quit或mysql>exit
3.2使用SQL语言管理MySQL数据库
1)创建数据库menagerie
mysql>CREATEDATABASEmenagerie;
2)查看数据库menagerie是否创建成功
mysql>showdatabases;
3)使用menagerie数据库
mysql>usemenagerie;
4)创建宠物信息关系pet,包含宠物名字、主人、种类、性别、出生和死亡日期
mysql>CREATETABLEpet(nameVARCHAR(20),ownerVARCHAR(20),
->speciesVARCHAR(20),sexCHAR
(1),birthDATE,deathDATE);
5)查看关系pet是否创建成功
mysql>showtables;
6)查看关系pet的模式
mysql>describepet;
7)向关系pet中插入元组
mysql>INSERTINTOpet
->VALUES('Puffball','Diane','hamster','f','1999-03-30',NULL);
8)从文件中批量导入数据
设D:
\pet.txt是一个由字符Tab分隔的文本文件
FluffyHaroldcatf1993-02-04\N
ClawsGwencatm1994-03-17\N
BuffyHarolddogf1989-05-13\N
FangBennydogm1990-08-27\N
BowserDianedogm1998-08-311995-07-29
ChirpyGwenbirdf1998-09-11\N
WhistlerGwenbird\N1997-12-09\N
SlimBennysnakem1996-04-29\N
在MySQL提示符下执行
mysql>LOADDATALOCALINFILE"D:
\pet.txt"INTOTABLEpet;
9)查询关系pet中所有元组
mysql>SELECT*FROMpet;
10)更改关系pet中的数据
mysql>UPDATEpetSETbirth="1989-08-31"WHEREname="Bowser";
11)查询名叫Bowser的宠物信息
mysql>SELECT*FROMpetWHEREname="Bowser";
12)查询所有90后宠物的信息
mysql>SELECT*FROMpetWHEREbirth>="1990-1-1";
13)查询所有90后小狗的信息
mysql>SELECT*FROMpetWHEREspecies="dog"ANDbirth>="1990-1-1";
14)查询所有90后小猫和小狗的信息
mysql>SELECT*FROMpetWHEREbirth>="1990-1-1"AND
->(species="dog"ORspecies="cat");
15)查询所有宠物的主人
mysql>SELECTownerFROMpet;
mysql>SELECTDISTINCTownerFROMpet;
16)查询所有宠物的名字及生日,并按其年龄递增排序
mysql>SELECTname,birthFROMpetORDERBYbirth;
17)查询所有宠物的名字及生日,并按其年龄递减排序
mysql>SELECTname,birthFROMpetORDERBYbirthDESC;
18)查询所有宠物的名字、种类及生日,并先按种类名称递增排序,同种宠物按年龄递减排序
mysql>SELECTname,species,birthFROMpetORDERBYspecies,birthDESC;
19)查询所有活着的宠物的信息
mysql>SELECT*FROMpetWHEREdeathISNULL;
20)查询关系pet中有多少只宠物
mysql>SELECTCOUNT(*)FROMpet;
21)查询每个主人有多少只宠物
mysql>SELECTowner,COUNT(*)FROMpetGROUPBYowner;
22)查询每种宠物的数量
mysql>SELECTspecies,COUNT(*)FROMpetGROUPBYspecies;
23)查询雄狗和雌狗的数量
mysql>SELECTspecies,sex,COUNT(*)FROMpet
->WHEREspecies="dog"GROUPBYspecies,sex;
24)查询每种宠物的最大年龄
mysql>SELECTspecies,MAX(birth)FROMpetGROUPBYspecies;
25)完成《MySQL中文参考手册》第8.4.4.5~8.4.4.7节的全部练习
8.4.4.5日期计算
mysql>SELECTname,(TO_DAYS(NOW())-TO_DAYS(birth))/365FROMpet;
mysql>SELECTname,(TO_DAYS(NOW())-TO_DAYS(birth))/365ASage->FROMpetORDERBYname;
mysql>SELECTname,(TO_DAYS(NOW())-TO_DAYS(birth))/365ASage->FROMpetORDERBYage;
mysql>SELECTname,birth,death,(TO_DAYS(death)-TO_DAYS(birth))/365ASage->FROMpetWHEREdeathISNOTNULLORDERBYage;
mysql>SELECTname,birth,MONTH(birth)FROMpet;
mysql>SELECTname,birthFROMpetWHEREMONTH(birth)=5;
mysql>SELECTname,birthFROMpet->WHEREMONTH(birth)=MONTH(DATE_ADD(NOW(),INTERVAL1MONTH));
mysql>SELECTname,birthFROMpet->WHEREMONTH(birth)=MOD(MONTH(NOW()),12)+1;
8.4.4.6NULL值操作
mysql>SELECT1=NULL,1!
=NULL,1NULL;
mysql>SELECT1ISNULL,1ISNOTNULL;
8.4.4.7模式匹配MySQL
mysql>SELECT*FROMpetWHEREnameLIKE"b%";
mysql>SELECT*FROMpetWHEREnameLIKE"%fy";
mysql>SELECT*FROMpetWHEREnameLIKE"%w%";
mysql>SELECT*FROMpetWHEREnameLIKE"_____";
mysql>SELECT*FROMpetWHEREnameREGEXP"^[bB]";
mysql>SELECT*FROMpetWHEREnameREGEXP"fy$";
mysql>SELECT*FROMpetWHEREnameREGEXP"[wW]";
mysql>SELECT*FROMpetWHEREnameREGEXP"^.....$";
mysql>SELECT*FROMpetWHEREnameREGEXP"^.{5}$";
4.遇到的问题
1.指令较长,容易打错。
2.正则表达式内容较多,不易掌握。
3.数据太多时不易采用手动输入。
解决方法:
1.多练,多玩。
2.看书,做笔记,多练。
3.熟练掌握文件数据导入数据库中。
5.参考资料
《MySQL中文参考手册》(MySQLBook.chm)第8.1、8.2、8.4、8.5节。
李建中,王珊.《数据库系统原理(第二版)》.