MySQL基础

mysql基础操作操作

    • MySQL基础
      • 相关术语
  • 数据库操作
    • MySQL管理
      • 启动及关闭
      • MySQL 用户设置
      • /etc/my.cnf 文件配置
      • 管理MySQL的命令
    • 连接MySQL
      • 登录
      • 退出
      • 输出显示
      • 进入数据库
      • 参看创建数据库时使用的参数
      • 查看数据表中的创建语句
      • 显示当前mysql版本
      • 显示当前日期
      • 查看mysql打开的端口
    • 创建数据库
      • (Create): 创建方法
      • 一般创建步骤
    • MySQL 删除数据库
      • drop 命令删除数据库
      • 使用 mysqladmin 删除数据库
    • MySQL 选择数据库
      • 从命令提示窗口中选择MySQL数据库
      • 使用use 命令选择/切换
  • 表的相关操作
    • 1.操作表
      • 1. 创建表
      • 3.复制表
      • 4. 查询表
      • 5.修改
      • 6.删除
    • 2.增删改表中数据
      • 1.添加数据:
      • 2.删除数据:
      • 3.修改数据:
    • 3.单查询表
      • 1.基础查询
        • 1查询所有表中所有数据
        • 2.多个字段的查询
        • 3.去重查询
      • 2.条件查询
        • 筛选
        • in(集合)
        • not in(集合)
        • like: 模糊查询
        • is null(空值)
        • is not null(去空值)
        • and 或 &&
        • or 或 ||
        • not 或 < >
      • 3.排序查询
      • 4.聚合函数:
        • count: 计算个数
        • max: 计算最大值
        • min: 计算最小值
        • sum: 计算和
        • avg: 计算平均值
        • variance:计算方差:
      • 5.分组查询
      • 6.分页查询(限定查询)
    • 4.多表查询
      • 连表查询
        • 内连接:inner join
        • 外连接:
          • 左外连接:left join
          • 右外连接:right join
          • 全外连接:mysql中没有全外连接
      • 子查询:常用逻辑查询拼接
  • 索引
  • 视图
  • 过程
  • 窗口函数
  • 其他内容
    • 范式理论
    • 数据完整性
    • 数据一致性
    • 约束
      • 排名问题
    • 约束
      • 排名问题
  1. 为什么要使用数据库
    解决数据持久化问题
    高效的管理数据(增删改查)
  2. 数据库的分类:
    关系型数据库
    - 理论基础:关系代数
    - 具体表象:二维表

    ~ 行:记录
    列:字段
    - 编程语言:SQL(结构化查询语言)
    DDL - 数据定义语言 —> create / drop / alter
    DML - 数据操作语言 —> insert / delete / update
    DQL - 数据查询语言 —> select
    DCL - 数据控制语言 —> grant / revoke
    非关系型数据库(NoSQL / NewSQL)
    - MongoDB —> 文档数据库
    - Redis —> KV数据库
  3. 相关术语
    DB - database(数据库)
    DBA - database administrator(数据库管理员)
    DBMS - database management system(数据库管理系统)
    DBS - database system(数据库系统。)

    ~–> 计算机系统(软硬件+人)+DBMS+DB

  4. 使用MySQL
    查看所有数据库:show databases;
    切换数据库:use school;
    查看数据库下所有的表:show tables;
    查看所有的字符集(编码):show charset;
    查看所有的校对(排序)规则:show collation;
    查看所有的引擎:show engines;

~ 创建/删除数据库:
create schema school default charset utf8mb4;
create database school default charset utf8mb4 collate utf8mb4_bin;
create database school default character set utf8mb4;
drop database if exists school;

~ 创建/删除/修改二维表:
create table tb_student (列名 数据类型 约束条件);
drop table tb_student;
alter table tb_student add column …;
alter table tb_student drop column …;
alter table tb_student modify column …;
alter table tb_student change column …;
alter table tb_student add constraint …;
alter table tb_student drop constraint …;

​ - 主键(primary key):能够唯一确定一条记录的字段。
​ - 外键(foreign key):外来的主键(其他表的主键)。

~ 插入/删除/更新数据:
insert into tb_student (…) values (…);
insert into tb_student (…) values (…), (…), (…);

​ delete from tb_student where stu_id=…;
​ delete from tb_student where stu_id in (…);

​ update tb_student set …, … where stu_id=…;

\5. MySQL的数据类型 —> ? data types;

整数:
- int / integer —> -2^31 ~ 2^31 - 1
- int unsigned —> 0 ~ 2^32 - 1
- bigint —> -2^63 ~ 2^63 - 1
- bigint unsigned —> 0 ~ 2^64 - 1
- smallint —> -32768 ~ 32767
- smallint unsigned —> 0 ~ 65535
- tinyint —> -128 ~ 127
- tinyint unsigned —> 0 ~ 255

小数:
- float / double
- decimal —> decimal(10,2)

字符串:
- char(N) / varchar(N)
- longtext —> longblob(二进制大对象)—> 4G —> 放资源路径(URL)

时间日期:
- date / time / datetime(6)
- timestamp —> 1970-1-1 00:00:00

布尔型:
- boolean —> tinyint(1) —> 0 / 1

相关术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • **外键:**外键用于关联两个表。与另一张表关联,用来确定另一张表记录的字段的取值范围,确保数据的一致性。表的外键是另一张表的主键,可以重复也可以为空值。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成。如图所示的一个表格:

  • 表头(header): 每一列的名称;
  • 列(col): 具有相同数据类型的数据的集合;
  • 行(row): 每一行用来描述某条记录的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 键的值在当前列中具有唯一性。

数据库操作

