数据库存储数据的特点
1.数据存放到表中,然后表再放到库
2.一个库有多张表,每张表具有唯一的表名来标识自己
3.表中有一个或多个列,列又称为“字段”,相当于java的“属性”
4.表中的每一行数据,相当于java对象
MySQL的常见命令
1.查看当前所有的数据库:show databases;
2.打开指定的库:use 库名
3.查看数据库的所有表:show tables;
4.创建表:
create table 表名(
列名 列类型,
列名 列类型,
...
)
5.查看表结构:desc 表名;
6.查看服务器的版本:
方式一:登陆到mysql服务端
select version();
方式二:没有登陆到mysql服务端
mysql --version;
5.使用 DISTINCT可以去除重复
MySQL拼接
1.MySQL + 的作用:
只要其中一方为字符型,会将字符型转换为数值型,转换成功继续做加法运算
SELECT '123'+90;
转换失败,则将字符型转换成0
SELECT 'join'+90;
只要其中一方为null,则结果为null
SELECT NULL+90;
- 使用concat()实现拼接:
SELECT CONCAT('a','b','c') AS 结果;
MySQLyog图形化用户界面快捷键
1.F12格式化
2.F9执行SQL语句
DQL语言
基础查询
语法
select 查询列表 from 表名;
特点:
1. 查询列表可以是:表中的字段、常量值(**字符型和日期型必须用单引号引起来**)、表达式、函数
2. 查询的结果是一个虚拟的表格
3. 起别名:如果查询的字段有重名的情况,使用别名可以区分开来
SELECT 100 AS 结果;
条件查询
SELECT
查询列表
FROM
表名
WHERE 筛选条件 ;
分类:
1.按条件运算符查询:> 、<、 =、 != 、<>(不等于)、>=、<=
2.按逻辑运算符:&& || !
and or not
&&和and:两个条件都为true,结果为true,否则为false
|| and or:只要有一个条件为true,结果为true,否则为false
!或not:如果连接的条件本身为false,结果为true,反之为false
3.模糊查询:like
特点:和通配符搭配使用
%任意多个字符,包含0个字符
_任意单个字符
SELECT
*
FROM
employees
WHERE last_name LIKE '%a%' ;
between and
in
含义:判断某字段的值是否属于in列表中的某一项
特点:使用in提高语句的简洁度、in列表的值必须一致
is null(= null):=或<>不能用于判断null值
is null或is not null 可以判断null值
排序查询
SELECT
查询列表
FROM
表名
WHERE 筛选条件
ORDER BY roomnum ASC(升序),DESC(降序);
注:如果不写,默认升序
常见函数
一、字符函数
1.length:获取参数值的字节个数
2.concat:拼接字符串
3.upper,lower
4.substr,substring
注:索引从1开始
分组函数
功能:用于统计使用,又称为聚合函数
分类:sum求和、avg平均值、max最大值、min最小值、count计算个数
分组查询
select 分组函数,列(要求出现在group by后面)
form 表
【where 筛选条件】
group by 分组的列表
【order by 子句】
连接查询(多表查询)
按功能分类:
内连接:
等值连接
非等值连接
自连接
外连接:用于查询一个表中有,另一个表没有的记录
特点:
1.外连接查询的结果为主表中所有记录
如果从表中有和它匹配的记录,则显示值,没有则显示null
外连接查询结果=内连接结果+主表中有而从表没有的记录
2.左外连接:left左边是主表
右外连接:right join右边是主表
左外连接
右外连接
子查询
分页查询
语法:
select 查询列表
from 表
limit 【offset,】size;
offset要显示条目的起始索引(起始索引从0开始)
size要显示的条目个数
unicon联合查询
DML语言(数据操作语言)
插入语句
修改语句
删除语句
主键
和约束的区别:
主键保证唯一并且不能为空,一个表中只有一个
唯一是保证唯一并且允许为空,一个表中有多个
外键:
- 要求在从表设置外键关系
- 从表的外键列的类型和主表的关联列的类型要求一致,名称无要求
- 主表的关联列必须是一个key(主键或唯一)