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://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 ;
浙公网安备 33010602011771号