mysql基础操作和查询语句

MySQL基础

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 changed

mysql> 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 changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'zara'@'localhost'
    -> IDENTIFIED BY 'zara123';

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

注意: MySQL 的SQL语句以分号 (😉 作为结束标识。

-- 创建用户(用户名@用户可以登录的地址;密码)
create user 'guest'@'10.7.178.%' identified by 'Guest.618';

-- 删除用户
drop user 'guest'@'10.7.178.%';

-- 修改用户
alter user 'guest'@'10.7.178.%' identified 
	with mysql_native_password by 'Gue
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值