MySQL入门学习一

本文介绍了数据库的基本概念,包括数据库、数据库管理系统(DBMS)和SQL。重点讲述了MySQL的安装与连接方法,以及SQL语句的基本语法,如DDL用于创建和删除数据库及表,DML用于数据的增删改,DQL用于查询,DCL用于权限控制。还详细列举了MySQL中各种操作数据库的命令示例。
摘要由CSDN通过智能技术生成

数据库相关概念

  • 数据库:存储数据的仓库,数据是有组织的进行存储,DataBase,简称DB
  • 数据库管理系统:操纵和管理数据库的大型软件,DataBase Management System,简称DBMS
  • SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准,Structured Query Language,简称SQL

注意:MySQL是一个关系型数据库管理系统

MySQL安装与连接

1、安装教程可以在网上找,有很多,可选择版本进行安装,我本人安装的是5.7版本
2、连接命令

mysql  [-h 127.0.0.1] [-P 3306] -u username -p[password] 
-- []中的内容是可选择,可加可不加,根据实际情况而定
-- -h后面是要连接mysql服务器的IP,如果是本机可写-h 127.0.0.1或不写
-- -P后面是要连接的mysql服务器的port, 注意P是大写,要跟密码-p区分开
-- -u后面是mysql的账号
-- -p后面是mysql账号对应密码,-p和密码之间没有空格,p是小写,密码是非加密形式,存在安全问题

MySQL语法

通用语法说明

  • SQL语句都要以英文分号;结尾
  • MySQL语句不区分大小写,关键字建议大写
  • 注释:
    • 单行注释:–XXXX 或 #XXX(MySQL特有)
    • 多行注释:/* XXXX */

SQL分类

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

DDL

数据库操作
  1. 查询所有数据库
SHOW DATABASES;
  1. 查询当前数据库
SELECT DATABASE();
  1. 创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]
  1. 删除数据库
DROP DATABASE [IF EXISTS] 数据库名
  1. 使用数据库
USE 数据库名;
表操作
USE 数据库名; --先进入某一个数据库中
  1. 查询当前数据库所有表
SHOW TABLES;
  1. 查询表结构
DESC 表名;
  1. 查询指定表的建表结构
SHOW CREATE TABLE 表名;
  1. 创建表
CREATE TABLE 表名(
	字段1 字段名类型 [字段1约束条件] [COMMENT 字段1注释],
	字段2 字段名类型 [字段2约束条件] [COMMENT 字段2注释]
	字段3 字段名类型 [字段3约束条件] [COMMENT 字段3注释]
	......
	字段n 字段名类型 [字段n约束条件] [COMMENT 字段n注释]
)[表的约束条件] [COMMENT 表注释];
-- []中内容是可选项

数值类型
字符串类型
日期时间类型
5. 删除表

--删除表
DROP TABLE [IF EXISTS] 表名;
--删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
  1. 添加字段
ALTER TABLE 表名 ADD 字段名  类型(长度) [COMMENT 注释] [约束];
  1. 修改字段
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
  1. 删除字段
ALTER TABLE 表名 DROP 字段名;
  1. 修改表名
ALTER TABLE 旧表名 RENAME to 新表名;

DML

添加数据
  1. 给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES(1,2,...);
  1. 给全部字段添加数据
INSERT INTO 表名 VALUES(1,2,...);
  1. 批量添加数据
--指定字段批量添加
INSERT INTO 表名(字段名1,字段名2,...) VALUES (1,2,...),(1,2,...),(1,2,...),...;
--全部字段批量添加
INSERT INTO 表名 VALUES (1,2,...),(1,2,...),(1,2,...),...;
修改数据
UPDATE 表名 SET 字段名1=1,字段名2=2,... [WHERE 条件1 AND 条件2...];
删除数据
DELETE FROM 表名 [WHERE 条件1 AND 条件2...];
--注意:DELETE 语句不能删除某一个字段的值(用UPDATE可实现),只能删除某条数据

