MySQL基本操作 下载本文

mysql基本操作

1. show databases;

【作用】显示当前系统中现有的数据库

【注意】此处database类似于schema。databases最后的's'不要少,是复数。 2. create database firstdb;

【作用】创建一个名为firstdb的数据库

【注意】create常被错拼为creat,此时的database是单数形式,最后没有's' 3. drop database firstdb;

【作用】删除一个名为firstdb的数据库 4. use firstdb;

【作用】使用名为firstdb的数据库作为当前数据库 5. create table temp(s char(1));

【作用】在当前数据库里创建一个名为temp的基本表,只有一列。 6. show tables;

【作用】显示当前数据库里现有的基本表 【注意】此时的tables是复数形式,最后有's' 7. drop table temp;

【注意】删除名为temp的基本表

8. CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20));

【作用】创建学生表。UNIQUE表示sname只能取唯一值。 9. describe student;

【作用】显示学生表的内容。

10. alter table student add s_entrance DATE; 【作用】增加一列,数据类型为时间型。 11. alter table student modify column sage INT;

【作用】修改现有列的类型,将sage数据类型改为INT。 12. alter table student drop s_entrance; 【作用】删除s_entrance列。

13. insert into student values('1','jack','fm',16,'CS');

【作用】往student表中插入一条记录,即填写表的内容,按照表的属性列顺序添加值,char类型用单引号引起来。 14. select * from student;

【作用】选择student表的全部内容并显示。“*”通配符。 15. insert into student values('2','Owen','ma',26,'IS'); 【作用】再增加一条记录

16. delete from student where sno=1;

【作用】删除sno即学号等于1的记录。

17. insert into course(Cno,Cname) values('101','math');

【作用】在course表中只给指定列添加记录。

18. insert into course(Cno,Cname) values('102','phy'),('103','eng'),('104','elec'); 【作用】批量添加记录。

19. update course set cpno='102', ccredit=4 where cno='101'; 【作用】修改记录。 20. select * from course;

【作用】观察course表的变化。 【基本命令归纳】

show始终跟复数形式

create、drop 后面先指出是table还是database,然后才是表名或数据库名 use、describe、insert into、delete from后面直接跟数据库或表名

至此,MySQL中基本的一些操作:数据库的建立、浏览和删除;基本表的创建、浏览和删除、表中记录的添加、显示和删除都已全部掌握。

关于索引

一 什么是索引?

索引是按索引表达式的值对表中的记录进行排序的一种方法。 索引实际上是一种排序。

(排序分为:物理排序、索引排序) 二 为什么要用索引?

1.有序表的查询比无序表效率更高。

2.实际表常常是无序排序的,即使某一列是有序的,但其他列仍是无序的。 3.物理排序代价较高。若对每一列都进行物理排序则开销太大。 故:用索引排序来代替物理排序,提高查询效率。

(物理排序需要移动每条记录的实际存储位置,而索引排序只需改变指针) 三 操作示例

21. delete from student; 【作用】删除所有记录 22. load data local infile \【作用】从本地文件\导入数据。

txt文件中的格式:每行一个记录,各列之间用tab键分隔。可用excel做好再另存为txt文件。

data.txt存储位置:mysql安装文件夹的“MySQL Server 5.0\\bin\\”里面,例如:“D:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\”

23. select * from student where sno='65536';

【注意】此命令是查找最后一条记录。观察显示结果:“1 row in set (0.00 sec)”,即查询所用时间为0.00秒。多试几次,看平均查询时间是多少? 24. select * from student where sname='askdj0';

【注意】同样是查找最后一条记录。观察所用时间,多试几次,看平均查询时间是多少?思考为什么查询sname的时间比sno的时间长? 25. select * from student where sname='askdj1';

select * from student where sname='askdj2'; 【注意】观察查询第一条记录和中间某条记录所用时间差别,并思考为什么? 26. create index iname on student(sname); 【作用】创建名为iname的索引

27. select * from student where sname='askdj0'; 【注意】再观察所用时间 28. show index from student; 【作用】显示当前已建的索引 29. drop index iname on student; 【作用】删除iname索引 30. select * from student where sname='askdj0'; 【注意】再观察所用时间

关于视图

一 什么是视图?

视图是从一个或几个基本表(或视图)导出的表,是一个虚表。 数据库中只存放视图的定义,而不存放视图对应的数据。

基本表中的数据发生变化,从视图中查询出的数据也随之改变。

视图一经定义,就可以和基本表一样被查询、删除,但对视图的更新操作有一定的限制。

二 为什么要用视图?

为了安全,为了方便,对不同用户有不同的查看、选择、修改权限。 三

31. show tables; 【作用】查看当前已有的表 32. create view is_student as

select sno,sname,sage from student

where sdept= 'IS'; 【作用】创建视图 33. show tables; 【注意】刚才建的视图也显示出来了 34. show table status; 【作用】查看表的状态,注意最后一列 35. show table status where comment='view'; 【作用】查看已有的视图 36. drop view is_student; 【作用】删除视图 37. show tables; 【注意】观察表的变化 38. create view is_student as

select sno,sname,sage from student where sdept= 'IS'

with check option; 【作用】创建有更新限制的视图 39. insert into is_student values('200215129','zhaoxin',20); 【注意】提示错误 40. drop view is_student;

create view is_student as

select sno,sname,sage from student where sdept= 'IS'; 【作用】重建视图,注意缺少了check option语句!! 41. insert into is_student values('200215129','zhaoxin',20); 【注意】成功插入 42. select * from is_student; 【注意】观察视图中是否出现新增加的记录 43. select * from student; 【注意】基本表中新增记录,注意未赋值列的默认值! 44. update student set sdept= 'IS' where sno= '200215129'; 【作用】修改系名 45. select * from is_student; 【注意】观察视图中新增加的记录 46. delete from is_student where sno= '200215129'; 【作用】像表一样删除记录 47. select * from is_student; select * from student;

【注意】观察视图和基本表中刚才新增加的记录都已删除 四 结论

对于用户来说,操作基本表的命令如describe,select,insert,drop等全都可以用在视图上。对于系统来说,视图只是依附于基本表上的虚拟表。 附:课件上要求建的视图: