MySQL操作

下载地址:http://www.mysql.com/


数据库操作

在数据库操作中,基本操作都是围绕增删改查来操作。简称CRUD

  • C Create 创建
  • R Read/Retrieve 查询
  • U Update 修改
  • D Delete 删除

在数操作数据库时,所有的数据库语句都要以分号结束,数据库操作不区分大小写


  • 创建数据库
create database 数据库名;
create database 数据库名 charset utf8; 
  • 显示数据库创建信息
show create database 数据库名;

这里写图片描述

  • 修改数据库编码
alter database 数据库名 charset utf8;
  • 显示所有数据库
show databases;
  • 切换、使用数据库
use 数据库名
  • 显示当前数据库
select database();
  • 删除数据库
drop database 数据库名;

数据表操作

和数据库操作一样,在数据表在操作中,也是是围绕增删改查来操作。

  • 关系表中元素构成
    这里写图片描述

  • MySQL常用字段类型

    • 整数类型

    这里写图片描述

    • 浮点数类型

      这里写图片描述

    • 字符串类型

      这里写图片描述

    • 时间类型

      这里写图片描述

    • 枚举类型(了解)

      enum(枚举值1,枚举值2, ...)

  • 查看所在数据库中所有的表
show tables;
  • 创建表
create table 表名(字段1 字段类型,字段2 字段类型, ....);

这里写图片描述

  • 显示创建表信息
show create table 表名;
  • 增加字段
alter table 表名 add 字段名 字段类型;
  • 删除字段
alter table 表名 drop 字段名;
  • 修改字段的数据类型
alter table 表名 modify 字段名 字段类型;
  • 修改字段的数据类型并且改名
alter table 表名 change 原字段名 新字段名 字段类型;

插入数据

  • 插入所有字段数据
insert into 表名 values(值列表,...);

这里写图片描述

  • 插入指定字段
    指定字段顺序和列中顺序可以不同,值顺序要和指定字段顺序相同。
insert into 表名(字段1,字段2) values(值1,值2);

这里写图片描述

  • 插入多条数据
insert into 表名 values(值列表, ...),(值列表, ...);

这里写图片描述


修改数据

  • 更新指定字段中所有的数据
updata 表名 set 字段名=值;
  • 更新指定字段中满足条件的数据
updata 表名 set 字段名=值 where 条件;

这里写图片描述


删除数据

  • 删除全部数据
truncate 表名;
delete from 表名;
  • 删除满足条件的数据
delete from 表名 where 条件;

这里写图片描述


添加约束

  • 主键约束 (一个表中只能存在一个主键约束)

字段被设置了主键约束,同时也具有了唯一性约束和非空约束。 在字段中插入重复数据时,或不给数据时会报错。

create table 表名(字段名 字段类型 primary key,字段名 字段类型, ...);

这里写图片描述

  • 自动增长 (让数字值自动累加)
create table 表名(字段名 字段类型(int) auto_incremment primary key,字段名 字段类型, ...);

这里写图片描述

  • 唯一性约束
create table 表名(字段名 字段类型 unique, ...);
  • 非空约束 (添加数据时必须给值)
create table 表名(字段名 字段类型 not null, ...);

这里写图片描述

  • 默认约束
create table 表名(字段名 字段类型 default '默认值', ...)

这里写图片描述

  • 外键约束
-- 表1 
 create table1(字段1 字段类型 primary key,字段2 字段类型,...);
 -- 表2
 create table2(字段3 字段类型 primary key auto_increment, 字名4 字段类型, 字名5 字段类型, foreign key(字段5) references1(字段1));

这里写图片描述

想要删除有设置外键的表,必须先删除外键所关联的表。
这里写图片描述

  • 添加主键约束
alter table 表名 add constraint 约束名 primary key(字段名);

这里写图片描述

  • 删除主键约束
因为一个表中最多只能有一个主键约束,所以可以直接删除

alter table 表名 drop primary key;
  • 添加外键约束
alter table 表名 add constraint 外键约束名 foreign key(外键字段名) references 关联表(关联字段名);

这里写图片描述

  • 删除外键约束
alter table 表名 drop foreign key 外键名;

这里写图片描述


单表查询数据

  • 查询数据表中所有数据
select * from 表名;
  • 查询指定字段数据
