MySQL简版(一)
第一章 数据库的基本概念
1.1 数据库的英文单词
- Database,简称DB。
1.2 什么是数据库?
- 用于存储和管理数据的仓库。
1.3 数据库的特点
- 持久化存储数据的。其实数据库就是一个文件系统。
- 方便存储和管理数据。
- 使用了统一的方式(SQL)来操作数据库。
1.4 常见的数据库软件
- MySQL:开源免费的数据库,中型数据库。已经被Oracle收购了。MySQL6.x版本也开始收费了。
- Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购了SUN公司,得到了MySQL数据库。
- DB2:IBM公司的数据库产品,收费的,常用在银行系统中。
- SQLServer:微软公司收费的中型数据库、C#等语言常用。
- SyBase:已经淡出历史舞台。提供了一个非常专业的数据建模工具PowerDesigner。
- SQLite:嵌入式的小型数据库,应用在手机端。
- 常用的数据库:Oracle和MySQL。
- 在web系统开发中,使用最多的是MySQL数据库,原因如下:
- ①开源、免费。
- ②功能足够强大,足以应付web应用开发(最高支持千万级别的并发访问)。
第二章 MySQL的安装和使用
2.1 MySQL的安装
- 略。
2.2 MySQL的使用
2.2.1 MySQL的登录
- 命令:
mysql -u用户名 -p密码 -h主机地址 -P端口
- 示例:
mysql -uroot -p123456
2.2.2 MySQL的退出
- 命令:
exit
quit
2.3 MySQL数据库、表、数据的关系
第三章 SQL的基本概念和通用语法
3.1 SQL的基本概念
- 结构化查询语言,简称SQL,是指对数据库进行操作的一种语言。
3.2 SQL的作用
- 通过SQL语句我们可以方便的操作数据库中的数据、表、数据库。
- SQL是数据库管理系统都需要遵循的规范。
- 不同的数据库生产厂商都支持SQL语句,但都具有特色。
3.3 SQL语句的分类
3.3.1 DDL(数据定义语言)
- 用来定义数据库对象:数据库、表、列等。
- 关键字是create、drop、alter等。
3.3.2 DML(数据操作语言)
- 用来对数据库表的数据进行增删改。
- 关键字是insert、update、delete等。
3.3.3 DQL(数据查询语言)
- 用来查询数据库中表的记录(数据)。
- 关键字是select、where等。
3.3.4 DCL(数据控制语言)
- 用来定义数据库的访问权限和安全级别以及创建用户。
- 关键字是grant、revoke等。
3.4 SQL的通用语法
- SQL语句可以单行或多行书写,以分号结尾。
- 可使用空格或缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写(Linux上例外),关键字建议大写。
- 注释
-- 单行注释
/*
* 多行注释
*/
第四章 数据库的增删改查
4.1 查看数据库
- 查看所有的数据库:
show databases;
- 查看某个数据库的定义信息:
show create database db1;
4.2 创建数据库
- 语法:
create database 数据库名;
- 判断数据库是否已经存在,不存在则创建数据库:
create database if not exists 数据库名;
- 创建数据库并指定字符集:
create database 数据库名 character set 字符集;
4.3 修改数据库
- 修改数据库的字符集:
alter database 数据库名 character set 字符集;
4.4 删除数据库
- 语法:
drop database if exists 数据库名 ;
4.5 使用数据库
- 查看正在使用的数据库:
select database();
- 使用/切换数据库:
use 数据库名;
第五章 数据表的增删改查
5.1 查询数据表
- 查询某个数据库中的所有的数据库表:
-- 使用某个数据库
use test;
-- 查询test数据库下的所有数据表
show tables;
- 查询表结构:
desc 表名;
5.2 创建表
- 语法:
create table 表名(
字段 类型,
字段 类型,
……
);
- 示例:
create table employee(
id int PRIMARY key auto_increment COMMENT '主键',
name VARCHAR(32) COMMENT'名称',
score double(5,2) COMMENT '分数',
birthday date COMMENT '出生日期',
create_time TIMESTAMP COMMENT'创建时间:如果将来不给timestamp的字段赋值,系统默认使用当前的系统时间,来自动赋值',
been_deleted int COMMENT '0表示正常1表示删除 ',
update_time datetime comment '修改时间'
);
5.3 删除表
- 语法:
drop table if exists 表名;
5.4 修改表
- 修改表名:
alter table 表名 rename to 新表名;
- 修改表的字符集:
-- 查看表的字符集
show create table 表名;
-- 修改表的字符集
alter table 表名 character set 字符集;
- 添加列(字段):
alter table 表名 add column 字段 数据类型;
- 修改列:
-- 修改字段名和数据类型
alter table 表名 change column 旧字段名 新字段名 数据类型;
-- 修改字段的数据类型
alter table 表名 modify column 字段名 数据类型;
- 删除列:
alter table 表名 drop column 字段名;
第六章 数据库表中记录的操作
6.1 添加数据
- 语法:
insert into 表名(字段1,字段2,……,字段n) values(值1,值2,……,值n);
- 示例:
INSERT INTO employee ( `name`,score, birthday, been_deleted )
VALUES
( '张三', 90, '1992-05-01', 0 );
6.2 删除数据
- 语法:
delete from 表名 [条件where];
- 示例:
DELETE
FROM
employee
WHERE
id = 1;
6.3 修改数据
- 语法:
update 表名 set 字段1=值1,字段2=值2,……[条件where];
- 示例:
UPDATE employee
SET score = 90
WHERE
id = 2;
第七章 数据库的查询操作
7.1 准备工作
- sql:
CREATE TABLE student (
id int, -- 编号
name varchar(20), -- 姓名
age int, -- 年龄
sex varchar(5), -- 性别
address varchar(100), -- 地址
math int, -- 数学
english int -- 英语
);
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男','杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),(4,'柳岩',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);
7.2 基础查询
- 语法:
select *
from 表名;
- 示例:查询姓名和年龄
SELECT
`name` AS '姓名',
`age` AS '年龄'
FROM
student;
- 示例:查询地址
SELECT DISTINCT
`address` AS '地址'
FROM
student;
- 示例:查询姓名和地址
SELECT DISTINCT
`name` as '姓名',
`address` AS '地址'
FROM
student;
- 示例:查询姓名和对应的分数
SELECT
`name` AS '姓名',
`math` AS '数学',
`english` AS '英语',
IFNULL( `math`, 0 ) + IFNULL( `english`, 0 ) AS '总分'
FROM
student;
7.3 条件查询
- 语法:
select 字段1,字段2,……,字段n
where 条件;
- 示例:查询年龄>20岁的学生
SELECT
*
FROM
student
WHERE
age >= 20;
- 示例:查询年龄=20岁的学生
SELECT
*
FROM
student
WHERE
age = 20;
- 示例:查询年龄不等于20岁的学生
SELECT
*
FROM
student
WHERE
age != 20;
SELECT
*
FROM
student
WHERE
age <> 20;
- 示例:查询年龄>=20并且年龄<=30的学生
SELECT
*
FROM
student
WHERE
age BETWEEN 20 and 30;
SELECT
*
FROM
student
WHERE
age >= 20 AND age <= 30;
- 示例:查询年龄在22岁、19岁、25岁的学生
SELECT
*
FROM
student
WHERE
age = 22
OR age = 19
OR age = 25;
SELECT
*
FROM
student
WHERE
age in(22,19,25);
- 示例:查询英语成绩为Null的学生
SELECT
*
FROM
student
WHERE
english IS NULL
- 示例:查询英文成绩不为Null的学生
SELECT
*
FROM
student
WHERE
english IS NOT NULL
7.4 模糊查询
- 示例:
select 字段1,字段2,……,字段n
where 条件;
-- where条件里面使用Like关键字
- 示例:查询姓马的学生
SELECT
*
FROM
student
WHERE
`name` LIKE '马%';
- 示例:查询姓名中第二个字是化的学生
SELECT
*
FROM
student
WHERE
`name` LIKE '_化%';
- 示例:查询姓名中包含马的学生
SELECT
*
FROM
student
WHERE
NAME LIKE '%马%';
7.5 排序查询
- 语法:
select 字段1,字段2,……,字段n
where 条件
order by 字段1,字段2,……,字段n [asc|desc];
- 示例:查询学生信息按照数学成绩降序排序
SELECT
*
FROM
student
ORDER BY
math DESC;
- 示例:查询学生信息按照数学成绩升序排序
SELECT
*
FROM
student
ORDER BY
math ASC;
- 示例:查询学生信息按照数学成绩排名,如果数学成绩一致,按照英语成绩排序
SELECT
*
FROM
student
ORDER BY
math ASC,
english ASC;
7.6 聚合函数
- 将一列数据作为一个整体,进行纵向的计算。
- 基本的聚合函数:
count(字段) -- 计算个数
sum(字段) -- 求和
avg(字段) -- 平均值
max(字段) -- 最大值
min(字段) -- 最小值
- 注意:
- 聚合函数计算的时候,会排除null值。
- 示例:求学生的人数
SELECT
COUNT( * )
FROM
student
- 示例:求学生数学成绩的最大值
SELECT
max( math )
FROM
student
- 示例:求学生数学成绩的最小值
SELECT
min( math )
FROM
student
- 示例:求学生数学成绩的总和
SELECT
sum( math )
FROM
student
- 示例:求学生数学成绩的平均值
SELECT
avg( math )
FROM
student
7.7 分组查询
- 语法:
select 字段1,字段2,……,字段n
where 筛选条件
group by 字段1,字段2,……,字段n
having 分组后条件
order by 字段1,字段2,……,字段n [asc|desc];
- 示例:按性别分组,分别查询男生和女生的平均分
SELECT
sex,
avg(math+english)
FROM
student
GROUP BY
sex
- 示例:按照性别分组,分别查询男生和女生的人数
SELECT
sex,
count(*)
FROM
student
GROUP BY
sex
7.8 分页查询
- 语法:
select 字段1,字段2,……,字段n
where 筛选条件
group by 字段1,字段2,……,字段n
having 分组后条件
order by 字段1,字段2,……,字段n [asc|desc]
limit 起始索引,几条数据;
- 示例:
SELECT
*
FROM
student
LIMIT 0,3
MySQL简版(一)的更多相关文章
- MySQL简版(二)
第一章 表的约束 1.1 概念 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 1.2 分类 主键约束:primary key. 非空约束:not null. 唯一约束:unique. 外键 ...
- 彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如server字符编码还停留在latin12.table的语系设定问题(包含character与collation)3.客 ...
- mysql绿色版安装问题解决(ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061))
原来一直是使用MySQL安装版没有出现过问题,今天在安装绿色版MySQL时出现了点问题 在安装成windows服务成功后,用net start mysql 启动时提示启动成功,但当我连接mysql就报 ...
- mysql绿色版在windows系统中的启动
mysql绿色版在windows系统中的启动 1.下载mysql免安装版 例如:mysql-5.7.11-winx64 2.修改配置文件,my-default.ini名称改为:my.ini,文件里面的 ...
- java语言实现简单接口工具--粗简版
2016注定是变化的一年,忙碌.网红.项目融资失败,现在有点时间整整帖子~~ 目标: 提高工作效率与质量,能支持平台全量接口回归测试与迭代测试也要满足单一接口联调测试. 使用人员: 测试,开发 工具包 ...
- Database(Mysql)发版控制二
author:skate time:2014/08/18 Database(Mysql)发版控制 The Liquibase Tool related Database 一.Installation ...
- Windows 8.1下 MySQL绿色版安装配置与使用
原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...
- 安装、设置与启动MySql绿色版的方法
原文:安装.设置与启动MySql绿色版的方法 1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysq ...
- MySql绿色版配置及使用详解
原文:MySql绿色版配置及使用详解 最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySq ...
随机推荐
- DAY 1模拟赛
DAY1 杨溢鑫小姐姐出题 好毒瘤啊 T1 低仿机器人 (robo,1s,64M) 题目描述 自从 Dji 推出 robomaster S1 机器人过后,小文就一直缠着爸爸想要一个机器人.没想到爸爸最 ...
- leetcode 102.Binary Tree Level Order Traversal 二叉树的层次遍历
基础为用队列实现二叉树的层序遍历,本题变体是分别存储某一层的元素,那么只要知道,每一层的元素都是上一层的子元素,那么只要在while循环里面加个for循环,将当前队列的值(即本层元素)全部访问后再执行 ...
- ES6中数组和对象的扩展运算符拷贝问题以及常用的深浅拷贝方法
在ES6中新增了扩展运算符可以对数组和对象进行操作.有时候会遇到数组和对象的拷贝,可能会用到扩展运算符.那么这个扩展运算符到底是深拷贝还是浅拷贝呢? 一..使用扩展运算符拷贝 首先是下面的代码. le ...
- go bigfile (文件传输管理系统)前端分片上传demo
BIGFILE Github地址: https://github.com/bigfile/bigfile 欢迎大家前来issue & star BIGFILE 中文文档地址:https://l ...
- 打印GC日志
所需参数如下: -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -verbose:gc -Xloggc:gc.log 会在根目录生成 gc.log 文件,里面记录 ...
- JMeter常用的4种参数化方式-操作解析
目录结构 一.JMeter参数化简介 1.JMeter参数化的概念 2.JMeter参数化方式之使用场景对比 二.JMeter参数化的4种主要方式-操作演练 1.User Parameters(用户参 ...
- idea中配置tomcat详细
1:首先要添加一个tomcat流程 2:配置tomcat: 3:配置tomcat中的deployment(就是配置你需要部署的工程) 4:配置tomcat中需要输出的日志logs 5:启动 tomca ...
- springcloud(一)
Spring Cloud是什么鬼? Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线. ...
- linux 正则表达式 元字符
\b 单词边界 \bcool\b 只匹配cool字符串 [root@MongoDB ~]# cat test.txt i am mike1 i am mike i am mike12 匹配有mike ...
- LINUX “软链接”和“硬链接”的区别
今天在知乎上看到一篇十分有趣的问题: 如何评价微软高级工程师痴迷于soft link这一linux常见概念? 虽然又是知名撕逼王曾某的撕逼帖,但是我还是想就题目中链接的问题简单地讲讲. 什么是链接? ...