Mysql学习汇总

MySQL数据库

一、MySQL数据库的介绍

发展史

1996年,MySQL 1.0

2008年1月16号 Sun公司收购MySQL。

2009年4月20,Oracle收购Sun公司。

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。

MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB 应用方面,MySQL是最好的 RDBMS (RelationalDatabase Management System,关系数据库管理系统)应用软件MySQL所使用的SQL 语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库

社区版本和企业版本的区别

主要的区别有以下两点。

1.企业版只包含稳定之后的功能,社区版包含所有Mysql的最新功能。

也就是说,社区版是企业版的测试版,但是,前者的功能要比后者多。

2.官方的支持服务只针对企业版,用户在使用社区版时出现任何问题,Mysql官方概不负责。

 

MySQL如何下载

进入MySQL官网(https://www.mysql.com) 查看底部下载-https://dev.mysql.com/downloads/mysql/

 

二、数据库的分类

关系型与非关系型数据库

关系型数据库的优势:

  1. 复杂查询

    可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询

  2. 事物支持

    使得对于安全性能很高的数据访问要求得以实现

非关系型数据库的优势:

  1. 性能

    NOSQL是基于键值对的 可以想象成表中的主键和值的对应关系 不需要经过SQL层的解析 所以性能很高

  2. 可扩展性

    同样也是也因为基于键值对 数据之间没有偶尔性 所以非常容易水平扩展

 

三、主要操作

数据库表的操作 包含创建 、修改、删除、查看

数据的操作:包含增加 修改 删除 查询 简称crud

crud:

是指在做计算处理时的增加(Create)读取查询(Retrieve) 更新(Update)和删除(Delete) 单词首字母简写

对于库和表操作的单词为:

创建 CREATE

删除 DROP

查看 SHOW

修改 ALTER

对数据的操作:

增:insert into

删:delete

改:update

查:select

四、进入到MySQL数据库

(1) 简单模式

C:\Users\xlg>mysql -uroot -p Enter password: ******

(2) 标准模式

C:\Users\xlg>mysql -h127.0.0.1 -uroot -p

mysql -hlocalhost -uroot -p

mysql -h10.0.110.238 -uroot -p

Enter password: ******

 

参数所代表的含义:

h:host 主机(localhost IPV4 127.0.0.1)

注意:

root用户默认是不允许远程访问登录的 也就是IPV4的访问不了的

u:root 用户

p:password 密码

授权root用户可以通过外网IP进行访问

命令:

grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option

 

五、对于MySQL数据库的操作

对于库和表操作的单词为:

创建 CREATE

删除 DROP

查看 SHOW

修改 ALTER

对数据的操作:

增:insert into

删:delete

改:update

查:select

(1) 查看所有的数据库

show databases;

(2) 选择数据库

use 库名

(3) 查看当前库下有哪些表

show tables;

(4) 查看当前所在库

select database();

(5)创建数据库

create database 库名;

(6) 查看创建库信息

show create database 库名;

(7) 修改数据库字符编码

alter database 库名character set utf8;

(8)修改表的编码

alter table user character set utf8;

(9) 修改表中字段的字符编码

alter table 表名modify 字段名 字段类型约束条件 character set utf8;

(10) 删除库/表 drop database 库名;

drop table 表名;

(11) 创建库并设置字符编码

create database lucky character set utf8;

(12) 创建库判断当前创建的库是否存在(防止创建库时报错)

create database if not exists lucky;

(13) 创建表判断当前创建的表是否存在(防止创建库时报错)

create table if not exists lucky(id int unsigned);

(14) 查看表结构

desc 表名;

(15) 查看创建表语句

show create table lucky;

(16) 以竖状查看 \G

show create table lucky\G

(17) 删除不存在的表防止报错

drop table if exists lucky;

(18) 删除不存在的库防止报错

drop databaseif exists lucky;

(19) 撤销当前命令

\c

(20) 数据库的退出

  1. \q

  2. exit

  3. quit

注意:

  1. MySQL命令以英文的分号作为结束

  2. SQL命令不区分大小写

  3. 在进入到一个数据库中在进入到另外一个的时候 不需要退出数据库 而是使用use再次进行数据库的切换

  4. 如果创建的MySQL库编码错误的 则表和字段都为库的编码 当将库编码改为utf8 则表和字段依然没有改变 那么需要继续修改表和字段 所以在创建的时候注意库的编码

  5. 更改默认创建库字符编码

    C:\ProgramData\MySQL\MySQL Server 5.7

    64行 :default-character-set=utf8

  6. 更改不严谨报错

    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

  7. windows下表名库名不区分大小写 Linux下严格区分

  8. MySQL数据库的名称具有唯一性 每个库中的表的名称也具有唯一性(库名或者一个库中的表名不要出现相同的名称)

  9. 当在输入命令的时候输入完以后 添加分号不能执行命令 那么查看一下左侧是否存在引号没有闭合的情况

 

六、MySQL表的创建

字段类型

(1) 数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
tinyint 1字节 (-128,127) (0,255) 小整数值
smallint 2字节 (-32768,32767) (0,65535) 大整数值
int 4字节 (-2147483648, 2147483647) (0,4294967295) 大整数值
float 4字节     单精度浮点型
double 8字节     双精度浮点型
decimal decimal(m,d)如果m>d为m+2否则为d+2 依赖于m和d的值 依赖于m和d的值 小数值(更加精准)

创建表语句

mysql> create table testnum(
    -> ttinyint tinyint,
    -> tsmallint smallint,
    -> tint int,
    -> tfloat float(6,2),
    -> tdouble double(6,2),
    -> tdecimal decimal(6,2)
    -> );

创建表的主体结构:

create table if not exists 表名(

字段名称 字段类型 约束条件 字段说明,

字段名称 字段类型 约束条件 字段说明,

...

主键索引,

唯一索引,

常规索引

)

表插入数据语句

指定字段名称插入值

insert into 表名(字段1,字段2...) values(值1,值2...)

不指定字段插入之

insert into 表名 values(值1,值2...)

注意:

  1. decimal 小数类型 不仅能够保证数据计算更为精确 还可以节省空间

  2. float/double/decimal 在存储的时候 小数点超出了 会四舍五入

  3. 数值类型 如int /tinnyint/smallint 等 在给后面括号值的时候 没有任何的意义的 也就是说不能够去限制当前存储值的长度 除非配合约束条件zerofill 零填充的时候 才有意义

 

(2) 日期和时间类型

类型 大小(字节) 范围 格式 用途
date 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
time 3 -838:59:59/838:59:59 HH:MM:SS 时间值或持续时间
year 1 1901-2155 YYYY 年分值
datetime 8 1000-01-
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值