第一章 数据库的基本概念

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的登录

  • 命令:
  1. mysql -u用户名 -p密码 -h主机地址 -P端口
  • 示例:
  1. mysql -uroot -p123456

2.2.2 MySQL的退出

  • 命令:
  1. exit
  1. 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上例外),关键字建议大写。
  • 注释
  1. -- 单行注释
  1. /*
  2. * 多行注释
  3. */

第四章 数据库的增删改查

4.1 查看数据库

  • 查看所有的数据库:
  1. show databases;
  • 查看某个数据库的定义信息:
  1. show create database db1;

4.2 创建数据库

  • 语法:
  1. create database 数据库名;
  • 判断数据库是否已经存在,不存在则创建数据库:
  1. create database if not exists 数据库名;
  • 创建数据库并指定字符集:
  1. create database 数据库名 character set 字符集;

4.3 修改数据库

  • 修改数据库的字符集:
  1. alter database 数据库名 character set 字符集;

4.4 删除数据库

  • 语法:
  1. drop database if exists 数据库名 ;

4.5 使用数据库

  • 查看正在使用的数据库:
  1. select database();
  • 使用/切换数据库:
  1. use 数据库名;

第五章 数据表的增删改查

5.1 查询数据表

  • 查询某个数据库中的所有的数据库表:
  1. -- 使用某个数据库
  2. use test;
  3. -- 查询test数据库下的所有数据表
  4. show tables;
  • 查询表结构:
  1. desc 表名;

5.2 创建表

  • 语法:
  1. create table 表名(
  2. 字段 类型,
  3. 字段 类型,
  4. ……
  5. );
  • 示例:
  1. create table employee(
  2. id int PRIMARY key auto_increment COMMENT '主键',
  3. name VARCHAR(32) COMMENT'名称',
  4. score double(5,2) COMMENT '分数',
  5. birthday date COMMENT '出生日期',
  6. create_time TIMESTAMP COMMENT'创建时间:如果将来不给timestamp的字段赋值,系统默认使用当前的系统时间,来自动赋值',
  7. been_deleted int COMMENT '0表示正常1表示删除 ',
  8. update_time datetime comment '修改时间'
  9. );

5.3 删除表

  • 语法:
  1. drop table if exists 表名;

5.4 修改表

  • 修改表名:
  1. alter table 表名 rename to 新表名;
  • 修改表的字符集:
  1. -- 查看表的字符集
  2. show create table 表名;
  3. -- 修改表的字符集
  4. alter table 表名 character set 字符集;
  • 添加列(字段):
  1. alter table 表名 add column 字段 数据类型;
  • 修改列:
  1. -- 修改字段名和数据类型
  2. alter table 表名 change column 旧字段名 新字段名 数据类型;
  3. -- 修改字段的数据类型
  4. alter table 表名 modify column 字段名 数据类型;
  • 删除列:
  1. alter table 表名 drop column 字段名;

第六章 数据库表中记录的操作

6.1 添加数据

  • 语法:
  1. insert into 表名(字段1,字段2,……,字段n) values(值1,值2,……,值n);
  • 示例:
  1. INSERT INTO employee ( `name`,score, birthday, been_deleted )
  2. VALUES
  3. ( '张三', 90, '1992-05-01', 0 );

6.2 删除数据

  • 语法:
  1. delete from 表名 [条件where];
  • 示例:
  1. DELETE
  2. FROM
  3. employee
  4. WHERE
  5. id = 1;

6.3 修改数据

  • 语法:
  1. update 表名 set 字段1=值1,字段2=值2,……[条件where];
  • 示例:
  1. UPDATE employee
  2. SET score = 90
  3. WHERE
  4. id = 2;

第七章 数据库的查询操作

7.1 准备工作

  • sql:
  1. CREATE TABLE student (
  2. id int, -- 编号
  3. name varchar(20), -- 姓名
  4. age int, -- 年龄
  5. sex varchar(5), -- 性别
  6. address varchar(100), -- 地址
  7. math int, -- 数学
  8. english int -- 英语
  9. );
  10. 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 基础查询

  • 语法:
  1. select *
  2. from 表名;
  • 示例:查询姓名和年龄
  1. SELECT
  2. `name` AS '姓名',
  3. `age` AS '年龄'
  4. FROM
  5. student;
  • 示例:查询地址
  1. SELECT DISTINCT
  2. `address` AS '地址'
  3. FROM
  4. student;
  • 示例:查询姓名和地址
  1. SELECT DISTINCT
  2. `name` as '姓名',
  3. `address` AS '地址'
  4. FROM
  5. student;
  • 示例:查询姓名和对应的分数
  1. SELECT
  2. `name` AS '姓名',
  3. `math` AS '数学',
  4. `english` AS '英语',
  5. IFNULL( `math`, 0 ) + IFNULL( `english`, 0 ) AS '总分'
  6. FROM
  7. student;

