mysql数据库

数据库的安装

一 、下载mysql数据库

进入MySQL官方网站,https://dev.mysql.com/downloads/,下载想要的版本

mysql数据库

下载完成后就是安装mysql了

二 、安装mysql

双击软件开始安装mysql数据库

然后一直点击下一步就完事了,直到设置好用户名与密码就ok了。

数据库常用字段

一 、数值类型

数值类型大类又可以分为整型浮点型定点型三小类。

1.整型主要用于存储整数值,主要有:

tinyint,1字节,小整数值

smallint,2字节,大整数值

mediumint,3字节,大整数值

int或者intger,4字节,大整数值(常用)

bigint,8字节,极大整数值

整形是经常被用到类型,最常用的int,bigint默认是有符号的,若需要存储无符号值,可以使用unsigned属性。

存储字节越小,占用空间越小,所以我们要尽量使用合适的整型,bigint类型预估字段数字取值超过42亿可以使用(所以不知道为什么java课的数据库全是bigint类型)。

2.浮点型主要用于存储近似值,浮点型主要有两个类型:

float,4字节,单精度浮点数值

double,8字节,双精度浮点数值

又有人要问了,这个单精度浮点数值和双精度浮点数值代表什么?有什么区别?

简单来说,由于它们的长度不同从而导致的精确度不同。单精度浮点数值占据32位二进制,而双精度浮点数值占据64位二进制。

3.定点型主要用于存储有精度要求的小数,主要类型有:

decimal,对DECIMAL(M,D) ,如果M>D,为M+2字节 否则为D+2,精确小数值

对于声明语法 DECIMAL(M,D) ,自变量的值范围如下:

  • M是最大位数(精度),范围是1到65。可不指定,默认值是10。

  • D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。

例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。

二 、字符串类型

字符串常用的类型:

char,0-255字节,定长字符串

varchar,0-65535字节,变长字符串

tinytext,0-255字节,短文本字符串

text,0-65535字节,长文本数据

longtext,0-4294967295字节,极大文本数据

tinyblob,0-255字节,二进制字符串

blob,0-65535字节,二进制形式的长文本数据

longblob,0-4294967295字节,二进制形式的极大文本数据

其中 char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。当保存 char 值时,在它们的右边填充空格以达到指定的长度,当检索到 char 值时,尾部的空格被删除掉。varchar 类型用于存储可变长字符串,存储时,如果字符没有达到定义的位数,也不会在后面补空格。

blob 类型主要用于存储二进制大对象,例如可以存储图片,音视频等文件。日常很少用到,有存储二进制字符串时可以考虑使用。

三 、日期时间类型

MySQL支持的日期和时间类型如下:

year,1字节,年份值

time,3字节,时间值或者持续时间

date,3字节,日期值

datetime,8字节,混合日期和时间值

timestamp,4字节,时间戳

根据存储需求选择合适类型就可以了

mysql数据库

数据库与表的创建

去网上下载一个Navicat,推荐12版本,因为我就用这版本。

首先需要创建一个数据库,我们才可以进行表的创建

连接mysql,右键创建数据库,起个名字,再点击该数据库创建表即可。

增删查改的sql格式

1.创建表

create table 表名(

中间为想要创建的元素与他的数据类型还有范围

2.添加新数据

insert into 表名 values (想要给的值)

insert into 表名 列名 values (想要给的列值)

insert into student values(‘基尼太美‘,20,‘男‘,‘中国查无此人‘)

3.查询数据

select name 姓名,age 年龄,sex 性别 from student

select * from student(这是查询该表所有数据的语句)

select * from student where name=“xxxx”(这是查询该表xxxx的数据)

4.修改:

update <表名> set <列名=更新值> [where <更新条件>]

5.删除

delete from <表名> [where <删除条件>]

truncate table <表名>(这是删除整个表)

IN、BETWEEN、LIKE用法

select * from student where id in(11,13)(查id在11到13之间)

between跟上面那个in用法相似,也是查某某之间

like是模糊查询,搭配%与_使用

select * from student where name like “张%”(就会查出student所有姓张的人)

select * from student where name like “张_”(只会查出student单个姓张的人)

关联查询

嵌套查询

一、from子句嵌套
select ...from (子查询) as 别名
二、where 子句嵌套(in,exists判断的应用)
select ...from ...where ... = (子查询) -- 单值比较(=,>,<,!=等)
select ...from ...where ... in (子查询) -- 集合比较
select ...from ...where ... exists (子查询) -- 是否有存在查询记录
三、select 子句嵌套
select ...,(子查询),...from ...

总结:

子查询可看作是“表”、“多值集合”(单列)、“单值”(单列单行)
执行顺序是先内后外
嵌套在where、select的子查询是多次执行的
内外层数据列引用时遇到重名列应使用完全限定列名
嵌套查询获得的结果一般都能通过连接查询实现

连接查询

INNER JOIN 用法

内连接

满足条件的记录才会出现在结果集中

select ...form 表1 inner join 表2 on 表1.列x=表2.列y....(连接查询表1表2当表1的列表x=表2的列表y)

select...form 表1,表2 where 表1.列x=表2.列y(效果同上)

外连接

LEFT JOIN 用法

表a全部出现在结果集中,若表b无对应记录,则相应字段为null(左外连接)

select t1.*,t2.* from tb_name t1 left join tb_class t2 on t1.学号=t2.学号;

RIGHT JOIN 用法

表b全部出现在结果集中,若表a无对应记录,则相应字段为null(右外连接)

select t1.*,t2.* from tb_name t1 right join tb_class t2 on t1.学号=t2.学号;

FULL JOIN 用法

SQL FULL JOIN结合的左,右外连接的结果。

连接表将包含的所有记录来自两个表,并使用NULL值作为两侧缺失匹配结果

目前mysql不支持全连接,不过full join是一切分布式数据库都有的概念,不是mysql的概念。

数据库常用函数

一 、统计函数

avg()求平均值

count()统计数目

max()求最大值

min()求最小值

sum()求和

以上几个为最常用的统计函数,

二 、算术函数

sin()返回以弧度表示的角的正弦

cos()返回以弧度表示的角的余弦

tan()返回以弧度表示的角的正切

cot()返回以弧度表示的角的余切

以上为举例,其实还有很多

三 、字符串函数

LOWER() --函数把字符串全部转换为小写
UPPER() --函数把字符串全部转换为大写
STR() --函数把数值型数据转换为字符型数据
LTRIM() --函数把字符串头部的空格去掉
RTRIM() --函数把字符串尾部的空格去掉

四 、数据类型转换函数

CAST() 函数语法如下
CAST (expression AS data_type(length))
CONVERT() 函数语法如下
CONVERT(data_type(length),data_to_be_converted,style)

五 、日期函数

DAY() --函数返回date_expression 中的日期值
MONTH() --函数返回date_expression 中的月份值
YEAR() --函数返回date_expression 中的年份值

六 、系统函数

APP_NAME() --函数返回当前执行的应用程序的名称

我就会这个,其他的看不懂。

mysql数据库

上一篇:三、mongodb副本集搭建


下一篇:CentOS7用yum安装MySQL8