1、常见数据库 Oracle 甲骨文 DB2 IBM SQL Server 微软 Sybase 赛尔斯 MySQL 甲骨文
2、理解数据库 RDBMS = Manager + Database Relational Database Management System 关系型数据库管理系统
Database = N 个 Table Table: 表结构、表记录
课时2 Java应用与数据库的关系…
课时3-4 安装/删除MySQL安装路径不要有中文
MAC brew安装/卸载mysql
$ brew install mysql
$ brew uninstall mysql
课时5 MySQL安装路径以及配置信息
mysqld 服务端 mysql 客户端
课时6 开启关闭服务器以及登录退出客户端mysql启动/关闭服务
$ mysql.server start
$ mysql.server stop
登录退出客户端
# 登录
$ mysql -uroot -p
# 查看数据库
> show databases;
# 退出
> exit/quit;
课时7 SQL语言的概述
SQL Structured Query Language 结构化查询语言
SQL方言 某些数据库的独有语法, 例如:limit语句只在MySQL中使用
SQL语法 1、单行或多行书写,分号结尾 2、可以使用空格或缩进增强可读性 3、MySQL不区分大小写,建议使用大写
SQL语句分类
简称全称中文说明DDLData Definition Language数据定义语言定义库、表、列结构DCLData Control Language数据控制语言定义访问权限和安全级别DMLData Manipulation Language数据操作语言操作数据,增、删、改DQLData Query Language数据查询语言查询数据 课时8 DDL(数据定义语言)之操作数据库-- 查看所有数据库:
show databases;
-- 选择数据库:
use ;
-- 创建数据库:
create database [if not exists] [charset=utf8];
-- 删除数据库:
drop database [if exists] ;
-- 修改数据库编码:
alter database character set utf8
课时9-10 数据类型介绍
int 整型 double 浮点型,例如 double(5, 2) 表示最多5位,其中2位小数,即最大999.99 decimal 浮点型,货币使用,不会出现精度缺失 char 定长字符串,char(255),长度不足指定长度会补足到指定长度,比变长节省空间 varchar 变长字符串 varchar(65535)
text(clob) 字符串 tynytext(255B), text(64K), mediumtext(16M), longtext(4G)
blob 字节类型 tynyblob(255B), blob(64K), mediumblob(16M), longblob(4G)
date 日期 yyyy-MM-dd time 时间 hh:mm:ss timestamp 时间戳
课时11 DDL(数据定义语言)之操作表1、创建表, 注意最后一列没有逗号
create table [if not exists] (
,
...
);
eg:
-- 创建数据库
create database school;
-- 切换数据库
use school;
-- 创建数据表
create table tb_stu(
number char(11),
name varchar(50),
age int,
gender varchar(10)
);
-- 查看当前数据库中所有表
show tables;
-- 查看指定表的创建语句
show create table tb_stu;
show create table stu \G
d
-- 查看表结构
desc tb_stu;
-- 删除表
drop table ts_stu;
show tables;
2、修改表
-- 前缀
alter table
-- 添加列
alter table add (
,
...
);
-- 修改列类型
-- 如果已存在数据,新类型可能会影响到已存在数据
alter table modify 列名 列类型;
-- 修改列名称
alter table change 原列名 新列名 列类型;
-- 删除列
alter table drop 列名;
-- 修改表名
alter table 原表名 rename to 新表名;
课时12-13-14 DML(数据操作语言)
查询所有记录
select * from ;
1、插入数据
insert into (列名1, 列名2,...) values(列值1, 列值1,...);
没有指定的列等同于插入默认值 值的顺序与指定列顺序对应 列名可省略(不建议)
字符串类型使用单引号,不能使用双引号 日期类型也要使用单引号
2、修改数据
update 表名 set 列名1=列值1, 列名2=列值2,...[where条件]
条件必须是一个boolean类型的值或表达式 运算符:=、!=、、>、=、0 -- (4)列别名 select name as 姓名 from table; select name 姓名 from table; 课时17 DQL(数据查询语言)之条件查询
使用where子句控制记录
select * from table where salary>500;
select * from table where name in ('李白', '杜甫');
select * from table where salary between 200 and 500;
课时18 DQL(数据查询语言)之模糊查询
下划线_
代表一个字符 百分号%
代表[0,n]个字符
select * from table where name like '张_';
select * from table where name like '张%';
课时19 DQL(数据查询语言)之排序
默认升序排序
-- 升序 默认, asc可省略
select * from table order by id asc;
-- 降序
select * from table order by id desc;
-- 多列排序
select * from table order by salary asc, id desc;
课时20 DQL(数据查询语言)之聚合函数
-- 统计有效行数,整行全是null不计数
select count(*) from table;
-- 统计不是null的行数
select count(id) from table;
-- 求和
select sum(salary) from table;
-- 最小值
select min(salary) from table;
-- 最大值
select max(salary) from table;
-- 平均值
select avg(salary) from table;
select count(*) 人数,
sum(salary) 总和, avg(salary) 平均值,
max(salary) 最高, min(salary) 最低
from table;
课时21 DQL(数据查询语言)之分组查询
select job, count(*) from table group by job;
-- 先过滤再分组
select job, count(*) from table where salary > 1500 group by job;
-- 先过滤,再分组,再对分组结果过滤
select job, count(*) from table where salary > 1500 group by job having count(*) >= 2;
课时22 DQL(数据查询语言)之limit方言
计算公式:
跳过行数 = ( 当前页 - 1 ) * 每页记录数
select * from table limit count;
select * from table limit count OFFSET offset;
select * from table limit offset, count;