select 字段1,字段2,... from 表名;
  • as 别名 (通过别名来修改显示的样式)
在给字段起别名时,可以使用 as ,也可以直接在字段后跟别名,省略 as 。

select 字段1 as 别名1,字段2 别名,... from 表名;

这里写图片描述

  • 去重 (去除重复的数据)
select distinct 字段名 from 表名;

这里写图片描述

  • 带条件查询 where 子句
select * from 表名 where 条件;

这里写图片描述

where条件可以使用运算符操作

  • 比较运算符
    • 等于: =
    • 大于: >
    • 大于等于: >=
    • 小于: <
    • 小于等于: <=
    • 不等于: != 或 <>

这里写图片描述
- 逻辑运算符
- and
- or
- not

这里写图片描述
- 模糊查询
- like
- % 表示0或多个任意字符
- _ 表示一个任意字符

这里写图片描述

  • 范围查询

    • in 表示在一个非连续的范围内 , 可以使用 or 实现

      select * from 表名 where 字段名 in(值...);

      这里写图片描述

    • between…and… 表示在一个连续的范围内,可以使用 and 实现
      这里写图片描述

  • 空判断

    • is null 判断空值

      select * from 表名 where 字段名 is null;
    • is not null 判断非空值

      select * from 表名 where 字段名 is not null
  • 查询结果排序

    排序使用 order by 子句 asc(默认) 升序 / desc 降序 语法:select * from 表名 order by 列1 asc|desc [,列2 asc|desc,…]

    • 单字段排序

      select * from 表名 order by 字段名;
      select * from 表名 order by 字段名 asc;
    • 多字段排序

          select * from 表名 order by 字段1 desc,字段2 asc;

    这里写图片描述

  • 分页查询
    select from 表名 limit start=0,count

    从start开始,获取count条数据
    start默认值为0
    需要获取数据的前n条的时候可以直接写 limit n
    这里写图片描述

  • 聚合函数
    这里写图片描述

select sum(字段),avg(字段),min(字段),max(字段),count(字段) from 表名;

这里写图片描述

  • 分组
  • select 分组的字段名,聚合函数… from 表名 group by 分组字段名 having 分组后的条件
  • 在执行 group by 分组时,select 后只能有被分组的字段,不允许有其它字段,除非这些字段在聚合函数中
    这里写图片描述
  • 根据分组结果,使用group_concat()来获取分组中指定字段的集合
    这里写图片描述

多表查询数据

  • 普通多表数据查询
select * from1,表2;

这里写图片描述

这种查询方式没有任何意义。 在查询时,数据库会将表1中的数据逐条和表2中的所有数据连接,组成一条新记录。 查询的结果为 M * N 条,实际就是笛卡尔积结果。

  • 加条件
select * from1,表2 where 条件;

这里写图片描述

  • 内链接查询
  • 数据库默认的连接方式就是内连接查询 , inner join 可以不显示的写出来
  • 连接条件使用 on 进行指定 也可使用where
select * from1 inner join2 on 条件;

这里写图片描述

  • 左连接查询
  • 查询的结果为根据左表中的数据进行连接,如果右表中没有满足条件的记录,则连接空值
select * from1 left join2 on 条件;

这里写图片描述

  • 右连接
  • 查询的结果为根据右表中的数据进行连接,如果左表中没有满足条件的记录,则连接空值
select * from1 right join2 on 条件;

这里写图片描述

  • 子查询
  • 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
select * from 表名 where 条件 运算符 (select 查询);
  • 外部那个select语句则称为主查询
  • 主查询和子查询的关系

    • 子查询是嵌入到主查询中
    • 子查询是辅助主查询的,要么充当条件,要么充当数据源
    • 子查询是可以独立存在的语句,是一条完整的 select 语句
  • 标量子查询

  • 子查询返回的结果是一个数据(一行一列)
主查询 where 条件 比较运算符 (列子查询)

这里写图片描述

  • 列级子查询
  • 子查询返回的结果是一列(一列多行)
主查询 where 条件 in (列子查询)

这里写图片描述

  • 行级子查询
  • 子查询返回的结果是一行(一行多列)
主查询 where (字段1,2,...) = (行子查询)

这里写图片描述


数据库导入导出

  • 导出数据库(终端模式下)
mysqldump -uroot -p 要导出的数据库名 > 目标文件.sql