7.3 条件查询

  • 语法:
  1. select 字段1,字段2,……,字段n
  2. where 条件;
  • 示例:查询年龄>20岁的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age >= 20;
  • 示例:查询年龄=20岁的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age = 20;
  • 示例:查询年龄不等于20岁的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age != 20;
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age <> 20;
  • 示例:查询年龄>=20并且年龄<=30的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age BETWEEN 20 and 30;
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age >= 20 AND age <= 30;
  • 示例:查询年龄在22岁、19岁、25岁的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age = 22
  7. OR age = 19
  8. OR age = 25;
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. age in(22,19,25);
  • 示例:查询英语成绩为Null的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. english IS NULL
  • 示例:查询英文成绩不为Null的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. english IS NOT NULL

7.4 模糊查询

  • 示例:
  1. select 字段1,字段2,……,字段n
  2. where 条件;
  3. -- where条件里面使用Like关键字
  • 示例:查询姓马的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. `name` LIKE '马%';
  • 示例:查询姓名中第二个字是化的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. `name` LIKE '_化%';
  • 示例:查询姓名中包含马的学生
  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. NAME LIKE '%马%';

7.5 排序查询

  • 语法:
  1. select 字段1,字段2,……,字段n
  2. where 条件
  3. order by 字段1,字段2,……,字段n [asc|desc];
  • 示例:查询学生信息按照数学成绩降序排序
  1. SELECT
  2. *
  3. FROM
  4. student
  5. ORDER BY
  6. math DESC;
  • 示例:查询学生信息按照数学成绩升序排序
  1. SELECT
  2. *
  3. FROM
  4. student
  5. ORDER BY
  6. math ASC;
  • 示例:查询学生信息按照数学成绩排名,如果数学成绩一致,按照英语成绩排序
  1. SELECT
  2. *
  3. FROM
  4. student
  5. ORDER BY
  6. math ASC,
  7. english ASC;

7.6 聚合函数

  • 将一列数据作为一个整体,进行纵向的计算。
  • 基本的聚合函数:
  1. count(字段) -- 计算个数
  2. sum(字段) -- 求和
  3. avg(字段) -- 平均值
  4. max(字段) -- 最大值
  5. min(字段) -- 最小值
  • 注意:
  • 聚合函数计算的时候,会排除null值。
  • 示例:求学生的人数
  1. SELECT
  2. COUNT( * )
  3. FROM
  4. student
  • 示例:求学生数学成绩的最大值
  1. SELECT
  2. max( math )
  3. FROM
  4. student
  • 示例:求学生数学成绩的最小值
  1. SELECT
  2. min( math )
  3. FROM
  4. student
  • 示例:求学生数学成绩的总和
  1. SELECT
  2. sum( math )
  3. FROM
  4. student
  • 示例:求学生数学成绩的平均值
  1. SELECT
  2. avg( math )
  3. FROM
  4. student

7.7 分组查询

  • 语法:
  1. select 字段1,字段2,……,字段n
  2. where 筛选条件
  3. group by 字段1,字段2,……,字段n
  4. having 分组后条件
  5. order by 字段1,字段2,……,字段n [asc|desc];
  • 示例:按性别分组,分别查询男生和女生的平均分
  1. SELECT
  2. sex,
  3. avg(math+english)
  4. FROM
  5. student
  6. GROUP BY
  7. sex
  • 示例:按照性别分组,分别查询男生和女生的人数
  1. SELECT
  2. sex,
  3. count(*)
  4. FROM
  5. student
  6. GROUP BY
  7. sex

7.8 分页查询

  • 语法:
  1. select 字段1,字段2,……,字段n
  2. where 筛选条件
  3. group by 字段1,字段2,……,字段n
  4. having 分组后条件
  5. order by 字段1,字段2,……,字段n [asc|desc]
  6. limit 起始索引,几条数据;
  • 示例:
  1. SELECT
  2. *
  3. FROM
  4. student
  5. LIMIT 0,3

