基础概念
DB:DataBase(数据库,数据库实际上在硬盘上以文件的形式存在) DBMS: DataBase Management System数据库管理系统MySQL Oracle SQL: 结构化查询语言,是一门标准通用的语言。SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据。 SQL语句分类: 1、DQL(数据查询语言): 查询语句,凡是select语句都是DQL。 2、DML(数据操作语言):insert delete update,对表当中的数据进行增删改。 3、DDL(数据定义语言):create drop alter,对表结构的增删改。 4、TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction) 5、DCL(数据控制语言): grant授权、revoke撤销权限等。
删除数据库:
drop database bjpowernode;
查看表结构:
desc dept;
查看当前使用的是哪个数据库
select database();
查看mysql的版本号
select version();
\c 命令,结束一条语句。
exit 命令,退出mysql。
查看创建表的语句:
show create table emp;
简单的查询语句(DQL)
select 字段名1,字段名2,字段名3,.... from 表名;
条件查询
select
字段,字段...
from
表名
where
条件;
between and在使用的时候必须左小右大。
模糊查询like
%代表任意多个字符,_代表任意1个字符。
排序(升序、降序)
order by asc表示升序,desc表示降序。
分组函数
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
group by 和 having
group by : 按照某个字段或者某些字段进行分组。
having : having是对分组之后的数据进行再次过滤。
DQL语句执行顺序
select 5
from 1
where 2
group by 3
having 4
order by 6
去重 distinct
连接表
内连接:
等值连接
非等值连接
自连接
外连接:
左外连接(左连接)
右外连接(右连接)
内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。
AB两张表没有主副之分,两张表是平等的。
外连接:
假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中
的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。
左外连接(左连接):表示左边的这张表是主表。
右外连接(右连接):表示右边的这张表是主表。
内连接:
select
**
from
表
join
表名
on
**
外连接:(左外连接/左连接)
select
**
from
表
left join
表
on
**
外连接特点:主表的数据无条件的全部查询出来。
子查询
select
..(select).
from
..(select).
where
..(select).
查询结果集相加
select *** union select ***;
分页
limit startIndex, length
startIndex表示起始位置,从0开始,0表示第一条数据。
length表示取几个
创建表:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
....
);
MySQL当中常见数据类型 int 整数型(java中的int) bigint 长整型(java中的long) float 浮点型(java中的float double) char 定长字符串(String) varchar 可变长字符串(StringBuffer/StringBuilder) date 日期类型 (对应Java中的java.sql.Date类型) BLOB 二进制大对象(存储图片、视频等流媒体信息) Binary Large OBject (对应java中的Object) CLOB 字符大对象(存储较大文本,比如,可以存储4G的字符串。) Character Large OBject(对应java中的Object)
当某个字段中的数据长度不发生改变的时候,是定长的,例如:性别、生日等都是采用char。当一个字段的数据长度不确定,例如:简介、姓名等都是采用varchar。
insert语句插入数据
insert into 表名(字段名1,字段名2,字段名3,....) values(值1,值2,值3,....)
表的复制
create table 表名 as select语句;
将查询结果插入到一张表中
insert into 目标表 select * from 查表;
修改数据:update
update 表名 set 字段名1=值1,字段名2=值2... where 条件;
删除数据
delete from 表名 where 条件;
|