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优化的理论依据。

原文地址:https://www.cnblogs.com/limengcheng/p/12098153.html