MySQL简版(一)的更多相关文章

  1. MySQL简版(二)

    第一章 表的约束 1.1 概念 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 1.2 分类 主键约束:primary key. 非空约束:not null. 唯一约束:unique. 外键 ...

  2. 彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码

    MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如server字符编码还停留在latin12.table的语系设定问题(包含character与collation)3.客 ...

  3. mysql绿色版安装问题解决(ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061))

    原来一直是使用MySQL安装版没有出现过问题,今天在安装绿色版MySQL时出现了点问题 在安装成windows服务成功后,用net start mysql 启动时提示启动成功,但当我连接mysql就报 ...

  4. mysql绿色版在windows系统中的启动

    mysql绿色版在windows系统中的启动 1.下载mysql免安装版 例如:mysql-5.7.11-winx64 2.修改配置文件,my-default.ini名称改为:my.ini,文件里面的 ...

  5. java语言实现简单接口工具--粗简版

    2016注定是变化的一年,忙碌.网红.项目融资失败,现在有点时间整整帖子~~ 目标: 提高工作效率与质量,能支持平台全量接口回归测试与迭代测试也要满足单一接口联调测试. 使用人员: 测试,开发 工具包 ...

  6. Database(Mysql)发版控制二

    author:skate time:2014/08/18 Database(Mysql)发版控制 The Liquibase Tool related Database 一.Installation ...

  7. Windows 8.1下 MySQL绿色版安装配置与使用

    原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...

  8. 安装、设置与启动MySql绿色版的方法

    原文:安装.设置与启动MySql绿色版的方法 1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysq ...

  9. MySql绿色版配置及使用详解

    原文:MySql绿色版配置及使用详解 最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySq ...

随机推荐

  1. python2与3自由切换

    Ubuntu-.04Python2与Python3自由切换 阅读目录(Content) 一.配置ssh链接 二.安装Python3及pip3 三.将Python3设置为默认 python2切换pyth ...

  2. 树链剖分&咕咕咕了好久好久的qtree3

    前言 显然qtree系列都是树链剖分辣 发现自己没有专门整理过树链剖分耶 辣么就把这篇博客魔改成树链剖分好辣(貌似除了树剖也没什么好写的) 正文 废话了辣么多终于开始了 一.树剖怎么写鸭 二.树剖有什 ...

  3. 【mysql】一对一关系的理解,以及Navicat Premium怎么设置字段的唯一性(UNIQUE)?

    背景:一对一关系设计方法: 设计2张表:customer表,student表 学生表中通过字段customer_id与customer表产生关系. student表中的customer_id与cust ...

  4. C—LINQ小结

    LINQ代表语言集成查询(Language-Integrated Query),它包括用于从数据源检索信息的一组功能.数据检索是许多程序的重要组成功能. 简介:System.Linq; var num ...

  5. vue启动流程

    继上一篇vue环境的搭建(在D盘新建文件夹vue_cli,把(我已经上传到了文件下)资料下tpls解压完后的所有文件都复制到D盘vue_cli下) 目录如图: 1.webstorm设置为了提高webS ...

  6. Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图

    三维绘图函数 三维绘制工具 函数view 实例:三维螺旋线 >> t=:pi/:*pi; plot3(sin(t),cos(t),t) grid %添加网格  plot3可以画出空间中的曲 ...

  7. Vijos lxhgww的奇思妙想--求K级祖先

    给出一棵树求K级祖先.O(N*logN+Q) 更详细的讲解见:https://www.cnblogs.com/cjyyb/p/9479258.html /* 要求k级祖先,我们可以把k拆成" ...

  8. 从企业版BOSS直聘,看求职简历技巧

    有时候,不是我们不可以,而是我们连面试的机会都没有.希望这篇文章能帮助大家找工作,有一个展示自己的机会. [ ] 最近负责测试的面试工作,在等HR推简历的时候害怕错过优秀的伙伴,找HR拿到了公司在BO ...

  9. 通过proxychains实现Ubuntu终端代理

    1.在终端内使用代理,需要使用proxychains: sudo apt-get install proxychains 2.编辑 /etc/proxychains.conf sudo gedit / ...

  10. spring @Value 获取配置文件为 null 常见的几种方式

    第一种方式: xx.properties 属性名称错误,未与@Value("${xxx}") 进行对应 第二种方式: 该类未注入到spring bean容器中 @Component ...