1. 什么是MySQL
- MySQL是一个开源的关系型数据库管理系统
- 数据库是指用特定方式存储数据的仓库
- 关系型是指数据库中的各种实体之间可以建立关系
2. RDBMS术语
- 数据库: 数据库是一些关联的表的组成的集合。
- 数据表: 表是数据的载体。在一个数据库中的表看起来像一个简单的excel表格。
- 列: 一列包含了相同类型的数据, 例如用户表中的用户名。
- 行:一行是一组列组合成的数据,例如一条用户的数据。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表
3. 官方下载 MySQL
http://dev.mysql.com/downloads/mysql/

4. 云盘下载MySQL
http://pan.baidu.com/s/1pLf6B7X#path=%252Fmysql 
4.1 双击MSI安装文件

2. 同意许可协议
3. 典型安装是安装服务器和客户端
4. 开始安装,安装完成后还有广告也可以忽略
5. 可以立即可以配置服务
6. 开始配置向导
7. 执行典型配置
8. 配置mysql实例
9. 修改安全设置
10. 开始执行配置
11. 配置成功
12. 查看服务配置

mac安装
-
先安装
homebrewhttp://brew.sh/ -
安装mysql
brew install mysql
1. 双击MSI安装文件
2. 同意许可协议

windows停止启动mysql
1. 通过服务界面启动
2. 通过命令行启动

mac停止启动mysql
service stop mysql 停止mysql service start mysql 启动mysql
mysql登录
使用root用户以123456密码登陆本机上的mysql服务器
参数说明
| 命令 | 参数 | 描述 |
|---|---|---|
| mysql | -u | 用户名 |
| mysql | -p | 密码 |
| mysql | -h | 指定服务器的IP |
| mysql | -V | 输出版本号并退出 |
mysql退出
mysql语句规范
- 关键字与函数名称全部大写
- 数据库名称表名称字段名称全部小写
- SQL语句必须以分号结尾
数据库语句
| 功能 | 语句 | 示例 |
|---|---|---|
| 创建数据库 | CREATE DATABASE db_name CHARACTER SET charname | create database studb CHARACTER SET utf8 |
| 查看当前数据库 | SHOW DATABASES | show databases |
| 删除数据库 | DROP DATABASE db_name | drop database studb |
数据类型
选择最合理最合适的数据类型
| 数据类型 | 说明 |
|---|---|
| INT | 整数 |
| FLOAT | 浮点数 |
| DATETIME | 日期日期型 |
| DATE | 日期日期型 |
| CHAR(M) | 定长字符类型 |
| VARCHAR(M) | 不定长字符类型 |
数据表操作
表是一个二维的表格,行称为记录,列称为字段
| 功能 | 语句 | 示例 |
|---|---|---|
| 打开数据库 | USE db_name | use studb |
| 创建表 | CREATE TABLE table_name(column_name data_type,...) | CREATE TABLE student(id int identify,name varchar(20),age int) |
| 查看数据表 | SHOW TABLES | show tables |
| 查看表结构 | SHOW COLUMNS FROM tbl_name | show columns from student |
行记录操作
| 功能 | 语句 | 示例 |
|---|---|---|
| 插入记录 | INSERT INTO tbl_name[(col_names...)] values (val...) | insert into student(name,age) values('张静',18) |
| 查询记录 | SELECT expr... FROM tbl_name | select * from student |
列级约束
| 语法 | 说明 | |
|---|---|---|
| AUTO_INCREMENT | 自动递增 | 自动编号,且必须与主键组合使用,数据类型,起始值为1,每次增量为1 |
| PRIMARY KEY | 主键约束 | 每张表只能存在一个主键,主键保证记录的唯一性,主键自动为NOT NULL |
| FOREIGN KEY | 外键约束 | 保持数据一致性,实现一对一或一对多的关系 |
记录操作
| 功能 | 语句 | 示例 |
|---|---|---|
| 插入记录 | INSERT INTO tbl_name[(col_names...)] values (val...) | insert into student(name,age) values('张静',18) |
| 更新记录 | UPDATE tbl_name SET col_name1=expr1,col_name2=exp2 WHERE where_condition | update student where age = age+1 |
| 删除记录 | DELETE tbl_name where where_condition | delete from student where age < 20 |
SELECT查询
数据准备
学生表
student (id 主键,name 名称)
| id | name |
|---|---|
| 1 | 张三 |
| 2 | 李四 |
课程表
course (id 主键,name 名称)
| id | name |
|---|---|
| 1 | 语文 |
| 2 | 数学 |
| 3 | 英语 |
成绩表
score(cid 科目名称,sid 学生ID,score 成绩)
| cid | sid | score |
|---|---|---|
| 1 | 1 | 70 |
| 1 | 2 | 70 |
| 1 | 3 | 70 |
| 2 | 1 | 80 |
| 2 | 2 | 80 |
| 2 | 3 | 80 |
练习题
- 查询全班的语文平均分
- 查询每个学生的平均成绩
- 按总分进行全班排名
珠峰培训node培训之MongoDB+Express+Angular+Node+Bootstrap+Linux开发的爬虫











