ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL入门

2019-12-25 16:05:10  阅读:235  来源: 互联网

标签:JOIN 入门 数据库 MySQL 查询 表名 table 列名


MySQL是什么

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

l 为什么要使用MySQL

优点:

体积小、速度快、总体拥有成本低,开源;

支持多种操作系统;

是开源数据库,提供的接口支持多种语言连接操作 ;

数据库和表

常见的数据库管理系统

² MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL5.5版本之后都是由Oracle发布的版本。

² Oracle收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

² DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. 在中国的互联网公司,要求去IOE(IBM小型机、Oracle数据库、EMC存储设备)

² SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

² SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner

² SQLite : 嵌入式的小型数据库,应用在手机端。

 SQL语句介绍

l 什么是SQL?

全称Structured Query Language,简称SQL,中文叫结构化查询语言。

SQL语句使用

l 创建数据库

语法:

    * create database 数据库名;

    * create database 数据库名 character set 字符集;

l 查看数据库

查看数据库服务器中的所有的数据库:show databases;

查看某个数据库的定义的信息:show create database 数据库名;

l 删除数据库

drop database 数据库名称;

l 其他的数据库操作命令

切换数据库:use 数据库名;

查看正在使用的数据库:select database();

字段类型

l 创建表

create table 表名(

   字段名 类型(长度) 约束,

   字段名 类型(长度) 约束

);

单表约束:

    * 主键约束:primary key

    * 唯一约束:unique

    * 非空约束:not null

    * 注意:主键约束 = 唯一约束 + 非空约束

l 查看表

查看数据库中的所有表:show tables;

查看表结构:desc 表名;

l 删除表

drop table 表名;

l 修改表

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

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

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

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

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

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

插入记录:insert

l 语法:

insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列

insert into 表 values (值1,值2,值3..); --向表中插入所有列

insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表

insert into 表 values select * from 表

l 注意:

  1. 列名数与values后面的值的个数相等
  2. 列的顺序与插入的值得顺序一致
  3. 列名的类型与插入的值要一致.
  4. 插入值得时候不能超过最大长度.

值如果是字符串或者日期需要加引号’’ (一般是单引号)

更新记录:update

 

l 语法:

update 表名 set 字段名=值,字段名=值;

update 表名 set 字段名=值,字段名=值 where 条件;

l 注意:

  1. 列名的类型与修改的值要一致.
  2. 修改值得时候不能超过最大长度.
  3. 值如果是字符串或者日期需要加’’.

删除记录:delete

l 语法:

delete from 表名 [where 条件];

l 面试题:

删除表中所有记录使用delete from 表名; 还是用truncate table 表名;

删除方式:delete 一条一条删除,不清空auto_increment记录数。

truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。

SQL查询

查询语法

 SELECT [DISTINCT]*[列名,列名] FROM  表 [WHERE 条件].

 

排序

SQL语法关键字

  ORDER BY

  ASC(升序) DESC(降序)

1.1 聚合函数(组函数)

特点:只对单列进行操作

常用的聚合函数: 

  sum():求某一列的和

  avg()求某一列的平均值

     max()求某一列的最大值

  min()求某一列的最小值

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

分组

SQL语法关键字

  GROUP BY

  HAVING

语法顺序和执行顺序(重要)

l MySQL查询语法顺序

  1. SELECT
  2. FROM
  3. LEFT JOIN
  4. ON
  5. WHERE
  6. GROUP BY
  7. HAVING
  8. ORDER BY
  9. LIMIT

l WHERE条件执行顺序(影响性能)

1.mysql:从左往右去执行where条件的

2.oracle:从右往左去执行where条件的

l 结论:写WHERE条件的时候,优先级高的部分要去编写过滤力度最大的条件语句。

多表关联查询

交叉连接的关键字:CROSS JOIN

l 隐式交叉连接

SELECT  * FROM A, B

l 显式交叉连接

SELECT  *  FROM  A  CROSS  JOIN  B

内连接

内连接的关键字:INNER JOIN

l 隐式内连接

SELECT  *  FROM  A,B  WHERE A.id = B.id

l 显式内连接

SELECT  *  FROM  A  INNER JOIN  B ON A.id = B.id

外连接

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

SELECT  *  FROM  A  LEFT  JOIN  B ON A.id = B.id

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

SELECT  *  FROM  A  RIGHT  JOIN  B ON A.id = B.id

1.1 页查询

MySQL的分页关键字是:LIMIT

 

l 格式:

SELECT * FROM table LIMIT [offset,] rows

子查询

l 定义

子查询允许把一个查询嵌套在另一个查询当中。

子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。

l 位置

select 中、from 后、where 中. 

MySQL事务处理

事务概述

MySQL 事务主要用于处理操作量大,复杂度高的数据。

一般来说,事务是必须满足4个条件(ACID):

l Atomicity(原子性)

l Consistency(稳定性)

l Isolation(隔离性)

Durability(可靠性)

 

对于ACID的解释如下:

原子性:构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。

稳定性(一致性)数据库在事务执行前后状态都必须是稳定的。

隔离性:事务之间不会相互影响。

可靠性(持久性)事务执行成功后必须全部写入磁盘。

标签:JOIN,入门,数据库,MySQL,查询,表名,table,列名
来源: https://www.cnblogs.com/wu-yi/p/12093127.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有