第八节 实验八 单表查询
实验目标:学习单表查询
实验内容:查询学生基本信息表中的数据 实验步骤:
如下所示,依次执行以下语句:
? 查询学生基本信息表数据并按照学号排序 ? 查询李四的学号和班级信息
? 查询学生基本信息表中记录数。
倒序desc
mysql> Select * from std_Info order by nub; +--------+--------+-------+------+ | nub | name | class | sex | +--------+--------+-------+------+ | 100001 | 张三丰 | 9701 | m | | 100002 | 李四 | 9701 | m | | 100003 | 王芳 | 9701 | f | | 100004 | 钱一 | 9702 | m | | 100005 | 宋玲 | 9702 | f | | 100006 | 李菲儿 | 9702 | f | +--------+--------+-------+------+ 6 rows in set (0.00 sec) 说明:f:女生 m:男生
order by 字段名,是安装字段升序排列,假如降序,使用order by 字段名 desc.
查询李四的基本信息,只看李四的学号,班级。
mysql> Select nub,class from std_info where name='李四'; +--------+-------+ | nub | class | +--------+-------+ | 100002 | 9701 | +--------+-------+
1 row in set (0.00 sec)
查询学生基本信息表中记录数
mysql> select count(*) from std_info; +----------+ | count(*) | +----------+ | 6 | +----------+
1 row in set (0.00 sec)
第九节 实验九 分组查询
实验目标:学习分组查询语句
实验内容:查询学生基本信息表中各班男生、女生人数 实验步骤:
如下所示,依次执行以下语句:
? 查询学生基本信息表中各班男生,女生人数,按照班级和性别分组
mysql> select class,sex,count(*) from std_info group by class,sex; +-------+------+----------+ | class | sex | count(*) | +-------+------+----------+ | 9701 | f | 1 | | 9701 | m | 2 | | 9702 | f | 2 | | 9702 | m | 1 | +-------+------+----------+ 4 rows in set (0.00 sec)
说明:f:女生 m:男生
第十节 实验十 联合查询
实验目标:学习联合查询
实验内容:查询指定班级、课程的平均分 实验步骤:
如下所示,依次执行以下语句:
? 学生基本信息表、课程表和成绩表联合,查询9701班英语平均成绩,
使用avg函数计算平均分
mysql> select avg(b.score) as '平均分' from std_info a,score_info b,curricula c where a.nub=b.nub and b.code=c.code and c.Curlum='英语' and a.class='9701'; +-----------+ | 平均分 | +-----------+ | 70.333333 | +-----------+
1 row in set (0.00 sec)
学生基本信息表和成绩表通过学号字段联合,成绩表和课程表通过课程代码联合。
as的作用就是可以给字段起别名,显示的时候含义更明确
第十一节 实验十一 查询平均分
实验目标:学习分组查询
实验内容:查询各门课程的平均分 实验步骤:
如下所示,依次执行以下语句:
? 课程表和成绩表通过课程代码联合,按照课程代码,课程名称分组,
使用avg函数计算平均分
mysql> select a.curlum,avg(score) from curricula a,score_Info b where a.code=b.code group by a.code,a.curlum; +--------+------------+ | curlum | avg(score) | +--------+------------+ | 英语 | 78.000000 | | 高数 | 72.666667 | | vc | 80.166667 | +--------+------------+ 3 rows in set (0.00 sec)
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。最常用的聚合函数:count,avg,min,max。
第十二节 实验十二 联合查询排序
实验目标:学习联合查询并排序 实验内容:所有学生vc成绩排名 实验步骤:
如下所示,依次执行以下语句:
? 学生基本信息表、成绩表和课程表联合查询vc成绩,并按照成绩降
序排列
mysql> select a.nub,name,score from std_info a,score_info b, curricula c where a.nub=b.nub and b.code=c.code and c.curlum='vc' order by b.score desc;
+--------+--------+-------+ | nub | name | score | +--------+--------+-------+ | 100004 | 钱一 | 90.00 | | 100001 | 张三丰 | 90.00 | | 100006 | 李菲儿 | 83.00 | | 100005 | 宋玲 | 80.00 | | 100003 | 王芳 | 70.00 | | 100002 | 李四 | 68.00 | +--------+--------+-------+ 6 rows in set (0.00 sec)
文档编号 项目编号 PAP-01-01 Mysql学习手册
《Mysql学习手册》
项目与实践教研室
版本1.1
文档提供:项目与实践教研室
文档属性
项目 文档标题 整理人 创建日期 最后修改日期 明细 Mysql 学习手册 臧永娜 2008-9-10
修订历史记录
版本 1.0 日期 2008-09-10 AMD A 修订者 臧永娜 说明 (A-添加,M-修改,D-删除)
目 录
第一章 Mysql在Windows上安装 ............................................................................................ 4
第一节 安装环境 ............................................................................................................... 4 第二节 Mysql版本和程序包 ............................................................................................ 4 第三节 具体安装步骤 ....................................................................................................... 5 第四节 Mysql服务启动 .................................................................................................. 20 第二章 Mysql常用配置 .......................................................................................................... 21
第一节 Mysql命令行客户端配置数据库 ...................................................................... 21
1. 登陆Mysql数据库 ................................................................................................. 21 第二节 Mysql客户端工具 .............................................................................................. 22
1. MySQL-Front的安装 .............................................................................................. 23 2. 创建用户 ................................................................................................................. 29 3. 数据表的基本操作 ................................................................................................. 31
第三章 Mysql实验 .................................................................................................................. 37
第一节 实验一 创建数据库 ........................................................................................... 38 第二节 实验二 创建用户 ............................................................................................... 39 第三节 实验三 创建表 ................................................................................................... 40 第四节 实验四 增加主键 ............................................................................................... 41 第五节 实验五 插入记录 ............................................................................................... 42 第六节 实验六 更新记录 ............................................................................................... 44 第七节 实验七 删除记录 ............................................................................................... 45 第八节 实验八 单表查询 ............................................................................................... 46 第九节 实验九 分组查询 ............................................................................................... 47 第十节 实验十 联合查询 ............................................................................................... 48 第十一节 实验十一 查询平均分 ................................................................................... 49 第十二节 实验十二 联合查询排序 ............................................................................... 50 第十三节 实验十三 联合查询最大值、最小值 ........................................................... 51 第十四节 实验十四 删除表 ........................................................................................... 52 第十五节 实验十五 增加字段 ....................................................................................... 53 第十六节 实验十六 修改字段名称 ............................................................................... 54 第十七节 实验十七 修改字段属性 ............................................................................... 55 第十八节 实验十八 删除字段 ....................................................................................... 56 第十九节 实验十九 导入导出数据 ............................................................................... 56
1. 导出数据 mysqldump ............................................................................................ 57 2. mysqlimport命令 ................................................................................................... 57 3. 导入数据 ................................................................................................................. 58 4. 将文本数据导入数据库 ......................................................................................... 58
第一章 Mysql在Windows上安装
第一节 安装环境
Windows XP操作系统上安装。 第二节 Mysql版本和程序包
Mysql版本:Mysql 5.0.18
安装程序包:mysql-5.0.18-win32.zip
第三节 具体安装步骤
安装程序包拷贝到自己电脑上。选中mysql-5.0.18-win32.zip。如图1:
图1
双击该图标(先保证你的电脑上安装了WinRAR或者WinZIP等解压缩工具,压缩工具也可以在上面的页面中下载到),打开rar解压窗口,如图2
图2
你可以把文件解压到硬盘上,然后再安装。也可以直接在窗口中,双击Setup.exe文件,开始mysql5.0的安装。先是等待,它自己解压文件,直到出现下面的窗口,图3
Code char(2), /* 课程代号 */ Score double(5,2) /* 分数 */ );
第四节 实验四 增加主键
实验目标:学习在表增加主键,修改用户权限 实验内容:成绩表中增加主键:学号和课程代号 实验步骤:
如下所示,依次执行以下语句:
? 增加主键,提示没权限 ? 增加user1用户权限 ? 重新执行增加主键操作 ? 查看表结构
mysql> Alter table score_info add primary key (nub,code);
ERROR 1142 (42000): ALTER command denied to user 'user1'@'localhost' for table 'std_info'
用户user1没有alter权限,所以此处提示:没有权限进行alter操作。咱们需要使用root用户给user1增加alter权限。注意要用root用户才有权限,否则提示无权限。(重新开一个mysql窗口,使用root登陆,给user1用户赋权限) mysql> grant select,insert,update,delete,create,drop,alter on stud.* to user1@localhost identified by \ Query OK, 0 rows affected (0.02 sec)
然后退出之前操作stud数据库的窗口,重新use stud,执行增加主键操作,就ok了。(不重新登陆一下,用户user1的新权限不生效)
mysql> Alter table score_info add primary key (nub,code); Query OK, 0 rows affected (0.19 sec) Records: 0 Duplicates: 0 Warnings: 0
同时,给课程表增加主键
Alter table curricula add primary key(code,curlum);
第五节 实验五 插入记录
实验目标:学习如何在表中插入记录
实验内容:分布在学生基本信息表、课程表和成绩表中插入记录 实验步骤:
如下所示,依次执行以下语句:
? 学生基本信息表中插入记录 ? 课程表中插入记录 ? 成绩表中插入记录 学生基本信息表
在sql-front中运行中要一行一行的运行;
mysql> insert into std_info values('100001','张三','9701','m'); Query OK, 1 row affected (0.08 sec)
mysql> insert into std_info values('100002','李四','9701','m'); Query OK, 1 row affected (0.01 sec)
mysql> insert into std_info values('100003','王芳','9701','f'); Query OK, 1 row affected (0.02 sec)
mysql> insert into std_info values('100004','高欢','9702','m'); Query OK, 1 row affected (0.03 sec)
mysql> insert into std_info values('100005','白雪','9702','f'); Query OK, 1 row affected (0.02 sec)
mysql> insert into std_info values('100006','郭伟','9702','f'); Query OK, 1 row affected (0.03 sec)
课程信息表:
mysql> insert into curricula values('eg','英语'); Query OK, 1 row affected (0.03 sec)
mysql> insert into curricula values('mt','高数'); Query OK, 1 row affected (0.03 sec)
mysql> insert into curricula values('vc','vc'); Query OK, 1 row affected (0.01 sec)
成绩表
mysql> insert into score_info values('100001','eg',87); Query OK, 1 row affected (0.06 sec)
mysql> insert into score_info values('100001','mt',77); Query OK, 1 row affected (0.01 sec)
mysql> insert into score_info values('100001','vc',90); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100002','eg',65); Query OK, 1 row affected (0.02 sec)
mysql> insert into score_info values('100002','mt',74); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100002','vc',68); Query OK, 1 row affected (0.02 sec)
mysql> insert into score_info values('100003','eg',59); Query OK, 1 row affected (0.02 sec)
mysql> insert into score_info values('100003','mt',63); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100003','vc',70); Query OK, 1 row affected (0.01 sec)
mysql> insert into score_info values('100004','eg',99); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100004','mt',85); Query OK, 1 row affected (0.01 sec)
mysql> insert into score_info values('100004','vc',90); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100005','eg',69); Query OK, 1 row affected (0.01 sec)
mysql> insert into score_info values('100005','mt',77); Query OK, 1 row affected (0.02 sec)
mysql> insert into score_info values('100005','vc',80); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100006','eg',89); Query OK, 1 row affected (0.02 sec)
mysql> insert into score_info values('100006','mt',60); Query OK, 1 row affected (0.03 sec)
mysql> insert into score_info values('100006','vc',83); Query OK, 1 row affected (0.02 sec)
第六节 实验六 更新记录
实验目标:学习更新表中记录
实验内容:更新学生基本信息表中学号100001同学的名字为刘翔 实验步骤:
如下所示,依次执行以下语句:
? 更新学生基本信息表 ? 查看更新后的记录
mysql> update std_info set name='张三丰' where nub='100001'; Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from std_Info where nub='100001'; +--------+--------+-------+------+ | nub | name | class | sex | +--------+--------+-------+------+ | 100001 | 刘翔 | 9701 | m | +--------+--------+-------+------+ 1 row in set (0.03 sec)
第七节 实验七 删除记录
实验目标:学习删除表中记录
实验内容:临时在课程表中增加一条记录,然后删除新增记录 实验步骤:
如下所示,依次执行以下语句:
? 课程表中增加一条记录 ? 查看课程表中所有记录 ? 删除新增记录
? 查看课程中记录变化 mysql> insert into curricula values('sy','操作系统'); Query OK, 1 row affected (0.03 sec) mysql> select * from curricula; +------+----------+ | code | Curlum | +------+----------+ | eg | 英语 | | mt | 高数 | | vc | vc | | sy | 操作系统 | +------+----------+ 4 rows in set (0.00 sec) mysql> delete from curricula where code='sy'; Query OK, 1 row affected (0.03 sec) mysql> select * from curricula; +------+--------+ | code | Curlum | +------+--------+ | eg | 英语 | | mt | 高数 | | vc | vc | +------+--------+ 3 rows in set (0.00 sec)
然后点击确定就可以了。
我们可以通过命令行状态验证这个用户,开始菜单中点运行,输入cmd。然后cd到安装mysql的目录下的bin目录。输入mysql –u 新用户名 –p 回车,输入密码,看是否可以进入mysql。
可以试验一下,use test。肯定提示不成功,因为这个用户咱们赋予他的权限只限于stud数据库。
4. 数据表的基本操作
下面我们来看,如何在MySQL-Front里面对数据库stud进行管理。比如创建表,查询表,更新表,删除表等操作。
创建表
选中stud,点击右键,选择新建表格,如下图:
一般选项中设定表名称,字符集选择gb2312,其他使用默认选项就可以了。 字段选项,用来增加字段。看下图:
点击左上角的小加号,出现具体设置字段的图:
位置:选择字段的位置,使在第一个,还是在id后面。Id使mysql里面默认的字段。不需要id字段,可以删除。
名称:字段名称,一般使用字母表示,命名规则是英文缩写。
类型:常用的类型有char,varchar,int,float,double,data,boolean等。具体的数据类型,大家自己查资料。
长度:根据实际情况设定。
默认值:初始化字段的值,可以是空,也可以指定的内容。 字符集,collation,备注都默认,
属性:是否允许空,这个根据实际情况选择。重要信息,不能为空的就去掉这个选项。
点击确定,增加成功。出现下图:
可以继续点击+号,增加字段。增加上sex char(1),birth date,birthaddr varchar(20)这三个字段。
增加成功以后,选中birth表,出现
对象浏览器中显示的是表的基本信息,字段,索引。
数据浏览器中,可以增、删、改记录。
点击右上角的+号就可以增加记录,第一个字段是系统默认,不用自己赋值。生日字段按照4位年-2位月-二位日的格式输入。输入完成后,点击右上角的绿色小对勾,发布。就ok了。
咱们可以用前面讲的命令行工具MySQL Command Line Client去看一下,是不是增加上记录了。
修改字段内容,可以直接用鼠标选中就可以修改了。记得修改以后,发布一下。
在数据表格上点击右键,出现下面菜单:
Sorting:是选择升序还是降序的
过滤:可以按照当前字段的值进行过滤。相当于sql语句中的where条件。 输出:可以把当前数据表的内容输出成各种格式的文件。 其他的功能很明确。 下面看一下sql编辑器
输入sql语句,点击工具栏中的绿色小三角运行快捷键。就出现下面的查询结果。
点击上面的+,-也可以对当前表进行操作。
第三章 Mysql实验
实验目标:通过mysql实例的操作,掌握mysql数据库配置和管理方法,
掌握常用sql语句的用法。
实验内容:在mysql中创建stud数据库,其中包含3个表,学生基本信
息表,课程表,成绩表。用sql语句实现,班级学生总人数,班级最高分,年纪最高分,学生成绩排名,平均分计算等要求。
说明:
1. 一个命令通常由SQL语句组成,随后有一个分号。(有一些例外不
需要一个分号。退出命令QUIT是他们之一。) 2. mysql> 表明mysql正准备接受一个新命令。
3. 如果你决定,你不想要执行你在输入过程中输入的一个命令,打入
\\c取消它
4. 提示符 意思
mysql> 准备好接受新命令
-> 等待多行命令的下一行
'> 等待下一行,收集以单引号(“'”)开始的字符串 \ 等待下一行,收集以双引号(“\
5. 假如系统提示:No database selected, 使用use 数据库名,指
定要操作的数据库就ok了 6. 在下文类似
mysql> create database stud;
Query OK, 1 row affected (0.03 sec)的命令中, 7. 加粗文字为输入的命令行,蓝色文字为输出结果。
从开始菜单,进入Mysql Command Line Client 第一节 实验一 创建数据库
实验目标:学习创建数据库 实验内容:创建数据库 实验步骤:
如下所示,依次执行以下语句:
? 创建数据库 ? 查看效果 mysql> create database stud; Query OK, 1 row affected (0.03 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | stud | | test | +--------------------+ 4 rows in set (0.20 sec) 第二节 实验二 创建用户
实验目标:学习创建用户
实验内容:创建对有stud数据库有各种权限的用户user1,密码也是user1 实验步骤:
如下所示,依次执行以下语句: ? 创建用户user1 ? 用user1登陆mysql
? 查看user1可以操作的数据库
mysql> grant select,insert,update,delete,create,drop on stud.* to user1@localhost identified by \ Query OK, 0 rows affected (0.13 sec)
Windows开始菜单中运行中输入cmd。进入安装mysql的目录下的bin目录。 输入mysql –u user1 –p 提示输入密码,输入密码user1。进入mysql命令行状态。
C:\\Documents and Settings\\Administrator>cd C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\
C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin>mysql -u user1 -p Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 6 to server version: 5.0.18-nt Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer. mysql>
可以使用show databases,查看当前用户可以操作的数据库。 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | stud | +--------------------+ 2 rows in set (0.00 sec)
INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。咱们暂时不用管这个,只对咱们的stud数据库进行操作就可以了。
第三节 实验三 创建表
实验目标:学习创建表
实验内容:创建学生基本信息表,课程表,成绩表 实验步骤:
如下所示,依次执行以下语句:
? 创建学生基本信息表std_info ? 查看表结构
? 创建课程表curricula ? 创建成绩表score_info
mysql>use stud(选择数据库)
mysql> Create table std_info (nub char(10) not null ,/* 学号 */ -> name varchar(20), /* 姓名 */ -> class char(8), /* 班级 */
-> sex char(1), /* 性别 m:男 f:女 */ -> primary key(nub));
Query OK, 0 rows affected (0.14 sec) mysql> desc std_info;
+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | nub | char(10) | NO | PRI | | | | name | varchar(20) | YES | | NULL | | | class | char(8) | YES | | NULL | | | sex | char(1) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.08 sec)
另外两个表,大家拷贝到mysql中,自己实验。3个表的脚本: 学生基本信息表:
Create table std_info (
nub char(10) not null ,/* 学号 */ name varchar(20), /* 姓名 */ class char(8), /* 班级 */
sex char(1) /* 性别 m:男 f:女 */ ); 课程表:
Create table curricula (code char(2), /* 课程代号 */ Curlum varchar(30) /* 课程名称 */ ); 成绩表:
Create table score_info ( nub char(10) not null , /* 学号 */
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Mysql学习手册在线全文阅读。
相关推荐: