MySQL

MySQL

默认端口为3306

在MySQL中关键字不区分大小写

语句常用分号 `;` 来结束

目录

MySQL

一.SQL语言的组成

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

        2.数据查询语言(Data Query Language,DQL)

        3.数据操作语言(Data Manipulation Language,DML)

        4.数据控制语言(Data Control Language,DCL)

二.数据定义语言

       1.CREATE

                2.1.1创建数据库

                2.1.2创建表

                2.1.3创建视图

                2.1.4创建索引

                2.1.5创建存储过程

        2.ALTER 

                2.2.1修改表结构

                2.2.2修改视图定义

        3.DROP

三.数据查询语言

        1.SELECT

        2.WHERE               

        3.GROUP BY 

         4.ORDER BY

         5.LIMIT

         6.JOIN

四.数据操作语言

       1.INSERT

        2.UPDATE

        3.DELETE

                4.3.1删除全部数据

                4.3.2删除指定行数据

五.数据控制语言

        1.GRANT

        2.REVOKE


一.SQL语言的组成

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

                DDL用于定义数据库的结构和模式,包括创建、修改和删除数据库对象,如表、视图、索引和约束等。常见的DDL语句包括CREATE、ALTER和DROP等。

        2.数据查询语言(Data Query Language,DQL)

                DQL用于从数据库中查询和获取数据,它是SQL的核心部分。常见的DQL语句是SELECT,用于从表中检索数据。

        3.数据操作语言(Data Manipulation Language,DML)

                DML用于在数据库中执行数据的插入、更新和删除操作。常见的DML语句包括INSERT、UPDATE和DELETE等。

        4.数据控制语言(Data Control Language,DCL)

                DCL用于控制数据库的访问权限安全性,包括授权用户的访问权限、撤销权限、管理用户角色等。常见的DCL语句包括GRANT和REVOKE等。

二.数据定义语言

       1.CREATE

                在MySQL当中CREATE语句可以用来创建数据库、表、视图、存储过程、函数或其他数据库对象。

                2.1.1创建数据库

CREATE DATEBASE demo;

                CREATE DATEBASE语句可以用来创建新的数据库,其中“demo”是你要创建的数据库名称。

                2.1.2创建表

CREATE TABLE student(
    id int primary key,
    name varchar(50),
    class varchar(50)
);

                 CREATE TABLE语句可以用来创建新的表,这个语句中的id、name、class字串是你创建的表的列名,分别用于存储整数(int)和字符串(varchar)类型。

                2.1.3创建视图

CREATE VIEW view_name AS
SELECT column1,column2, .....
WHERE condition;

                CREATE VIEW语句可以用来创建新的视图,该视图时基于一个表或多个现有表的查询结果,可以指定需要的列、查询条件等。

                2.1.4创建索引

CREATE INDEX index_name
ON table_name (column1,column2, ...);

                CREATE INDEX语句用于创建表上的索引,以加快数据的检索速度。你可以指定需要创建索引的列。

                2.1.5创建存储过程

CREATE PROCEDURE get_student_count()
BEGIN
    SELECT COUNT(*) FROM student;
END;

                CREATE PROCEDURE语句可以用来创建存储过程,这个例子存储了一个查询所有学生数量的语句。

        除了上述用途,CREATE语句还可以用于创建用户、函数等数据库对象。请注意,在实际使用CREATE语句时,需要按照语法规则和要求提供正确的参数和选项,以确保创建过程正确无误。

        2.ALTER 

                ALTER语句在MySQL中用于修改已经存在的数据库对象的命令。可以用于修改表、视图、索引等数据库对象的定义和属性

                2.2.1修改表结构

ALTER TABLE table_name
ADD -- 或者其他的操作

                这个语句可以用于对表结构进行添加列、修改列的数据类型、删除列、添加主外键约束等操作。

                2.2.2修改视图定义

ALTER VIEW view_name AS
SELECT column1,column2,...
FROM new_table_name
WHERE condition;

                这个语句可以用于修改视图的查询语句,需要注意的是,使用ALTER VIEW语句修改视图定义时,需要提供视图的完整定义,包括新的查询语句和列列表。修改视图定义后,原来的视图将被替换为新的定义。

        3.DROP

               DROP语句在MySQL中用于删除数据库对象的命令。可以用于删除数据库中的表、视图、索引、约束等对象。

DROP TABLE table_name;

                TABLE可以替换成别的对象单词,table_name为对象的名字。

三.数据查询语言

        1.SELECT

                SELETE语句用于从一个或者多个表中查询数据,并且可以进行条件筛选、排序、分组以及去重等操作。

SELECT column1,column2,... FROM table_name
WHERE condtion
ORDER BY column1;

               如果想要查询表内的所有列可以将列名的位置替换成`*` 。

