文章目录
- MYSQL 基础语法
-
- 目标
- 01_数据库概述-[★★★]
- 02_数据库安装与卸载-[★★★]
- 03_MySQL目录结构-[★]
- 04_数据库服务器启动和停止-[★★★]
- 05_数据库登录和退出-[★★★]
- 06_数据库服务器、数据库和表的关系-[★★★]
- 07_实体类与表的对应关系-[★★]
- 08_SQL 概述-[★★★]
- 09_DDL 语句-操作数据库-[★★★★]
- 10_SQLyog 工具安装和使用-[★★★]
- 11_MySQL 数据类型-[★★]
- 12_DDL 语句-操作数据表-[★★★★]
- 13_DDL 语句-修改表结构-[★]
- 14_DML 语句-插入数据-[★★★★]
- 15_DML 语句-更新数据-[★★★★]
- 16_DML 语句-删除数据-[★★★★]
- 17_DQL 语句-简单数据-[★★★★]
- 18_DQL 语句-条件查询-[★★★★]
- 19_数据库约束概述-[★★]
MYSQL 基础语法
目标
- 能够理解数据库的概念
- 能够安装MySQL数据库
- 能够启动,关闭及登录MySQL
- 能够使用SQL语句操作数据库
- 能够使用SQL语句操作表结构
- 能够使用SQL语句进行数据的添加修改和删除的操作
- 能够使用SQL语句进行排序
- 能够使用聚合函数
- 能够使用SQL语句进行分组查
- 能够使用SQL语句添加主键、外键、唯一、非空约束
01_数据库概述-[★★★]
数据库:
- 存储数据的仓库
数据库的作用:
- 方便对数据进行增删改查操作:使用SQL语句进行数据操作
数据库的类型
- 关系型数据库:MySQL、Oracle 数据存储在一张二维表中
- 非关系型数据:Redis…
02_数据库安装与卸载-[★★★]
- 未完成
03_MySQL目录结构-[★]
│-- bin:存在MySQL相关的可执行文件
│-- MySQLInstanceConfig.exe:启动配置向导
│-- data:存储MySQL默认自带数据库
│-- include:存储MySQL运行需要C语言头文件
│-- lib:存储C++动态链接库
│-- my.ini:MySQL核心配置文件
04_数据库服务器启动和停止-[★★★]
启动MySQL数据库服务器
- 方式1:通过服务列表 --> 找到MySQL服务 --> 右键 --> 启动
- 方式2:以管理员身份打开DOS窗口输入命令:net start mysql
停止MySQL数据库服务器
- 方式1:通过服务列表 --> 找到MySQL服务 --> 右键 --> 停止
- 方式2:以管理员身份打开DOS窗口输入命令:net stop mysql
05_数据库登录和退出-[★★★]
- 能够通过控制台登录和退出数据库
- 登录数据库语句格式
登录数据库语句格式 |
---|
mysql -u用户名 -p密码 |
mysql -u用户名 -p密码 --host=主机IP --port=端口号 |
mysql -u用户名 -p端口号 -h主机ip -p密码 |
退出数据库语句格式 | 说明 |
---|---|
quit/exit | 退出服务器 |
06_数据库服务器、数据库和表的关系-[★★★]
数据库服务器与数据库的关系:
- 一对多:一个数据库服务器可以创建n个数据库,一般一个项目对应一个数据库
数据库与表的关系:
- 一对多:一个数据库下可以创建n张表
07_实体类与表的对应关系-[★★]
- 一个实体类就对应一张数据表
- 一个实体类对象就对应数据表的一条记录
- 实体类的一个成员变量就对应数据表的一个字段
08_SQL 概述-[★★★]
SQL 概述:
- Structrue Query Language
- 结构化查询语言
SQL 作用:
- 对数据库进行操作(创建库,删除库,创建表,删除表,增删改查表单数据)
- SQL语句分类
SQL语句分类 | 说明 |
---|---|
DDL | Data Define Language 数据定义语言 用于创建数据库,数据表等操作 关键字:create、drop… |
DML | Data Manipulation Language 数据操作语言 用于对数据表数据进行增删改操作 关键字:insert/update/delete |
DQL | Data Query Language 数据查询语言 用于对数据进行查询操作 关键字:select/show |
DCL(了解) | Data Control Language 数据控制语言 用于创建用户,删除用户,给用户分配权限等操作 关键字:grant/removke |
- SQL 语法
1.每条 SQL 语句以分号结尾
2.关键字不区分大小写,推荐使用大写
3.注释的分类
3.1单行注释
# 注释内容:MySQL 特有的注释
- - 注释内容(所有数据库共有的注释)
3.2多行注释
/*
注释内容
*/
09_DDL 语句-操作数据库-[★★★★]
- DDL 语句操作数据库
DDL语句操作数据库 | 语法 |
---|---|
创建数据库 | create database 数据库名; |
查看所有数据库 | show databases; |
查看某个数据库的定义信息 | show create database 数据库; |
修改数据库的字符集 | alter database 数据库名 default character set 码表; |
删除数据库 | drop database 数据库名; |
查看正在使用的数据库 | select database(); |
使用数据库 | use 数据库名; |
- 示例
# 创建数据库
create database 数据库名;
-- 直接创建数据库db1
create database db1;
-- 判断是否存在,如果不存在则创建数据库db2
create database if not exists db2;
-- 创建数据库并指定字符集为gbk
create database 数据库名 default character set gbk;
# 查看数据库
-- 查看所有的数据库
show databases;
-- 查看某个数据库的定义信息
show create database 数据库名;
# 修改数据库编码
alter database 数据库名 default character set 码表;
-- 将db3数据库的字符集改成utf8
alter database db3 default character set utf8;
# 删除数据库
drop database 数据库名;
-- 删除db2数据库
drop database db2;
# 使用数据库
-- 查看正在使用的数据库
select database();
-- 使用db1数据库
use db1;
10_SQLyog 工具安装和使用-[★★★]
- 未完成
11_MySQL 数据类型-[★★]
- MySQL 常用数据类型
类型 | 描述 |
---|---|
int | 整型 |
double | 浮点型 |
varchar | 字符串型 |
data | 日期类型:格式:yyyy-MM-dd,只有年月日,没有时分秒 |
- MySQL 数据类型
分类 | 类型名称 | 说明 |
---|---|---|
整数类型 | tinyInt 微整型 byte | 很小的整数,占1个字节 |
smallint 小整型 short | 小的整数,占2个字节 | |
mediumint 中整型 | 中等大小的整数,占3个字节 | |
int(integer) 大整型 | 普通大小的整数,占4个字节 | |
小数类型 | float | 单精度浮点数,占4个字节 |
double | 双精度浮点数,占8个字节 | |
decimal(m,d)m=5 d=2 | 小数,m表示数长度,n表示小数的位数 | |
日期类型 | time | HH:MM:SS |
date | YYYY-MM-DD | |
datetime | YYYY-MM-DD HH:MM:SS | |
文本、二进制类型 | CHAR(M) char(10) | 定长字符串,M为0~255之间的整数 |
VARCHAR(M) varchar(10) | 可变字符串,M为0~65535之间的整数 | |
TINYBLOB | 允许长度0~255字节 | |
Binary Large Object 二进制大对象 |
BLOB | 允许长度0~65535字节 |
MEDIUMBLOB | 允许长度0~167772150字节 | |
LONGBLOB | 允许长度0~4294967295字节 | |
TINYTEXT | 允许长度0~255字节 | |
大文本数据 | TEXT | 允许长度0~65535字节 |
MEDIUMTEXT | 允许长度0~167772150字节 | |
LONGTEXT | 允许长度0~4294967295字节 | |
VARBINARY(M) | 允许长度0~M个字节的变长字节字符串 | |
BINARY(M) | 允许长度0~M个字节的定长字节字符串 |
12_DDL 语句-操作数据表-[★★★★]
- DDL语句操作数据表
DDL语句操作数据表 | 语法 |
---|---|
创建数据表 | create table 表名(字段名1 数据类型,…); |
查看数据库所有表 | show tables; |
查看表结构 | desc 表名; |
查看创表语句 | show create table 表名; |
复制表(只复制结构,不复制数据) | create table 新表名 like 旧表名; |
删除表 | drop table 表名; |
判断表是否存在,存在则删除 | drop table if exists 表名; |
- 示例
-- 创建 day09 数据库
create database day09;
use day09;
# 创建表语句
/*
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
.....
字段名n 数据类型 -- 最后一个不能有逗号
);*/
-- 创建 student 表包含 id,name,sex, birthday
create table student(
id int,
name varchar(20),
sex char(1),
birthday date -- 最后一个不能有逗号
);
# 查看表:show tables;
-- 查看day09数据库中的所有表
show tables;
-- 查看student表的结构
desc 表名;
desc student;
-- 查看student的创建表SQL语句
show create table student;
CREATE TABLE `student` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
# 复制表
-- 创建s1表,s1表结构和student表结构相同
create table s1 like student;
# 删除表
-- 直接删除 s1 表
drop table s1;
-- 判断表是否存在并删除 s1 表
drop table if exists s1;
13_DDL 语句-修改表结构-[★]
- DDL 语句修改表结构
DDL语句修改表结构 | 语法 |
---|---|
添加表列 | alter table 表名 add 字段名 数据类型; |
修改列类型 | alter table 表名 modify 字段名 数据类型; |
修改列名和类型 | alter table 表名 change 旧字段名 新字段名 数据类型; |
删除列 | alter table 表名 drop 字段名; |
修改表名 | rename table 旧表名 to 新表名; |
修改表字符集 | alter table 表名 default character set 码表; |
- 示例
# 添加列:add
-- 为学生表添加一个新的字段remark,类型为varchar(20)
-- 一次添加一列
alter table student add remark varchar(20);
-- 一次添加两列
alter table student add a int, add b int;
desc student;
# 修改列类型:modify
-- 将student表中的remark字段的改成varchar(100)
alter table student modify remark varchar(100);
desc student;
# 修改列名和类型:change
-- 将student表中的remark字段名改成intro,类型varchar(30)
alter table student change remark intro varchar(30);
desc student;
# 删除列:drop
-- 删除student表中的字段intro
alter table student drop intro;
alter table student drop a, drop b;
desc student;
# 修改表名:rename
-- 将学生表student改名成student2
rename table student to student2;
# 修改表字符集
-- 将sutden2表的编码修改成gbk
alter table student2 default character set gbk;
show create table student2;
CREATE TABLE `student2` (
`id` int(11) DEFAULT NULL,
`name`