当前位置: 首页 > article >正文

MYSQL------sql基础

SQL基础与简介

  • 定义:SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,用于存取数据以及查询、更新和管理关系数据库系统。
  • 作用:可以用于数据库的创建、数据的插入、查询、更新和删除等操作,还能进行数据的统计分析、权限控制等。
  • 特点:语法简单易学,非过程化,只需提出“做什么”,无需指明“怎么做”,集合操作能力强,能对一组数据进行操作。

MySQL使用入门

  • 安装:可从MySQL官方网站下载对应操作系统的安装包,按照安装向导进行安装。
  • 连接数据库:安装完成后,可使用命令行工具或图形化工具(如Navicat、MySQL Workbench)连接到MySQL数据库。
  • 基本操作:创建数据库使用CREATE DATABASE语句;创建表使用CREATE TABLE语句;插入数据使用INSERT INTO语句;查询数据使用SELECT语句;更新数据使用UPDATE语句;删除数据使用DELETE FROM语句。

SQL分类

  • 数据定义语言(DDL):用于定义数据库对象,如数据库、表、视图、索引等,主要语句有CREATEALTERDROP等。
  • 数据操纵语言(DML):用于对数据库中的数据进行操作,包括插入、查询、更新和删除数据,主要语句有SELECTINSERTUPDATEDELETE
  • 数据控制语言(DCL):用于控制对数据库中数据的访问和操作权限,主要语句有GRANTREVOKE
  • 事务控制语言(TCL):用于管理数据库事务,如提交事务COMMIT、回滚事务ROLLBACK等。

SQL语句

常见SQL语句包括数据查询语句、数据更新语句等。如查询语句SELECT * FROM table_name WHERE condition;更新语句UPDATE table_name SET column1=value1,column2=value2 WHERE condition;插入语句INSERT INTO table_name (column1,column2,column3) VALUES (value1,value2,value3);删除语句DELETE FROM table_name WHERE condition

DDL语句

  • CREATE:创建数据库CREATE DATABASE database_name;创建表CREATE TABLE table_name (column1 type1, column2 type2)
  • ALTER:添加列ALTER TABLE table_name ADD column_name column_type;修改列类型ALTER TABLE table_name MODIFY column_name new_type;删除列ALTER TABLE table_name DROP COLUMN column_name
  • DROP:删除数据库DROP DATABASE database_name;删除表DROP TABLE table_name

DML语句

  • SELECT:查询所有列SELECT * FROM table_name;条件查询SELECT column1,column2 FROM table_name WHERE condition
  • INSERT:插入一条记录INSERT INTO table_name (column1,column2) VALUES (value1,value2);插入多条记录INSERT INTO table_name (column1,column2) VALUES (value1,value2),(value3,value4)
  • UPDATE:更新一条记录UPDATE table_name SET column1=value1 WHERE condition;更新多条记录UPDATE table_name SET column1=value1,column2=value2 WHERE condition
  • DELETE:删除一条记录DELETE FROM table_name WHERE condition;删除表中所有记录DELETE FROM table_name

DCL语句

  • GRANT:授予权限GRANT SELECT,INSERT ON table_name TO user_name,表示授予用户对表的查询和插入权限。
  • REVOKE:撤销权限REVOKE SELECT ON table_name FROM user_name,表示撤销用户对表的查询权限。

帮助的使用

  • MySQL命令行帮助:在MySQL命令行中,可使用HELP命令获取帮助,如HELP SELECT可查看SELECT语句的帮助信息。
  • 官方文档:MySQL官方网站有详细的文档,涵盖了安装、配置、使用等各个方面的内容,可根据需求查找相关信息。

按照层次看帮助

可以从基础概念开始,逐步深入到具体的语句和操作。先了解SQL的基本概念、数据库的基本结构等基础知识,再学习各类SQL语句的语法和用法,最后学习高级特性和优化技巧等。

快速查询帮助

可利用搜索引擎,输入关键词,如“MySQL SELECT语句用法”,快速找到相关的教程和文档。也可在技术论坛和社区中提问,如Stack Overflow、CSDN等,向其他开发者请教。
在这里插入图片描述

以下是各类 SQL 语句的代码示例,基于 MySQL 8.0 运行:

DDL(数据定义语言)示例

  1. 创建数据库
-- 创建一个名为 test_db 的数据库
CREATE DATABASE test_db;
  1. 创建表
-- 使用 test_db 数据库
USE test_db;
-- 创建名为 students 的表,包含 id(主键,自增长整数)、name(字符串)、age(整数) 三个字段
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);
  1. 修改表结构
-- 给 students 表添加一个新的 gender 字段,类型为 CHAR(1)
ALTER TABLE students ADD COLUMN gender CHAR(1);
  1. 删除表
-- 删除 students 表
DROP TABLE students;
  1. 删除数据库
-- 删除 test_db 数据库,前提是数据库为空或者你确认要删除其中的数据
DROP DATABASE test_db;

DML(数据操纵语言)示例

  1. 插入数据
-- 向 students 表插入一条记录
INSERT INTO students (name, age, gender) VALUES ('Alice', 20, 'F');
-- 插入多条记录
INSERT INTO students (name, age, gender) VALUES 
('Bob', 22, 'M'),
('Cindy', 21, 'F');
  1. 查询数据
-- 查询 students 表所有记录
SELECT * FROM students;
-- 按条件查询,查询年龄大于 20 岁的学生
SELECT * FROM students WHERE age > 20;
  1. 更新数据
-- 将名字为 'Bob' 的学生年龄更新为 23
UPDATE students SET age = 23 WHERE name = 'Bob';
  1. 删除数据
-- 删除名字为 'Cindy' 的学生记录
DELETE FROM students WHERE name = 'Cindy';

DCL(数据控制语言)示例

  1. 授予权限
-- 创建一个新用户 'test_user',密码为 'test123'
CREATE USER 'test_user' IDENTIFIED BY 'test123';
-- 授予 'test_user' 对 test_db 数据库中 students 表的查询权限
GRANT SELECT ON test_db.students TO 'test_user';
  1. 撤销权限
-- 撤销 'test_user' 对 test_db 数据库中 students 表的查询权限
REVOKE SELECT ON test_db.students FROM 'test_user';

在这里插入图片描述


http://www.kler.cn/a/466051.html

相关文章:

  • 【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道
  • windows中硬件加速gpu计划开启cpu的使用率居高不下
  • 如何在 Spring Cloud Gateway 中创建全局过滤器、局部过滤器和自定义条件过滤器
  • 【shell编程】报错信息:Non-zero Exit Status(包含7种解决方法)
  • 第J4周:ResNet与DenseNet结合探索
  • RISC-V学习笔记
  • 单元测试、系统测试和集成测试知识
  • 家政预约小程序07参与活动
  • 堆排序基础与实践:如何在Java中实现堆排序
  • VMware去虚拟化
  • halcon中图像处理及图像滤波
  • ElementUI中的el-select显示的不是对应label值
  • 【react】Redux的设计思想与工作原理
  • LeetCode1507 转变日期格式
  • c++不够用知识补充-using namespace
  • 经纬度噪点与误差处理的优化
  • Beamer-LaTeX学习(教程批注版)【1】
  • 【计算机网络】课程 作业一 搭建连续覆盖的办公网络
  • Conda 安装 Jupyter Notebook
  • 深入解析Reactive Programming框架在微服务中的最新应用
  • 鸿蒙NEXT开发中使用星闪服务
  • 线性代数考研笔记
  • 汽车燃油软件标定测试
  • 机器学习算法深度解析:以支持向量机(SVM)为例及实战应用
  • 贪心算法概述
  • git rest --hard