目录
概念
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期村塾在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
分类
关系型:关系型数据库的表之间一般是有关系的,db2、MySQL、SQL server、Oracle。比如班级表和学生表,学生表中的班级ID对应着班级表的ID,这种对应关系称外键。
非关系型数据库:表与表之间不存在关系,比如开发微信小程序时,使用云开发的数据库。
MySQL数据库
关系型数据库,属于Oracle旗下的产品,是目前最流行的关系型数据库。
安装MySQL5.5
step01 双击安装文件
step02 下一步
step03 同意协议
step04 选择版本
step05 安装的地址
step06 安装
step07 下一步
step08 下一步
step09 完成
step10 下一步
step11 下一步
step12 下一步
step13 下一步
step14 下一步
step15 下一步
step16 下一步
step17 设置编码格式
step18
step19 下一步
step20
卸载
step01 控制面板卸载
step02 删除mysql配置文件
step03 删除数据文件
MySQL数据库中常见的数据类型
字符类型
char,等价于Java中的String类型
varchar,等价于Java中的StringBUffer类型
blog、二进制形式的唱文本数据类型没用于存储音频、视频等。
text、长文本数据,用于存储文章
数值类型
int、整型,一般就用这个
double、双精度浮点型
double(M, D)、也是双精度浮点型,M表示长度,D表示小数位数
时间类型
date:yyy-MM-dd
time:hh:mm:ss
year:yyyy
datetime:yyyy-MM-dd hh:mm:ss
SQL语句
结构化查询语句,注意:所有SQL语句都要加上分号后缀。
DDL
数据定义语言(data definition language),主要用于操作数据库以及数据表,关键字:alter、drop、create
操作数据库
创建数据库:create database 库名;
如果数据库不存在则创建:create batabase if not exist 库名;
创建数据库并设置编码格式:create database 库名 character set 编码格式;
查看数据库创建格式:show create database 库名;
修改数据库的编码格式:alter database 库名 character set 编码格式;
查看所有数据库:show databases;
删除数据库:drop database 库名;
操作数据表
创建表:create table 表名( 列名 数据类型(长度), 列名 数据类型(长度) ……, 列名 数据类型(长度))
修改表名:alter table oldName reneme to newName;
查看数据库中所有的表:show tables;
删除表:drop table tableName;
查看表结构:desc tableName;
在末尾增加列:alter table 表名add 列名 数据类型(长度)
在指定列后增加:alter table 表名 add 列名 数据类型(长度) after 已存在的列名
修改数据类型:alter table 表名 modify 列名 数据类型(长度)
修改列名:alter table 表名 change 原列表 新列名 数据类型(长度)
删除列:alter table 表名 drop 列名
DQL
数据查询语言(data query language),主要用于查询数据库,关键字:select
查询语句的顺序:select * from 表名 where 条件 group by 条件 having 条件 order by 排序条件 limit 分页
union
表示把多次的查询结果合并一起,与union相比去除了重复元素,比如student的记录如下
SELECT *
FROM student
WHERE id < 4
UNION
SELECT *
FROM student
WHERE id > 2 AND id < 6
其结果为
单表查询
查询所有数据:select * from 表名 ( where 条件 )
查询指定列的数据:select 列名1,列名2…… from 表名 ( where 条件 )
简单运算查询:select 表达式 from 表名,例如:select price+10 from product
条件查询:select * from 表名 where 条件,符号:not、between、or、!、=、>、<、>=、<=、||。例如:select * from product where price>300; …… where price >=200 and price <=1000; ……where price between 200 and 1000; ……where price in( 200,800,1000 )等价于where price=200 && price==800 && price=1000
模糊查询:关键字:like,匹配符:% 匹配多个、_ 匹配一个。例如:查询包含有香字的所有商品:select * from product where pname like ‘%香%’ ;查询以香开头的所有商品:…… where pname like ‘香%’ ;查询第二个字的想的所有商品:…… where pname like ‘_想%’ ;
非空查询:is not null 或 is null,null表示未插入数据状态,不等于空字符串,例如:查询没有分类的商品:select * from product where category_name is null ;
排序:关键字:order by,升序asc、降序desc,select * from 表名 order by 列名 asc/desc,支持多重排序,例如:在价格降序的基础上,pid降序排序,select * from product order by price desc,pid desc;
分页查询:limit num1,num2,num1表示数据库的索引(从0开始),num2表示每页显示的数量,例如:查询第一条与第二条数据,select *from product limit 0,2;查询第三条与第四条数据,…… limit 2,2;
分组查询:select * from 表名 group by 列名,例如:统计各个分类下的商品个数,select category_name,count(*) from product group by category_name;
过滤:关键字:having,一般与分组进行搭配使用,位置是在分组后面。select * from 表名 group by 列名 having 条件。例如:统计各个分类商品的个数,有且只显示分类名称不为空的数据,select category_name,count(1) from product group by category_name having category is not null;
去重:关键字:distinct;例如:查询出所有价格,select distinct price from product;
设置别名:as,可以给表设置别名,也可以给列设置别名,as 可以省略,select p.pname,price+10 as “运损后的介个” from product as p;
多表查询-非等值查询
select * from 表1,表2;这种查询方式会出现大量的错误数据,这种现象称为笛卡尔现象,所以一般不使用。
多表查询-隐式内连接
select 8 from 表1,表2 where 关联条件:select * from dept d emp e where d.did=e.did;因为一条语句只能出现一个where,所以方式只能查询两个表,并且查询结果是两表的交集
多表查询-显示内连接
select * from 左表 inner join 右表 on 关联条件,取交集
多表查询-左外连接
select * from 左表 left join 右表 on 匹配条件;以左表为准,右表逐个匹配,如果不匹配,则左表正常显示,右表为null;这也是使用最多的一种方式
多表查询-右外连接
select * from 左表 rightjoin 右表 on 匹配条件;以右表为准,左表逐个匹配,如果不匹配,则右表正常显示,左表为null
子查询
一个查询语句嵌套另一个查询语句;a.select * from emp select * from dept where dname=”研发部门”
DML
数据操作语言(Data Manipulation Language),主要用于操作数据表,关键字:insert、delete、update
添加数据:insert into 表名 values (数据1,数据2……),字符串可以使用单引号或双引号,事件类型只能使用单引号。
指定列名添加数据:insert into 表名 (列名1,列名2……) values(数据1,数据2……)
插入多条数据:insert into 表名 values (数据1,数据2……),(数据1,数据2……)
修改数据:update 表名 set 列名=值,列名=值 where 条件,没有条件则修改所有数据
删除数据:delete from 表名 where 条件,没有条件则删除所有数据,并且是逐行删除
删除所有数据并删除表结构:truncate table 表名,删除后等价于一个新表,如果是需要删除整个表,推荐使用这种方式
DCL
数据控制语言(Data Control Language),主要用于对数据库的用于进行管理,这个平时开发用的少。
MySQL中的函数
聚合函数
count(1)、count(*)、count(列名):统计,推荐使用count(1)
sum(列名):求和
max(列名):最大值
min(最小值):最小值
age(列名):平均值
时间函数
sysdate()、now():当前系统时间,yyy-MM-dd hh:mm:ss,查看当前系统时间,select sysdate()
curdate():获取当前系统日期,yyy-MM-dd
curtime():获取当前系统时间,hh:mm:ss
字符串函数
concat(str1,str2……):拼接多个字符串
insert(str,pos,len,newStr):将str中指定pos位置开始len长度的内容替换为newStr,序号从0开始
lower(str):将指定字符串转换为小写
upper(str):将指定字符串转换为大写
substring(str,pos,len):将字符串指定pos位置开始截取len长度,参数len省略则截取到末尾
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14612.html