mysql基础操作和查询语句
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中没有全外连接
- 子查询:常用逻辑查询拼接
- 索引
- 视图
- 过程
- 窗口函数
- 其他内容
- 范式理论
- 数据完整性
- 数据一致性
- 约束
- 排名问题
- 约束
- 排名问题
- 为什么要使用数据库
- 解决数据持久化问题
- 高效的管理数据(增删改查)
- 数据库的分类:
-
关系型数据库
- 理论基础:关系代数
- 具体表象:二维表- ~ 行:记录
-
列:字段
- 编程语言:SQL(结构化查询语言) - DDL - 数据定义语言 —> create / drop / alter
- DML - 数据操作语言 —> insert / delete / update
- DQL - 数据查询语言 —> select
- DCL - 数据控制语言 —> grant / revoke
-
非关系型数据库(NoSQL / NewSQL)
- MongoDB —> 文档数据库
- Redis —> KV数据库
- 相关术语
- DB - database(数据库)
- DBA - database administrator(数据库管理员)
- DBMS - database management system(数据库管理系统)
- DBS - database system(数据库系统。)
~–> 计算机系统(软硬件+人)+DBMS+DB
- 使用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基础操作和查询语句相关推荐
- MySql基础之面试查询语句
文章目录 一.子查询 1.查询和Zlotkey相同部门的员工姓名和工资 2.查询工资比公司平均工资高的员工的员工号,姓名和工资 3.选择工资大于所有JOB_ID = 'SA_MAN'的员工的工资的员工 ...
- mysql循环查询一个表中的数据并进行修改_JavaScript学习笔记(二十四)-- MYSQL基础操作...
MYSQL mysql 是一个数据库的名字 和 php 合作的比较好的数据库 之前我们说过一个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端 接下来就聊聊使用 php 操作数据库 M ...
- 删除所有学生记录mysql_【MySQL】MySQL基础操作语句
mysql基础操作语句,包括数据库的增.删.切换,以及表的增.删.改.查.复制. 创建数据库 mysql> create database tem; 使用数据库 mysql> use te ...
- mysql修改学生信息语句,【MySQL】MySQL基础操作语句
mysql基础操作语句,包括数据库的增.删.切换,以及表的增.删.改.查.复制. 创建数据库 mysql> create database tem; 使用数据库 mysql> use te ...
- PHP - PDO 之 mysql 基础操作
PHP - PDO 之 mysql 基础操作 <?php/* pdo 学习 */$dsn = 'mysql:host=localhost;dbname=cswl';//构建连接dsn$db = ...
- 4.MySQL基础操作
4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握) 方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用) 方式三:通过编程语言(pyth ...
- Mysql 基础操作知识专题
目录 一.Mysql基础操作 1.1 mysql 表复制 1.2 mysql索引 1.3 mysql视图 1.4 mysql内置函数 1.5 mysql预处理语句 1.6 mysql事务处理 1.7 ...
- 【MySQL基础教程】DDL语句详细介绍
前言 本文为 [MySQL基础教程]DDL语句 相关内容进行介绍,下边将对数据库操作(包括:查询所有数据库.查询当前数据库.创建数据库.删除数据库.切换数据库等),表操作(包括:查询创建.数据类型.修 ...
- Oracle 10g数据库基础之基本查询语句-中-函数
Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...
最新文章
- Ubuntu下安装ruby的三种方式
- 簡單編譯內核 linux kernel gnu
- 慎用stl中的erase的返回值
- [C++11]共享智能指针shared_ptr指定删除器
- FROONT – 超棒的可视化响应式网页设计工具
- 在Linux系统安装Nginx及配置https加密访问
- the difference between a material and an effect
- 十分钟学会Java RMI
- Atlas 调用web service
- Java Spring 框架详解
- [转][酷酷的滕]我爱你语录
- vue+elementUI 表格下载为excel
- mysql报错不停止继续执行_mysql 8 启动失败(本地计算机上的mysql服务启动后停止。某些服务再未由其他服务或程序使用时将自动停止)...
- 深入了解机器学习(Descending into ML):线性回归
- 亚洲的音乐史料及其历史研究状况
- 创业维艰---分享这三年的揪心历程
- r语言怎么做经验分布_训练宝宝语言能力应该怎么做
- 江湖棋局,顺便说说象棋
- 消息质量平台系列文章|全链路排查篇
- Ubuntu根目录结构说明
热门文章
- Laravel5中通过SimpleQrCode扩展包生成二维码实例
- VMware(1):MacOS虚拟机无法设置自动调整大小(已解决)
- html弹窗中遍历数组,有关js各种数组遍历
- 基于ETest_D的火控系统电源组件自动测试仪国产化设计
- python 计时方法_Python计时器类| cancel()方法与示例
- SCCM2019部署系统Failed to Run Task Sequence
- gp数据库和mysql数据库的区别_pg和gp数据库
- 仲裁庭怎样处理集体劳动人事争议
- 振弦采集模块针脚接口详细说明
- java基于ssm的物资物料管理系统