MySQL

MySQL是一个关系型数据库管理系统。它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库,其主要特点:

1、多用户、多线程的数据块服务器。
2、结构查询语言
3、速度快、使用方便、查询复杂查询语句
4、跨平台

5、体积小、速度快

 

一、下载安装

说了这些,我们首要任务时下载安装MySQL。

首先是下载 mysql-installer-community-5.6.14.0.msi ,你也可以到 MySQL官网下载:

http://dev.mysql.com/downloads/mysql/

你也可以到网盘:

http://pan.baidu.com/s/1egYj


为了操作更方便,下载数据库管理工具:

http://www.navicat.com.cn/download

 你也可以在网盘下载,下载地址:

http://pan.baidu.com/s/1sjuS8aT

二、MySql常见类型

数据类型:

1、数值类型 number

整数  int

浮点数  float,double,decimal

 

 

2、字符串 sstring

char  定长字符串,必须制定长度,长度在0~255

varchar  可变长度,长度在0~255

text 文本类型,长度超过255

blob  存储二进制数据

 

3、日期时间类型

date 日期

year  年

time  时间

datetime  时间

timestamp  时间戳

 

如何选择合适的类型:

1、合法值

2、存储效率

3、显示的格式


二、常见操作
经过上面的下载安装,已做好了MySQL的准备,下面,我们来做一个常用的简单操作。

 1.  对数据库的操作

1)    创建数据库,创建一个名为:students 的数据库:

CREATE DATABASE if NOT EXISTS students;

2)    查看所有数据库:

SHOW DATABASES;

3)    使用或切换数据库 Use dbname,如:切换到students数据库USE students;

4)  删除数据库

DROP DATABASE IF EXISTS students;

5)  修改数据库名

 

 2.  对表的操作

改模块的操作以students数据库,scores表为基础。

1) 创建表(scores)

CREATE TABLE scores(id INT PRIMARY KEY,NAME VARCHAR(40),lesson VARCHAR(60),score INT);

2) 往表中插入一条数据

INSERT INTO scores(id,name,lesson,score) VALUES(10,"smaile","mysql",90);

3) 查询数据库中的所有表

SHOW TABLES FROM students;

4) 查询一张表(scores)的所有字段

SHOW COLUMNS FROM scores;

5) 查询表

SELECT * FROM scores;

6) 删除表

DROP TABLE IF EXISTS scores;

 

 3.  修改表结构

1) 修改表中的字段的名字CHANGE(将NAME改为name)

ALTER TABLE scores CHANGE NAME name VARCHAR(32);

2) 修改表中的字段类型MODIFY

ALTER TABLE scores MODIFY NAME int;

3) 给表添加一个列ADD

ALTER TABLE scores ADD note VARCHAR(255);

4) 删除表中的一个列DROP

ALTER TABLE scores DROP note

4.     扩展

1) 扩展知识点

SELECT */colname FROM tablename

WHERE/WHERE IN 查询条件

GROUP BY colname 分组,根据所给列名返回查询结果
HAVING score>60  对分组后的数据进行过滤
ORDER BY colname DESC/ ASC排序,对结果进行排序的规则
limit  0,5  从索引为0开始,取5条数据(分页)

2) 拷贝一个表

CREATE TABLE scores1 SELECT * FROM scores;

5. 多表操作

1) 查询多张表(name1,name2是表的别名)

SELECT  *  FROM tabname name1,tabnname2 name2 WHERE name1.id =name2.id;

2) 内连接INNER JOIN

SELECT  *  FROM  tabname1 INNER JOIN tabnname2  WHERE name1.id =name2.id;

3) 左连接,以左边的表为基准LEFT JOIN…ON

SELECT * FROM scores LEFT JOIN scores1 ON scores.id=scores1.id;

4) 右链接RIGHT JOIN…ON

SELECT * FROM scores RIGHT JOIN scores1 ON scores.id=scores1.id;

5) 关联表 UNION

 

6. 巩固练习

问 1:创建一个表(scores) 姓名 name 32, 课程 lesson 32, 分数 score int ,学生ID id 自动增加并且是主键。

 

问 2:scores的name列改为定长字符串,长度为20。

 

问3:查询每门课程的平均分,返回课程和平均分二列 avg(score)。

 

问 4:计算每个人的总成绩并降序排名 显示字段(姓名,总成绩)

 

问 5:删除表scores1中id不同,但其它信息都相同的冗余信息

 

 

 

 7.  练习答案

1、CREATE TABLE scores(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(32),lesson VARCHAR(32),score int);

2、ALTER TABLE scores MODIFY name CHAR(20);

3、SELECT lesson, AVG (score) FROM scores GROUP BY lesson;

4、SELECT name,SUM(score) FROM scores GROUP BY name ORDER BY SUM(score) DESC ;

 

 

posted on 2015-05-28 23:44  神经质女孩  阅读(113)  评论(0)    收藏  举报