这里写图片描述

  • 导出库当中的指定表
mysqldump -uroot -p 要导出的数据库名 要导出的数据表 > 目标地址 目标文件.sql

这里写图片描述

  • 导入数据库
  • 导入数据库前需要先创建一个空数据库

    • 终端模式下
    mysql -uroot -p 数据库名 < 文件地址 要导入的文件.sql

    这里写图片描述

    • mysql模式下
source 文件地址 要导入的文件.sql

这里写图片描述


以上内容仅供参考 -_- …为作者边学习,边摘抄和总计的内容

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
不能在非实例化类中创建对象。能够在可实例化类中创建对象。所有类均有属性,可实例化类还可以包含声明(定义有效类实例的规则)。 Geometry是一种基本类。它是一种抽象类。Geometry的可实例化子类限制为可在2维坐标空间中存在的0、1、2维几何对象。所有的可实例化几何类是这样定义的,从而使得几何类的实例从拓扑意义上讲是闭合的(也就是说,所有定义的几何类包含其边界)。 基本Geometry类具有关于Point、Curve、Surface和GeometryCollection的子类: · Point表示0维对象。 · Curve表示1维对象,具有子类LineString,以及次级子类Line和LinearRing。 · Surface是为2维对象设计的,具有子类Polygon。 · GeometryCollection具有特殊的0维、1维和2维类集合,名为MultiPoint、MultiLineString和MultiPolygon,分别用于为对的Points、LineStrings和Polygons集合进行几何建模。MultiCurve和MultiSurface是作为抽象超类引入的,它们归纳了用于处理Curves和Surfaces的集合接口。 Geometry、Curve、Surface、MultiCurve和MultiSurface定义为非实例化类。它们为其子类定义了公用方法集合,而且是为扩展而包含在内的。 Point、LineString、Polygon、GeometryCollection、MultiPoint、MultiLineString和MultiPolygon定义为可实例化类。 19.2.2. 类Geometry Geometry是层次结构的根类。它是一种非实例化类,但具有很多属性,这些属性对由任何Geometry子类创建的所有几何值来说是共同的。下面介绍了这些属性(尤其是具有自己特殊属性的子类)。 Geometry属性 Geometry值具有下述属性: · 其type(类型)。每个geometry属于层次结构中可实例化类之一。 · 其SRID,或空间参考ID。该值确定了用于描述定义几何对象的坐标空间的空间坐标系统。 在MySQL中,SRID值仅是与geometry值相关的整数值。所有计算均是在欧几里得几何系(平面)中进行的。 · 它在其空间坐标系统中的coordinates(坐标),表示为双精度数值(8字节)。所有的非空几何对象至少包含一对坐标(X、Y)。空几何对象不含坐标。 坐标与SRID相关。例如,在不同的坐标系内,两个对象之间的距离会有所不同,即使这两个对象具有相同的坐标也同样。这是因为,平面坐标系中的距离和地心坐标系(地球表面上的坐标)中的距离是不同的事项。 · 其interior(内部)、boundary(边界)和exterior(外部)。 每个几何对象均占据空间中的某一位置。几何对象的exterior(外部)指的是未被该对象占据的所有空间。其interior(内部)指的是被该对象占据的空间。其boundary(边界)指的是几何对象内部和外部之间的界面。 · 其MBR(最小边界矩形)或包络面。这是一种边界几何值,由最小和最大坐标(X,Y)构成。 · ((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY)) · 无论值是简单的或非简单的。类型(LineString、MultiPoint、MultiLineString)的几何值或是简单的,或是非简单的。每个类型决定了其自己的简单或非简单声明。 · 无论值是封闭的或非封闭的。类型(LineString、MultiPoint)的几何值或是封闭的,或是非封闭的。每个类型决定了其自己的封闭或非封闭声明。 · 无论值是空的或非空的。如果没有任何点,几何对象是空的。空几何对象的内部、外部和边界未定义(也就是说,它们由Null值表示)。空的几何对象定义为总是简单的,面积为0。 · 其dimension(维数)。几何对象的维数为−1、0、1或2: o −1用于空几何对象。 o 0用于无长度、无面积的几何对象。 o 1用于具有非0长度和0面积的几何对象。 o 2用于具有非0面积的几何对象。 Point对象的维数为0。LineString对象的维数为1。Polygon对象的维数为2。MultiPoint、MultiLineString和MultiPolygon对象的维数与构成它们的元素的维数相同。 19.2.3. 类Point Point(点)指的是代表坐标空间中单个位置的几何类。 Point示例 · 想像一张具有众多城市的大世界地图。每个Point对象可代表1个城市。 · 在城市地图上,Point对象可代表1个公共汽车站。 Point属性 · X-坐标值。 · Y-坐标值。 · Point定义为0维几何对象。 · Point的边界为空集合。 19.2.4. 类Curve Curve(曲线)是一种1维几何对象,通常由一系列点表示。Curve的特殊子类定义了点之间的内插类型。Curve是一种非实例化类。 Curve属性 · Curve具有其点的坐标。 · Curve定义为1维几何对象。 · 如果未通过相同的点两次,Curve就是简单的。 · 如果其起点等于其终点,Curve就是封闭的。 · 封闭Curve的边界为空。 · 非封闭Curve的边界由其两个端点构成。 · 简单且封闭的Curve是LinearRing。 19.2.5. 类LineString LineString是具有点之间线性内插特性的Curve。 LineString示例 · 在世界地图上,LineString对象可表示河流。 · 在城市地图上,LineString对象可表示街道。 LineString属性 · LineString具有线段的坐标,由每个连续的点对(两点)定义。 · 如果仅包含两点,LineString为Line。 · 如果它既是简单的也是封闭的,LineString为LinearRing。 19.2.6. 类Surface Surface是一种2维几何对象。它是一种非实例化类。其唯一的可实例化子类是Polygon. Surface属性 · Surface定义为2维几何对象。 · 在OpenGIS规范中,将简单的Surface定义为由单一“patch”构成的几何对象,它与单个外部边界以及0或多个内部边界有关。 · 简单Surface的边界是一组与其内部和外部边界对的封闭曲线的集合。 19.2.7. 类Polygon Polygon是代表多边几何对象的平面Surface。它由单个外部边界以及0或多个内部边界定义,其中,每个内部边界定义为Polygon中的1个孔。 Polygon示例 · 在地区地图上,Polygon对象可表示森林、区等。 Polygon声明 · Polygon的边界由一组构成其外部边界和比内部边界的LinearRing归向集合构成(即,简单且封闭的LineString对象)。 · Polygon没有交叉的环。Polygon边界中的环可能会在Point处相交,但仅以切线方式相交。 · Polygon没有线、尖峰或穿孔。 · Polygon有由连接点集合构成的内部。 · Polygon可能包含孔。对于具有孔的Polygon,其外部不连接。每个孔定义了连接的外部部件。 前述声明使得Polygon成为简单的几何对象。 19.2.8. 类GeometryCollection GeometryCollection是由1个或多个任意类几何对象构成的几何对象。 GeometryCollection中的所有元素必须具有相同的空间参考系(即相同的坐标系)。对GeometryCollection的元素无任何限制,但下面介绍的GeometryCollection的子类会限制其成员。这类限制可能基于: · 元素类型(例如,MultiPoint可能仅包含Point元素)。 · 维数。 · 对元素间空间交迭程度的限制。 19.2.9. 类MultiPoint MultiPoint是一种由Point元素构成的几何对象集合。这些点未以任何方式连接或排序。 MultiPoint示例 · 在世界地图上,MultiPoint可以代表岛链。 · 在城市地图上,MultiPoint可以表示售票处的出口。 MultiPoint属性 · MultiPoint是0维几何对象。 · 如果没有两个Point是相同的(具有等同的坐标值),MultiPoint是简单的。 · MultiPoint的边界为空集合。 19.2.10. 类MultiCurve MultiCurve是一种由Curve元素构成的几何对象集合。MultiCurve是一种非实例化类。 MultiCurve属性 · MultiCurve是1维几何对象。 · 当且仅当其所有元素均是简单的时,MultiCurve才是简单的。任意两元素的唯一交叉仅出现在两元素边界的点上。 · MultiCurve边界是通过采用“模2联合规则”(也称为奇偶规则)获得的:如果某一点位于奇数编号MultiCurve元素的边界内,它将位于MultiCurve的边界内。 · 如果其所有元素均是封闭的,则MultiCurve为封闭的。 · 封闭MultiCurve的边界总为空。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值