数据库:DataBase --> DB
数据库管理系统:DataBaseManagement --> DBMS
SQL:结构化查询语言
DBMS --> 执行 -->SQL -->操作 -->DB
net start MySQL 服务名
net stop MySQL 服务名
mysql -uroot -p123456
-u 后面跟的是数据库的用户名。
-p 后面跟的是密码。
root是用户名,123456是密码。按自己对应的密码和用户名进行相应的替换。
mysql [-h 127.0.0.1 -p 3306] -u root -p 123456
h host连接服务器的ip地址。
p port 端口号。
exit
show databases;
默认自带四个数据库。
show tables;
use test;
这里的test是数据库的名称,视实际情况而定!!!
create database newdataname;
create database if not exists newdataname;
这里的newdataname是所要创建的数据库名称。
行(row):被称为数据/记录。
列(column):被称为字段。
每一个字段都有:字段名,数据类型,约束等属性。
数据库中的基本单位是表:table
数据查询语言(凡是带有select 关键字都是查询语句)
select……
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert(增),delete(删),update(改)。
这个主要是操作表中的数据data。
数据定义语言(凡是带有create,drop,alter都是DDL)
DDL主要操作的是表的结构,不是表的数据。
create(新建),drop(删除),alter(修改)。
这个增删改和DML不同·,这个主要对表结构进行操作。
事务控制语言。
包括:事务提交:commit 事务回滚:rollback.
数据控制语言。
例如:授权grant,撤销权限 revoke……
可变长度的字符串。
比较智能,节省空间。
会根据实际的数据长度动态分配空间。
定长度字符串。
不管实际的数据长度是多少。
分配固定长度的空间取存储数据。
使用不恰当,导致空间的浪费。
数字中的整数型。
数字中的长整型。
单精度浮点型数据。
双精度浮点型数据。
短日期数据。
长日期数据。
字符大对象。
最多可以存储 4G的字符串。(存储一篇文章)
超过255个字符都要使用 clob来存储。
二进制大对象。
专门用来存储图片、声音、视频等流媒体数据
使用blog时用IO流才行。
= 等于
<> 或 != 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between……and…… 两个值之间
在使用between……and…… 的时候,必须遵循左小右大
between……and…… 是闭区间,包括两端的值。
is null 为 null
is not null 不为空。
and 并且
or 或者
and和 or 同时出现,and 优先级较高,如果想让or 先执行,需要加小括号。
in()
in不是一个区间,in后面跟的是具体的值。
not可以取非,主要用 is 或 in
is null
is not null
in
not in
like
称为模糊查询,支持%或下划线匹配。
% 匹配任意个字符
_ 下划线,一个下划线只表示任意一个字符
source 路径
路径中不要有中文,路径指文件路路径。
desc 表名;
select version();
select database();
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型
);
insert into 表名(字段1,字段2,字段3) values
(值1,值2,值3),
(值11,值22,值33),
(值111,值222,值333);
alter table 旧名 rename to 新名;
alter table 表名 add 列名 数据类型;
alter table 表名 modify 列名 数据类型;
alter table 表名 change 旧列名 新列名 数据类型;
alter table 表名 drop 列名;
select * from 表名;
select 字段名 from 表名;
方法1:
把每个字段都写上用逗号隔开。
select 字符1,字段2,字段n, from 表名;
方法2
可以使用 *。
select * from 表名;
推荐使用方法1,方法2效率低,可读性差。
select 原名 as 别名 from 表名;
注意,只是将显示的查询结果列名显示为别名,原表的列名还是原名。as 关键字可以省略。如果别名中有空格,应该使用单引号括起来,别名是中文也要使用单引号括起来。
select 字段 from 表名 order by 升序字段 asc;
select 字段 from 表名 order by 降序字段 desc;
当升序/降序字段有多个时,只有当第一个字段相等,才会比较后面的字段。
单行处理函数的特点:一个输入对应一个输出。
多行处理函数的特点:多个输入,对应1个输出。
只有5个。
注意:
分组函数在使用的时候,必须先进行分组,然后才能用。
如果你没有对数据进行分组,整张表默认为一组。
1.分组函数计算时自动忽略NULL,不需要提前对NULL处理。
2.分组函数中 count(*) 和 count(具体字段)区别。
count(具体字段): 表示统计该字段下所有不为NULL的元素总数。
count(*): 统计表当中的总行数。
3.分组函数不能够直接使用在where子句中。(结合分组查询 group by)理解。
因为分组函数在使用的时候必须要先进行分组才能使用,where执行的时候,还没有进行分组,所以where后面不能出现分组函数。
4.所有分组函数可以组合起来一起使用。