MySQL管理

启动及关闭

启动及关闭 MySQL 服务器

Windows 系统下

1.在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录。

启动:

cd c:/mysql/bin
mysqld --console

关闭:

cd c:/mysql/bin
mysqladmin -uroot shutdown

2.通过Windows服务管理器

启动MySQL服务通过Windows的服务管理器可以查看MySQL服务是否开启,首先单击“开始”菜单,在弹出的菜单中选择“运行”命令,打开“运行”对话框输入services.msc命令,单击“确定”按钮,此时就会打开Windows的服务管理器,找到MySQL服务,右键手动开启。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EejmeMb8-1631012717546)(C:/Users/小新/Pictures/mysql安装/服务.png)]

Linux 系统下

首先,我们需要通过以下命令来检查MySQL服务器是否启动:

ps -ef | grep mysqld

如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:

root@host# cd /usr/bin
./mysqld_safe &

如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown

注意:如果没有设置MySQL开机自启,关机后数据库自动关闭,那么我们在下次使用MySQL数据库时需要先启动MySQL数据库。

个人推荐使用Windows服务管理器启动。

MySQL 用户设置

如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changedmysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。

**注意:**password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

**注意:**在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 ‘Y’ 即可,用户权限列表如下:

  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv

另外一种添加用户的方法为通过SQL的 GRANT 命令,以下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changedmysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP-> ON TUTORIALS.*-> TO 'zara'@'localhost'-> IDENTIFIED BY 'zara123';

以上命令会在mysql数据库中的user表创建一条用户信息记录。

注意: MySQL 的SQL语句以分号 (

mysql基础操作和查询语句相关推荐

  1. MySql基础之面试查询语句

    文章目录 一.子查询 1.查询和Zlotkey相同部门的员工姓名和工资 2.查询工资比公司平均工资高的员工的员工号,姓名和工资 3.选择工资大于所有JOB_ID = 'SA_MAN'的员工的工资的员工 ...

  2. mysql循环查询一个表中的数据并进行修改_JavaScript学习笔记(二十四)-- MYSQL基础操作...

    MYSQL mysql 是一个数据库的名字 和 php 合作的比较好的数据库 之前我们说过一个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端 接下来就聊聊使用 php 操作数据库 M ...

  3. 删除所有学生记录mysql_【MySQL】MySQL基础操作语句

    mysql基础操作语句,包括数据库的增.删.切换,以及表的增.删.改.查.复制. 创建数据库 mysql> create database tem; 使用数据库 mysql> use te ...

  4. mysql修改学生信息语句,【MySQL】MySQL基础操作语句

    mysql基础操作语句,包括数据库的增.删.切换,以及表的增.删.改.查.复制. 创建数据库 mysql> create database tem; 使用数据库 mysql> use te ...

  5. PHP - PDO 之 mysql 基础操作

    PHP - PDO 之 mysql 基础操作 <?php/* pdo 学习 */$dsn = 'mysql:host=localhost;dbname=cswl';//构建连接dsn$db = ...

  6. 4.MySQL基础操作

    4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握) 方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用) 方式三:通过编程语言(pyth ...

  7. Mysql 基础操作知识专题

    目录 一.Mysql基础操作 1.1 mysql 表复制 1.2 mysql索引 1.3 mysql视图 1.4 mysql内置函数 1.5 mysql预处理语句 1.6 mysql事务处理 1.7 ...

  8. 【MySQL基础教程】DDL语句详细介绍

    前言 本文为 [MySQL基础教程]DDL语句 相关内容进行介绍,下边将对数据库操作(包括:查询所有数据库.查询当前数据库.创建数据库.删除数据库.切换数据库等),表操作(包括:查询创建.数据类型.修 ...

  9. Oracle 10g数据库基础之基本查询语句-中-函数

    Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...

最新文章

  1. Ubuntu下安装ruby的三种方式
  2. 簡單編譯內核 linux kernel gnu
  3. 慎用stl中的erase的返回值
  4. [C++11]共享智能指针shared_ptr指定删除器
  5. FROONT – 超棒的可视化响应式网页设计工具
  6. 在Linux系统安装Nginx及配置https加密访问
  7. the difference between a material and an effect
  8. 十分钟学会Java RMI
  9. Atlas 调用web service
  10. Java Spring 框架详解
  11. [转][酷酷的滕]我爱你语录
  12. vue+elementUI 表格下载为excel
  13. mysql报错不停止继续执行_mysql 8 启动失败(本地计算机上的mysql服务启动后停止。某些服务再未由其他服务或程序使用时将自动停止)...
  14. 深入了解机器学习(Descending into ML):线性回归
  15. 亚洲的音乐史料及其历史研究状况
  16. 创业维艰---分享这三年的揪心历程
  17. r语言怎么做经验分布_训练宝宝语言能力应该怎么做
  18. 江湖棋局,顺便说说象棋
  19. 消息质量平台系列文章|全链路排查篇
  20. Ubuntu根目录结构说明

热门文章

  1. Laravel5中通过SimpleQrCode扩展包生成二维码实例
  2. VMware(1):MacOS虚拟机无法设置自动调整大小(已解决)
  3. html弹窗中遍历数组,有关js各种数组遍历
  4. 基于ETest_D的火控系统电源组件自动测试仪国产化设计
  5. python 计时方法_Python计时器类| cancel()方法与示例
  6. SCCM2019部署系统Failed to Run Task Sequence
  7. gp数据库和mysql数据库的区别_pg和gp数据库
  8. 仲裁庭怎样处理集体劳动人事争议
  9. 振弦采集模块针脚接口详细说明
  10. java基于ssm的物资物料管理系统