MySQL数据库基本操作(上)

2018-08-22  本文已影响0人  月亮是我踢弯得

史上最简单的 MySQL 教程>>>
MySQL运行机制原理&架构>>>
触发器
视图(上)
视图(下)
数据备份与还原(上)
数据备份与还原(中)
数据备份与还原(下)
MYSQL常用基本SQL语句总结
Python 操作 MySQL 之 pysql 与 ORM(转载)


一. MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

二. MySQL的安装与启动

1 . 安装

2 .启动

3.设置和修改密码和允许远程访问设置

mysql设置连接配置.png

4. 解决中午字符集乱码问题及重装MySQL的过程

mysql乱码问题及重装.png

二. 数据库的基本操作

1. 数据库的创建与打开

show databases 查看所有的数据库
create database 库名 [charset=utf8] 创建数据库
drop databases 库名 删除数据库
use 库名 打开数据库
show tables 查看当前数据库中所有的表
desc 表名 查看表结构

2. 表的管理

1). 表的创建

varcahr :可变字符类型
int : 整数值,默认长度11位,也可以使用integer, long
flot :小数类型,float(长度,小数位), double
data :日期类型.timestamp (日期时间)
text :多文本类型
enum('F','M') :多文本类型
注意:
varchar和char 的区别:
varchar 长度不固定,最多能存放 65532 个字符。VARCHAR 的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节.
char 的长度是固定,最多能存放的字符个数 255,和编码无关。
从编码的效率和占用内存的情况来看,char长度是固定的比较省时间,但有些字节并用不了那些空间,比较浪费空间,varchar长度可变,可以就具体长度决定所占空间,节省空间,但每次计算比较耗时,所有具体情况具体对待.

2). 表的修改
3). 删除表
4). 查看创建表的sql语句

3. 基本SQL语句

1). insert插入语句
2). select 查询语句

基本查询语句

  • 查询所有的
    select * from 表名;
  • 查看指定的列
    select 列1,列2 from 表名
  • 查看表中有多少条数据
    select count(*) from 表名;
  • 按条件查询
    select * from 表名 [where 条件]

条件查询(where)

  • 常用的操作符
    > , <, =, !=,>=, <=
  • between
    between 起始值 and 结束值
    select * from student where score between 85 and 95;
  • 模糊匹配查询
    like % 任意多个字符
       _ 任意一个字符
    模糊查询的SQL语法:
    select 字段列表 from 表名称 where 字段名 like 匹配条件
    • 示例
      查询名字中带有"刚"的工人
      select * from worker where name like '%刚%';
      查询名字中第二个字是"刚"的工人
      select * from worker where name like "_刚%";
      查询user表中已t开头的用户的名字
      select * from user where name like "t%";
  • 范围查询
    in()
    查询order表中价格在100到200之间的订单记录
    select * from order where price in(100,200);
3). update更新语句

update 表名 set 字段名=字段值 [where 条件]

4). delete删除语句

4. 排序, 分组, 链接, 限制, 分页

1) 排序查询 order by

格式:
select 字段1,字段2 from 表名 order by [desc](降序) [asc](升序)
示例:

按照成绩从高到低,将学生排序
select * from student order by score desc;
按照成绩从高到低,将学生排序,如果成绩相等则再按照年龄降序排序
select * from student order by score desc,age desc;

2) 分组查询 group by

格式:
select name, count(*) from 表名 group by name.
示例:

按照商品类型type对product表中的记录进行分组,求出每一组的平均价格
select type as 类型,avg(price) as 平均价格 from product group by type;
按照商品类型type对product表中的记录进行分组,求出零食组的平均价格
select type as 类型,avg(price) as 平均价格 from product group by type having type='零食';

3). JOIN链接

join链接操作链接的表越多,那么函数嵌套的层数也会越多,算法复杂度就会呈指数增长。同时,join操作分为三种:①等值链接,INNER JOIN,其中INNER可以省略;②左外连接,LEFT JOIN;③右外连接,RIGHT JOIN。

(1). 使用“内连接”查询学生姓名、学生成绩、学校名称。
select student.name,student.score,school.schoolname from school inner join student on student.school_id=school.schoolid;
(2). 使用“内连接”查询出“张红”的学生姓名、学生成绩、学校名称。
select student.name,student.score,school.schoolname from school inner join student on student.school_id=school.schoolid
and student.name='张红';

4). 限制查询

查询成绩大于等于70分的学生中,前两条记录
select * from student where score >= 70 limit 2;

5). 分页查询

已知当前页为currentPage,每页最多显示的记录数为pageSize,则currentPage页
显示的表中的记录为:
select 字段列表 from 表名称 [where 条件]
limit (currentPage-1)*pageSize,pageSize;
示例:

假如每页最多显示2条记录,查询第三页应该显示的记录
select * from student limit 4,2;

上一篇 下一篇

猜你喜欢

热点阅读