• 21天打卡挑战学习MySQL——《SQL基础入门》第二周 第四篇



    活动地址:CSDN21天学习挑战赛

    一、什么是SQL

    MySQL是一个关系型数据库管理系统
    前世:瑞典MySQLAB公司
    今生:属于Oracle旗下产品
    MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。
    开软的数据库软件~
    体积小、速度快、总体拥有成本低,招人成本较低,所有人必须会
    中小型网站、或者大型网站,集群!

    SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。

    二、SQL的执行过程

    整个执行过程包含了多种组件

    • 查询调度程序;
    • 优化引擎;
    • 传统的查询引擎;
    • SQL 查询引擎。
      在这里插入图片描述

    三、SQL的命令

    与关系型数据库有关的 SQL 命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE、DROP 等,根据其特性,可以将它们分为以下几个类别。

    1. DDL - Data Definition Language,数据定义语言

    对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。

    命令说明
    CREATE用于在数据库中创建一个新表、一个视图或者其它对象。
    ALTER用于修改现有的数据库,比如表、记录。
    DROP用于删除整个表、视图或者数据库中的其它对象

    2.DML - Data Manipulation Language,数据处理语言

    对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除、修改和查询。

    命令说明
    SELECT用于从一个或者多个表中检索某些记录。
    INSERT插入一条记录。
    UPDATE修改记录。
    DELETE删除记录。

    3.DCL - Data Control Language,数据控制语言

    控制数据的访问权限,只有被授权的用户才能进行操作。

    命令说明
    GRANT向用户分配权限。
    REVOKE收回用户权限。

    四、sql的语句实现

    1、数据库的基本操作

    1、创建数据库 
    CREATE DATABASE database-name
     
    2、备份 mysql
    备份数据库到D盘跟目录
    mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql
     
    3、删除数据库 
    drop database dbname
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、表的基本操作

    
    1、创建新表 
    create table tabname(col1 type1 [not null] [primary key],col2 type2 
    [not null],..)
     
    A:根据已有的表创建新表
     create table tab_new like tab_old 
     
    B:使用旧表创建新表
    create table tab_new as select col1,col2„ from tab_old definition  only
     
    2、删除新表 
    drop table tabname
     
    3、增加列 
    Alter table tabname add column col type
     
     
    4、主键操作
     
    添加主键
     Alter table tabname add primary key(col) 
     
    删除主键 
    Alter table tabname drop primary key(col) 
     
    5、索引(索引是不可更改的,想更改必须删除重新建。)
     
    创建索引
    create [unique] index idxname on tabname(col„.) 
     
    删除索引
    drop index idxname
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    3、视图

    创建视图
    create view view_name as select statement 
     
    删除视图
    drop view view_name
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、基本的增删改查

    选择范围
    select * from table1 where ...
     
    插入
    insert into table1(field1,field2) values(value1,value2)
     
    删除
    delete from table1 where ...
     
    更新
    update table1 set field1=value1 where ...
     
    查找
    select * from table1 where field1 like ’%value1%’ 
     
    排序
    select * from table1 order by field1,field2 [desc]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5、统计

    总数
    select count as totalcount from table1
     
    求和
    select sum(field1) as sumvalue from table1
     
    平均数
    select avg(field1) as avgvalue from table1
     
    最大数
    select max(field1) as maxvalue from table1
     
    最小数
    select min(field1) as minvalue from table1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    五、实战

    1.创建数据表插入数据

    # 创建数据库
    create database mysql_exercise_50;
    use mysql_exercise_50;
    
    # 学生表
    CREATE TABLE Student(
    s_id VARCHAR(20),
    s_name VARCHAR(20) NOT NULL DEFAULT '',
    s_birth VARCHAR(20) NOT NULL DEFAULT '',
    s_sex VARCHAR(10) NOT NULL DEFAULT '',
    PRIMARY KEY(s_id)
    );
    insert into Student values('01' , '张三' , '1990-01-01' , '男');
    insert into Student values('02' , '李四' , '1990-12-21' , '男');
    insert into Student values('03' , '王五' , '1990-05-20' , '男');
    insert into Student values('04' , '赵六' , '1990-08-06' , '男');
    insert into Student values('05' , '冯七' , '1991-12-01' , '女');
    insert into Student values('06' , '周八' , '1992-03-01' , '女');
    insert into Student values('07' , '吴九' , '1989-07-01' , '女');
    insert into Student values('08' , '郑十' , '1990-01-20' , '女');
    
    # 课程表
    CREATE TABLE Course(
    c_id VARCHAR(20),
    c_name VARCHAR(20) NOT NULL DEFAULT '',
    t_id VARCHAR(20) NOT NULL,
    PRIMARY KEY(c_id)
    );
    insert into Course values('01' , '语文' , '02');
    insert into Course values('02' , '数学' , '01');
    insert into Course values('03' , '英语' , '03');
    
    # 教师表
    CREATE TABLE Teacher(
    t_id VARCHAR(20),
    t_name VARCHAR(20) NOT NULL DEFAULT '',
    PRIMARY KEY(t_id)
    );
    insert into Teacher values('01' , '王老师');
    insert into Teacher values('02' , '李老师');
    insert into Teacher values('03' , '冯老师');
    
    # 成绩表
    CREATE TABLE Score(
    s_id VARCHAR(20),
    c_id VARCHAR(20),
    s_score INT(3),
    PRIMARY KEY(s_id,c_id)
    );
    insert into Score values('01' , '01' , 80);
    insert into Score values('01' , '02' , 90);
    insert into Score values('01' , '03' , 99);
    insert into Score values('02' , '01' , 70);
    insert into Score values('02' , '02' , 60);
    insert into Score values('02' , '03' , 80);
    insert into Score values('03' , '01' , 80);
    insert into Score values('03' , '02' , 80);
    insert into Score values('03' , '03' , 80);
    insert into Score values('04' , '01' , 50);
    insert into Score values('04' , '02' , 30);
    insert into Score values('04' , '03' , 20);
    insert into Score values('05' , '01' , 76);
    insert into Score values('05' , '02' , 87);
    insert into Score values('06' , '01' , 31);
    insert into Score values('06' , '03' , 34);
    insert into Score values('07' , '02' , 89);
    insert into Score values('07' , '03' , 98);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    2.测试即可!

  • 相关阅读:
    解析紫光展锐T820 5G芯片——让照片接近原色
    zookeeper第一章:集群搭建
    Nexus私服(三)
    vue3探索——pinia高阶使用
    初试Eureka注册中心
    MongoDB基本操作
    用户注册场景
    多图|一文详解Nacos参数!
    【Tronlong TLT113 Series--1 Env Install】
    js导出excel表格并生成多sheet(更改列宽)
  • 原文地址:https://blog.csdn.net/m0_55400356/article/details/126220801