首页 > 数据库技术 > 详细

mysql数据库

时间:2021-07-25 09:37:06      阅读:37      评论:0      收藏:0      [点我收藏+]

数据库的安装

一 、下载mysql数据库

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

技术分享图片

下载完成后就是安装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字节,时间戳

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

技术分享图片

数据库与表的创建

去网上下载一个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数据库

原文:https://www.cnblogs.com/buqii/p/15056604.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!