MySQL基础

MYSQL基础

数据库:DataBase --> DB
数据库管理系统:DataBaseManagement --> DBMS
SQL:结构化查询语言

DBMS --> 执行 -->SQL -->操作 -->DB

M y S Q L 启动 \color{red}{MySQL启动} MySQL启动

MySQL服务启动

net start MySQL 服务名

MySQL服务停止

net stop MySQL  服务名

MySQL本地登录

mysql -uroot -p123456

  -u 后面跟的是数据库的用户名。
  -p 后面跟的是密码。
  root是用户名,123456是密码。按自己对应的密码和用户名进行相应的替换。

远程连接 \color{red}{远程连接} 远程连接

mysql [-h 127.0.0.1 -p 3306] -u root -p 123456

   h host连接服务器的ip地址。
  p port 端口号。

M y S Q L 常用命令 \color{red}{MySQL常用命令} MySQL常用命令

退出mysql:

exit

查看mysql中又那些数据库:

show databases;

默认自带四个数据库。

查看数据库中的表

show tables;

使用某个数据库

use test;

这里的test是数据库的名称,视实际情况而定!!!

创建一个数据库

create database newdataname;
create database if not exists newdataname;

这里的newdataname是所要创建的数据库名称。

c o l o r r e d 任何一张表都有行和列 color{red}{任何一张表都有行和列} colorred任何一张表都有行和列

  行(row):被称为数据/记录。

  列(column):被称为字段。

每一个字段都有:字段名,数据类型,约束等属性。

数据库中的基本单位是表:table

S Q L 语句的分类 \color{red}{SQL语句的分类} SQL语句的分类

DQL

  数据查询语言(凡是带有select 关键字都是查询语句)
  select……

DML

  数据操作语言(凡是对表当中的数据进行增删改的都是DML)
  insert(增),delete(删),update(改)。
  这个主要是操作表中的数据data。

DDL

  数据定义语言(凡是带有create,drop,alter都是DDL)
  DDL主要操作的是表的结构,不是表的数据。
   create(新建),drop(删除),alter(修改)。
  这个增删改和DML不同·,这个主要对表结构进行操作。

TCL

  事务控制语言。
  包括:事务提交:commit 事务回滚:rollback.

DCL

  数据控制语言。
例如:授权grant,撤销权限 revoke……

数据类型 \color{red}{数据类型} 数据类型

varchar(最长255)

  可变长度的字符串。
  比较智能,节省空间。
  会根据实际的数据长度动态分配空间。

char(最长255)

  定长度字符串。
  不管实际的数据长度是多少。
  分配固定长度的空间取存储数据。
  使用不恰当,导致空间的浪费。

int(最长11)

  数字中的整数型。

bigint

  数字中的长整型。

float

  单精度浮点型数据。

double

  双精度浮点型数据。

data

  短日期数据。

datatime

  长日期数据。

clob(Charcter Large OBject)

  字符大对象。
  最多可以存储 4G的字符串。(存储一篇文章)
  超过255个字符都要使用 clob来存储。

blob(Binary Large Object)

  二进制大对象。
  专门用来存储图片、声音、视频等流媒体数据
  使用blog时用IO流才行。

条件 \color{red}{条件} 条件

   =         等于

  <> 或 !=   不等于

  <         小于

  <=        小于等于

  >         大于

  >=        大于等于

  between……and……    两个值之间

在使用between……and…… 的时候,必须遵循左小右大
between……and…… 是闭区间,包括两端的值。

  is nullnull

  is not null 不为空。

   and    并且

   or      或者

andor 同时出现,and 优先级较高,如果想让or 先执行,需要加小括号。

  in()
in不是一个区间,in后面跟的是具体的值。

  not可以取非,主要用 is 或 in
  is null
  is not null
   in
  not in

  like
称为模糊查询,支持%或下划线匹配。
% 匹配任意个字符
_ 下划线,一个下划线只表示任意一个字符

基本操作 \color{red}{基本操作} 基本操作

导入数据

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 列名;

查询 \color{red}{查询} 查询

查询表中的数据

select * from 表名;

查询一个字段

select 字段名 from 表名;

查询两个字段或多个字段

方法1:
把每个字段都写上用逗号隔开。

select 字符1,字段2,字段n, from 表名;

方法2
可以使用 *

select * from 表名;

推荐使用方法1,方法2效率低,可读性差。

起别名(as)

select 原名 as 别名 from 表名;

注意,只是将显示的查询结果列名显示为别名,原表的列名还是原名。as 关键字可以省略。如果别名中有空格,应该使用单引号括起来,别名是中文也要使用单引号括起来。

排序

升序(asc)
select 字段 from 表名 order by 升序字段 asc;
降序(desc)
select 字段 from 表名 order by 降序字段 desc;

当升序/降序字段有多个时,只有当第一个字段相等,才会比较后面的字段。

数据处理函数/单行处理函数

单行处理函数的特点:一个输入对应一个输出。

多行处理函数的特点:多个输入,对应1个输出。

分组函数

只有5个。
注意:
  分组函数在使用的时候,必须先进行分组,然后才能用。
  如果你没有对数据进行分组,整张表默认为一组。

count(计数)
sum(求和)
avg(平均值)
max(最大值)
min(最小值)
分组函数在使用的时候注意事项

  1.分组函数计算时自动忽略NULL,不需要提前对NULL处理。
  2.分组函数中 count(*) 和 count(具体字段)区别。

count(具体字段): 表示统计该字段下所有不为NULL的元素总数。

count(*): 统计表当中的总行数。

  3.分组函数不能够直接使用在where子句中。(结合分组查询 group by)理解。

因为分组函数在使用的时候必须要先进行分组才能使用,where执行的时候,还没有进行分组,所以where后面不能出现分组函数。

   4.所有分组函数可以组合起来一起使用。

你可能感兴趣的:(MySQL,mysql,数据库)