DQL

基本查询
  1. 查询多个字段
--查询表中指定字段
SELECT 字段1 [as] [别名],字段2,...  FROM 表名;
--查询表中所有字段
SELECT * FROM 表名;
  1. 去重重复字段
--根据字段1去重
SELECT DISTINCT 字段1 [as] [别名],字段2,...  FROM 表名;
条件查询
SELECT 字段列表 FROM 表名 WHERE 条件1 [AND 条件2....];
聚合查询

AVG():平均值
SUM():求和
MAX():最大值
MIN():最小值
COUNT():统计数量

SELECT 聚合函数(字段) FROM 表名 WHERE 条件1 [AND 条件2....] ;

注意:null值不参与所有聚合函数的运算

分组查询
SELECT 字段列表 FROM 表名 [WHERE 条件1] [AND 条件2....] GROUP BY 分组字段名 [HAVING 分组后的过滤条件];
--排序方式
-- 》执行时机不同:where是分组之前进行过滤,不满足where条件的不能参与分组;而having是分组之后对结果进行过滤
-- 》判断条件不同:where不能对聚合函数进行判断,而having可以
排序查询
SELECT 字段列表 FROM 表名 [WHERE 条件1] [AND 条件2....] ORDER BY 字段1 排序方式,字段2 排序方式;
--排序方式
-- 》 asc 升序(默认)
-- 》 desc 倒序
分页查询
SELECT 字段列表 FROM 表名 [WHERE 条件1] [AND 条件2....] LIMIT 起始索引,查询记录数;
-- 起始索引从0开始,起始索引=(查询页码-1)* 每页显示记录数
-- 如果查询的是第一页数据,起始索引可以忽略,直接写成‘LIMIT 查询记录数’
执行顺序

FROM-》WHERE-》AND-》GROUP BY -》HAVING-》SELECT -》ORDER BY-》LIMIT

DCL

管理用户
  1. 查询用户
    存储位置:‘mysql’ 数据库 ‘user’ 表中
use mysql;
select * from mysql;
  1. 创建用户
--语法
create user '用户名'@'主机名' IDENTIFIED BY '密码';
--创建用户'itcast',只能够在当前主机localhost访问,密码'123456'
create user 'itcast'@'loclhost' identified by '123456';
--创建用户'itcast',可以在任意主机访问,密码'123456'
create user 'itcast'@'%' identified by '123456';
  1. 修改用户密码
--语法
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
--修改用户 'itcast' 用户密码为1234
alter user 'itcast'@'%' identified with mysql_native_password by '1234';
  1. 删除用户
--语法
DROP USER '用户名'@'主机名';
--删除用户 'itcast'
drop user 'itcast'@'%';
权限控制
常见权限说明
ALL,ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表
  1. 查询权限
--语法
SHOW GRANTS FOR '用户名'@'主机名';
--查询 'itcast' 用户的权限
show grants for 'itcast'@'%';
  1. 授予权限
--语法
GRANTS 权限列表 ON 数据库.表名 TO '用户名'@'主机名';
--给 'itcast' 用户授予DB_SC_ECIS数据库所有表的所有权限
grants all on DB_SC_ECIS.* TO 'itcast'@'%';
--给 'itcast' 用户授予DB_SC_ECIS.T_EMER表的所有操作权限
grants all on DB_SC_ECIS.T_EMER TO 'itcast'@'%';
  1. 撤销权限
--语法
REVOKE 权限列表 ON 数据库.表名 FROM '用户名'@'主机名';
--撤销 'itcast' 用户DB_SC_ECIS数据库的所有权限
revoke all on DB_SC_ECIS.* from 'itcast'@'%';
--撤销 'itcast' 用户DB_SC_ECIS.T_EMER表的所有权限
revoke all on DB_SC_ECIS.T_EMER from 'itcast'@'%';
  1. 注意事项
  • 多个权限用 ’ , ’ 隔开
  • 授权时,数据库名和表名可以使用 * 进行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值