zoukankan      html  css  js  c++  java
  • MySql入门 (一)

     

    什么是MySQL?

             MySQL是一关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle

    旗下产品,当下最流行的关系型数据库管理系统 之一。 在 WEB 应用方面,MySQL最好

    RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

    MySql的优势:体积小、速度快、总体拥有成本低开放源码适合中小型网站开发.

    什么是关系型数据库?

         数据是有行有列的数据库就是关系型数据库,反之就是NoSQL数据库数据

    关系数据库的优势:在于将数据保存在不同的表中,而不是将所有数据放在一个大仓 库内,

    这样就增加了速度并提高了灵活性。

    MySQL安装

    个人推荐安装图解链接:https://www.cnblogs.com/whaben/articles/6687544.html

    什么是SQL?

    SQL(Structured Query Language,结构化查询语言)是用来操作关系数据库的语言。

    SQL分类:

    数据定义语言

    简称DDL(Data Definition Language)

    例如:create,alter,drop

    数据操作语言

    简称DML(Data Manipulation Language)

    例如:insert,delete,update

    数据控制语言

    简称DCL(Data Control Language)

    例如:grant,revoke 

    数据查询语言

    简称DQL(Data Query Language)

    例如:select,from,where

    SQL语句对表的操作

    1. 数据库

     语法:

    创建数据库: create 创建 database数据库

    删除数据库: drop 删除 EXISTS存在 IF如果

    DROP DATABASE IF EXISTS test;

          切换数据库:USE test;

      2.表

     

    语法:

    删除表  drop table [if exists] 表名;

           创建表  create table [if not exists] 表名 (

          字段1 数据类型 [字段属性|约束][索引][注释],

          字段n 数据类型 [字段属性|约束][索引][注释]

    )[表类型][表字符集][注释];         

    注意:

        1、如果数据库名,表名,字段名等与保留字冲突,用撇号括起来

        2、多个字段使用逗号隔开  

        3、单行注释:#

             多行注释:/*…*/

        4、设置为自动增长auto_increment

    查看表:

    show tables;

    查看表结构:

    desc 表名

    清空表数据,序列号从1开始:

     truncate table 表名;

    删除表:

    drop table 表名

    修改表

    alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.

    alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.

    alter table 表名 change 旧列名 新列名 类型(长度) 约束;--修改表修改列名.

    alter table 表名 drop 列名; --修改表删除列.

    rename table 表名 to 新表名; --修改表名

    alter table 表名 character set 字符集; --修改表的字符集

    插入记录

    语法:insert into (列名1,列名2,列名3..) values  (1,2,3..);

    修改记录:

    语法:update 表名 set 字段名=,字段名=;

    删除记录:

    语法:delete from 表名 [where 条件];

     

    对表数据的查询

      1. 查询所有的商品

    select * from product;

          2.别名查询,使用的as关键字,as可以省略的.

    2.1表别名: select * from product as p;

    2.2列别名:select pname as pn from product;

    3.去掉重复值

    select distinct price from product;

    4.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.

    select pname,price+10 from product;

     

    条件查询

       Select *from product where price=50

     

    排序

       SQL语法关键字:ORDER BY   ASC(默认升序) DESC(降序)

    示例: select * from product order by price;  

     

    聚合函数

     

      常用的聚合函数

    sum():求某一列的和

    avg():求某一列的平均值

    max():求某一列的最大值

    min():求某一列的最小值

    count():求某一列的元素个数

    示例: select sum(price) from product;

     

     

     多表查询

    内连接: inner join

    示例:SELECT  *  FROM  A  INNER JOIN  B ON A.id = B.id

    左外连接:LEFT JOIN 或者 LEFT OUTER JOIN

    示例:SELECT  *  FROM  A  LEFT  JOIN  B ON A.id = B.id

    右外连接:RIGHT JOIN 或者 RIGHT OUTER JOIN

    示例:SELECT  *  FROM  A  RIGHT  JOIN  B ON A.id = B.id

    分页查询LIMIT

    示例:SELECT * FROM table LIMIT [offset,] rows

    子查询:  in 或者 not in

    示例:SELECT StudentName FROM Student where studentNo  in

       ( select studentNo from result r inner join subject s on r.subjectNo

      =s.subjectNo where studentResult<60 and subjectName ='java')

     子查询注意事项:子查询可以出现在SQL语句中任何表达式的位置,子查询可以出现在select子句,from 子句 group by 子句中

          查询原理

    第一、单表查询

    根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据SELECT的选择列选择相应的列进行返回最终结果。

    第二、两表连接查询

    对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表;然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。

    第三、多表连接查询

    先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一个中间的结果表,然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。

    理解SQL查询的过程是进行SQL优化的理论依据。

  • 相关阅读:
    阿里MaxCompute(原ODPS)如何修改列字段数据类型
    解决SQL语句在Dapper执行超时比Query慢的问题
    IIS部署FLASK网站
    如何在vscode中调试python scrapy爬虫
    [转]阿拉伯数字转一二三和壹贰叁
    第三册复习
    不知道的口语
    跟小丸子学基础口语21-25
    跟小丸子学基础口语16-20
    跟小丸子学基础口语11-15
  • 原文地址:https://www.cnblogs.com/limengcheng/p/12098153.html
Copyright © 2011-2022 走看看