SELECT * FROM table_name;

        2.WHERE               

                 `WHERE`是指你要进行数据筛选的条件。

                主要拥有以下这些运算符。

             比较运算符                                                说明
                    =                                                等于
                   !=                                              不等于            
                    <                                                小于
                    >                                                大于
                   <=                                            小于等于
                   >=                                            大于等于
             区间运算符                                                说明
         BETWEEN...AND...                                       在指定的范围内
    NOT BETWEEN...AND...                                     不在指定的范围内         
                   IN                     判断某个列中的数据是否在给定的值当中
               NOT IN                   判断某个列中的数据是否不在给定的值当中

                此外还有一个运算符`LIKE`用于进行模糊查询,这个运算符可以搭配通配符进行使用。

                例如`%`通配符,这个通配符表示任意字符,具体使用方法如下

SELECT * FROM bookstore
WHERE bookname LIKE 'MySQL%'; --表示查询书名以MySQL开头的书籍

SELECT * FROM bookstore
WHERE bookname LIKE '%MySQL'; --表示查询书名以MySQL结尾的书籍

SELECT * FROM bookstore
WHERE bookname LIKE '%MySQL%'; --表示查询书名含有MySQL的书籍

               还有`_`通配符,这个通配符表示的是单个字符的占位符,具体使用方法如下

SELECT * FROM student
WHERE name LIKE '_三'; --表示查询第一个字为任意字符,后面跟‘三’

--还可以使用多个`_`来表示占用更多的位置

SELECT * FROM student
WHERE name LIKE '陈__'; --表示查询姓陈的学生,并且名字有三个字

        3.GROUP BY 

                `GROUP BY`主要用于对列的数据进行分组去重,可以使用聚合函数(SUM、COUNT、AVG等)进行计算。

SELECT column1, column2, ... FROM table_name
GROUP BY column1, COUNT(column2), ...;

                `GROUP BY`可以对一个或者多个列执行操作,并且可以搭配`HAVING`子句来对分组之后的数据进行筛选。

`HAVING`子句通常跟`GROUP BY`子句搭配使用

`HAVING`子句出现在`GROUP BY`子句之后,`ORDER BY`子句之前

`HAVING`类似于`WHERE`子句可以使用各种运算表达式

               

SELECT * FROM student
GROUP BY class
HAVING class LIKE '%软件技术%';

         4.ORDER BY

                `ORDER BY`子句用于对查询结果进行排序,按照指定的列或表达式的值进行升序或降序排列。它通常出现在SELECT语句的最后。

SELECT * FROM student
GROUP BY class
HAVING class LIKE '%软件技术%'
ORDER BY class ASC;

                 `ORDER BY`子句可以对一个列或多个列的查询结果进行排序,如果没有指定排序方式,默认为升序。ASC表示升序,DESC表示降序。

         5.LIMIT

                `LIMIT`是SQL中用于限制查询结果返回的行数的子句。可以用于限制查询结果集的大小,以便在处理大量数据时提高查询性能或者仅返回所需的数据部分。

SELECT name
FROM student
LIMIT 18;

                这个语句表示了返回18行数据。 

         6.JOIN

                `JOIN`是SQL中用于将两个或多个表基于共同的列进行连接的操作。通过JOIN操作,可以在查询中使用多个表的数据,并根据指定的连接条件将它们合并在一起。

SELECT * FROM tbl_user
INNER JOIN tbl_borrowinfo
ON user.userid= tbl_borrowinfo.userid;

                这个代码表示了通过两个表共同的列`userid``将两个表链接在一起查询,此外还有LEFT JOIN以及RIGHT JOIN这两个子句分别表示了返回第一个表和第二个表的数据。

四.数据操作语言

       1.INSERT

                `INSERT`语句用于向数据库表中插入新的数据。

INSERT INTO student(id, name, class)
VALUES (2022031099, '张三', '软件技术2班'),
       (2022042355, '李四', '计算机应用1班'),
       (2022235459, '王五', '软件技术1班');

                `INSERT`语句可以插入一条或是多条数据。

        2.UPDATE

                `UPDATE`语句用于修改数据库表中现有的数据。

UPDATE student
SET id= 2023545322, name= '赵六';

        3.DELETE

                DELETE语句用于从数据库表中删除行

                4.3.1删除全部数据

                        使用DELETE语句可以删除表中的所有数据,但是保留表的结构。

DELETE FROM student;

                4.3.2删除指定行数据

                        可以使用WHERE子句来指定条件,删除符合条件的行。

DELETE FROM student
WHERE name LIKE '黄%';

                使用DELETE语句时,请谨慎操作,确保提供正确的删除条件以及备份重要数据。删除操作是不可逆的,可能导致数据永久丢失。 

五.数据控制语言

        1.GRANT

                `GRANT`语句用于授予用户对数据库对象的特定权限。

这些权限可以是DDL以及DML中的一些语句。

GRANT SELECT,ALTER 
ON student 
TO zhangsan@localhost;

                上面这个代码表示了给`zhangsan@localhost`用户授予了对`student`表的查询以及修改权限。

        2.REVOKE

                `REVOKE`语句用于撤销用户对数据库对象的特定权限。

REVOKE ALTER
ON student
FROM zhangsan@localhost;

                也可以使用该语句撤销用户的的所有权限。

REVOKE ALL PRIVILEGES ON *.* FROM zhangsan@localhost;

        通过授予和撤销权限,可以限制用户对数据库对象的操作,并确保只有授权的用户才能执行特定的操作。这有助于确保数据的安全性和完整性

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cqssss_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值