1、MySQL数据库
1.1数据库的概念
用来存储数据的仓库,本质上是一个文件系统
1.2特点
持久化存储数据
存储和管理数据
使用统一的方式进行操作(sql)
1.3常见的数据库软件
MySQL
免费的,开放源代码
Oracle
收费的,不开放源代码
1.4mysql的安装
允许root用户远程访问的√建议勾上
1.5mysql的卸载
1.复制安装目录下my.ini中datadir指向的路径
2.停止mysql服务,卸载mysql
3.删除datadir路径中MySQL文件夹
1.6msyql服务的开启和关闭
1.开始菜单搜索cmd.exe
2.右键cmd.exe,以管理员方式运行
3.执行net start mysql ,开启服务
4.执行net stop mysql,关闭服务
1.7mysql的登录和退出
- 登录
mysql -u用户名 -p密码
msyql -h地址 -u用户名 -p密码
mysql --host=地址 --user=用户名 --password=密码
- 退出
quit
exit
1.8mysql目录结构
- 安装目录
配置文件 my.ini
- 数据目录
数据库:文件夹
表:文件
数据:文件中的具体内容
2、SQL
2.1概念
Structured Query Language 结构化查询语言,可以操作所有关系型数据库
2.2通用语法
1.sql语句可以单行或多行书写,以;结尾
2.使用空格和缩进提升语句的可读性
3.MySQL中不区分大小写,关键字建议大写
4.注释
– 注释内容
单行注释,–后面空格必须写
# 注释内容
单行注释,#后面空格可有可无
/注释内容/
多行注释
2.3sql分类
DDL数据定义语言:
用来操作数据库和表的语句
DML数据操作语言:
用来增删改表中的数据的语句
DQL数据查询语言:
用来查询表中的数据的语句
DCL数据控制语言:
用来定义数据库的访问权限,安全级别以及创建用户的语句
2.4DDL操作数据库和表
2.4.1操作数据库
-
C(Create)创建
create database 数据库名称
创建指定名称的数据库
create database 数据库名称 character set 字符集名称
创建指定名称的数据库,指定字符集
create database if not exists 数据库名称
指定名称数据库不存在,则创建
create database if not existe 数据库名称 character set 字符集名称
指定名称数据库不存在,则创建,并指定字符集
-
R(Retrieve)查询
show databases
查询所有数据库名称
show create database 数据库名称
查询某个数据库的创建语句(字符集)
-
U(Update)修改
alter database 数据库名称 character set 字符集名称
修改指定名称数据库的字符集
-
D(Delete)删除
drop database 数据库名称
删除指定名称的数据库
drop database if exists 数据库名称
指定名称数据库存在,则删除2.4.2使用数据库
select database()
查询当前正在使用的数据库名称
use 数据库名称
使用指定名称的数据库2.4.3操作表
- C(Create)创建
语法
create table 表名(
列名1 数据类型,
…,
列名n 数据类型
);
注意事项:最后一列不写,号
- 数据类型
int 整数类型
double 小数类型(整体占几位,小数占几位)
date 日期,包含年月日,yyyy-MM-dd
datetime 日期,包含年月日时分秒,yyyy-MM-dd HH-mm-ss
timestamp 时间戳,包含年月日时分秒,如果赋值为null或不赋值,会自动赋值为当前系统时间
varchar 字符串 zhangsan 占8个字符,张三 占2个字符
复制表
create table 表名 like 要复制的表名
- R(Retrieve)查询
show tables
查询当前数据库下的所有表的名称
desc 表名
查询指定表的结构
- U(Update)修改
alter table 表名 rename to 新表明
修改指定表的名称
alter table 表名 character set 字符集
修改指定表的字符集
alter table 表名 add 列名 数据类型
添加一列
alter table 表名 change 列名 新列名 新数据类型
修改列的名称和数据类型
alter table 表名 modify 列名 新数据类型
修改列的数据类型
alter table 表名 drop 列名
删除一列
- D(Delete)删除
drop table 表名
删除指定名称的表
drop table if exists 表名
指定名称的表存在则删除
- C(Create)创建
2.5DML增删改表中的数据
- 添加数据
语法
insert into 表名(列名1,…,列名n) values(值1,…,值n)
注意事项
1.列名和值必须一一对应
2.给所有列添加值,列名可以省略不写
3.除数字类型外,其他类型必须用引号引起来(单,双引都可)
- 修改数据
语法
update 表名 set 列名1=值1,列名n=值n [where 条件]
注意事项
如果不加条件,则修改表中所有的记录
- 删除数据
语法
delete from 表名 [where 条件]
注意事项
1.如果不写条件,则删除所有记录
2.删除表中所有记录,有两种方式
1.delete from 表名:不推荐使用,会逐行删除,效率低
2.truncate table 表名:推荐使用,先删除表,在创建新表
2.6DQL查询表中的数据
- 语法
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组后的条件 order by 排序字段 limit 分页限定
- 基础查询
查询多个字段
select 字段1,字段2,…,字段n from 表名
查询所有字段
select * from 表名
去除重复
select distinct 字段名 from 表名
计算列
可以使用四则运算计算一些列的值(必须是数字类型的列)
null参与运算,结果都为null
ifnull(A,B):A 要判断的列,B 如果为null替换的值
起别名
select 列名1 as 别名1,…,列名n as 别名n from 表名
as可以省略不写
- 条件查询
运算符
基本运算符
> < >= <= = != <>
并且
and,between…and…,&&
或者
or,in(值1,值2,…),||
是否为null
is null,is not null
- 模糊查询
select * from 表名 where 字段名 like ‘张%’
占位符
_:一个任意字符
%:多个任意字符