小白自学录——MySQL基础篇

MySQL概述

数据库:

  • 存储数据的仓库(DataBase(DB))

数据库管理系统:

  • 操纵和管理数据库的大型软件(DataBase Management System(DBMS))

SQL:

  • 操作关系型数据库的编程语言

SQL的分类

  • DDL                数据定义语言,用来定义数据库对象(数据库、表、字段)        
  • DML                数据操作语言,用来对数据库表中的数据进行增、删、改
  • DQL                数据查询语言,用来查询数据库中表的记录
  • DCL                数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL
DDL - 数据定义语言
一、查询

        1.查询所有数据库

SHOW DATABASES;

        2.查询当前数据库

SELECT DATABASES();

        3.创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

-- 创建一个user的数据库
CREATE DATABASE user;

        4.删除数据库

DROP DATABASE[IF EXISTS] 数据库名;

-- 删除user数据库
DROP DATABASE user;

        5.使用数据库

USE 数据库名;

-- 使用user数据库
USE user;
DDL - 表操作
一、查询

1.查询当前数据库所有表

SHOW TABLES;

2.查询表结构

DESC 表名;

3.查询指定表的建表语句

SHOW CREATE TABLE 表名;
二、创建
CREATE TABLE 表名(
	字段1 字段1类型[COMMENT 字段1注释],
	字段2 字段2类型[COMMENT 字段2注释],
	字段3 字段3类型[COMMENT 字段3注释],
	......
	字段n 字段n类型[COMMENT 字段n注释]
	)[COMMENT 表注释];

作业1:去了解数据类型与数据类型的使用

作业2:创建一个学校信息管理系统中的数据库,有如下4张表:

学生表:student(学号,学生姓名,出生年月,性别)

CREATE TABLE student(
    id INT COMMENT '学号',
    name VARCHAR(3) COMMENT '姓名',
    age CHAR(1) COMMENT '性别',
    born DATE COMMENT '出生年月'
)COMMENT '学生表';

成绩表:score(学号,课程号,成绩)

CREATE TABLE score(
    id INT COMMENT '学号',
    course VARCHAR(10) COMMENT '课程号',
    result FLOAT COMMENT '成绩'
)COMMENT '成绩表';

课程表:course(课程号,课程名称,教师号)

教师表:teacher(教师号,教师姓名)

三、修改

1.添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];

2.修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

3.修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];

4.删除字段

ALTER TABLE 表名 DROP 字段名;

5.修改表名

ALTER TABLE 表名 RENAME TO 新表名;

6.删除表

DROP TABLE [IF EXISTS] 表名;

7.删除指定表,并重新创建该表

TRUNCATE TABLE 表名;
四、数据类型

DML
DML-数据操作语言
一、DML-添加数据

1.给指定字段添加数据

INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...);

2.给全部字段添加数据

INSERT INTO 表名 VALUES(值1,值2,...);

3.批量添加数据

INSERT INTO 表名(字段1,字段2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
二、DML-修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

三、DML-删除数据

DELETE FROM 表名 [WHERE 条件];
DQL
DQL-数据查询语句

一、DQL-基本查询

1.查询多个字段

SELECT 字段1,字段2,字段3... FROM 表名;
SELECT * FROM 表名; 

" * ":表示匹配任意或者所有的意思

"select * from ...":这里的 "*" 表示匹配所有字段

2.设置别名

SELECT 字段1 [AS 别名1],字段2[AS 别名2]... FROM 表名;

3.去除重复记录

SELECT DISTINCT 字段 FROM 表名;
二、DQL-条件查询

1.语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

2.条件

三、DQL-聚合函数

1.介绍

  • 将一列数据作为一个整数,进行纵向计算。

2.常见聚合函数

  • 注意:count(*):返回表中的记录数(包括所有列),相当于统计表的行数(不会忽略列表为NULL的记录)

3.语法

SELECT 聚合函数(字段列表) FROM 表名;
四、DQL-分组查询

语法:

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
  • WHRERHAVING区别

        执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分

        组之后对结果进行过滤。

        判断条件不同:where不能对聚合函数进行判断,而having可以。

五、DQL-排序查询

1.语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;

2.排序的方式

  • ASC:升序(默认值)

  • DESC:降序

  • 注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

六、DQL-分页查询

语法:

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注意:

  • 起始索引从0开始,起始索引=(查询页面-1)*每页显示记录数。

  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。

  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

七、DQL-执行顺序

DCL
DCL-数据控制语言
一、DCL-管理用户

1.查询用户

USE mysql;
SELECT * FROM user;

2.创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';  #%:代表任意主机

3.修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

4.删除用户

DROP USER '用户名'@'主机名';
二、DCL-权限控制

1.查询权限

SHOW GRANTS FOR '用户名'@'主机名';

2.授权权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意:

  • 多个权限之间,使用逗号分隔

  • 授权时,数据库名和表名可以使用 " * " 进行通配,代表所有。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值