MySQL基础

MySQL基础

前言

web:

前端(页面:展示数据)

后台(连接点:链接数据库JDBC,链接前端,链接后端(控制视图的跳转,给前端传数据))

数据库(存储数据)


**数据库:**数据仓库,软件安装在操作系统之上

作用:存储数据,管理数据。

数据库可以跨平台。 SQL重要

500万条以下都可以存放。

MySQL:常用于中小型和大型的网站,用于大型网站时可以使用集群

一个数据库可以存放多各网站的信息。


数据库的分类:

  • 关系型数据库(SQL)
    • MySQL,Oracle,Sql Server,DB2,SQLite
    • 通过表和表之间,行和列之间的关系进行数据的存储
  • 非关系型数据库(NoSQL)
    • Redis,MongDB
    • 给关系型数据库,对象存储,通过对象的自身属性来决定。

**DBMS:**数据库管理系统

  • 数据库的管理程序,对数据进行维护和读取。

DB DBMS

MySQL中的常用方法

MySQL中的关键字不区分大小写。

1、创建数据库

CREATE DATABASE [IF NOT EXISTS] hhhh;

2、删除数据库

DROP DATABASE [IF EXISTS] hhhh;

3、使用数据库

USE `hhhh`

4、查看数据库

SHOW DATABASES -- 查看所有的数据库

5、查看表的结构

DESC `表名`;  -- 查看表的结构

6、数据表的定义语句

SHOW CREATE TABLE `hhhh`; -- 查看hhhh数据表的定义语句

7、查看创建数据库语句

SHOW CREATE DATABASE school;	-- 查看创建数据库语句

8、修改表名

ALTER TABLE `旧名` RENAME AS `新名`;

9、在表中增加新的字段

ALTER TABLE `表名` ADD `字段名` 属性;

10、修改表的字段

-- MODIFY
ALTER TABLE `表名` MODIFY `字段名` 属性;	
ALTER TABLE hhhh1 MODIFY age INT(4);
-- MODIFY 直接对字段的属性进行修改,修改约束

-- CHANGE
ALTER TABLE hhhh1 CHANGE age age1 VARCHAR(20);
ALTER TABLE `表名` CHANGE `旧字段` `新字段名` 属性;
-- CHANGE 修改字段的名字同时也可以修改字段的属性

11、删除表的字段

ALTER TABLE `表名` DROP `字段`;
ALTER TABLE hhhh1 DROP age1;

数据库基本知识

数据库的物理存储位置

所有数据库文件都存在 data 目录下,一个文件夹就对应一个数据库

本质还是文件的存储!

MySQL引擎在物理文件上的区别

  • INNODB 在数据库中只有一个 *.frm 文件,以及上级目录下的 ibdata1 文件
  • MYISAM
    • *.frm 表结构的定义文件
    • *.MYD 数据结构(data)
    • *.MYI 索引文件(index)

数据库中的列类型

数值

  • tinyint 十分小的数据 1个字节
  • smallint 较小的数据 2个字节
  • mediumint 中等大小的数据 3个字节
  • int 标准的整数 4个字节
  • bigint 较大的数据 8个字节
  • float 浮点数 4个字节
  • double 浮点数 8个字节 (精度问题!)
  • decimal 字符串形式的浮点数 金融计算式一般采用这种

**注意:**整型在创建时限制长度在设置时实际上设置的是自动补零的长度。

decimal 在使用时可以采用 decimal(9,5)的方法来限制数据的长度以及小数位数,超过了小数的限制位数或者不满足会自动补 0 或者 截断。如果小数位不满足要求,但是补 0 后位数超出限制,在严格模式下会报错,非严格模式下会将数据按照满足要求的最大数存储。

字符

  • char 字符串固定大小的 0 ~ 255
  • verchar 可变字符串 0 ~ 65535
  • tinytext 微型文本 2^8 - 1
  • text 文本串 2^16 - 1 保存大文本

时间

Java.util.Data

  • date YYYY-MM_DD 日期格式
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳(全球统一1970.1.1到现在的毫秒数,同样常用
  • year 年份表示

null

  • 没有值,未知
  • 注意不要使用NULL进行计算,结果为null

数据库的字段属性

Unsigned

  • 无符号整数
  • 申明该列不能是负数

zerofill

  • 不足的位数使用0填充

自增

  • 自动在上一条数据的基础上 +1(默认)
  • 通常用来设计唯一的主键 ~ 必须是整数类型
  • 可以自定义设计主键自增的起始值 和 增量的大小

非空:not null

  • 设置为非空的如果不填写值会报错
  • 未设置非空的数据未填写数据时默认null

默认:

  • 设置默认值

**拓展 **

 每一个表都必须储存以下五个字段!未来做项目用,每一个记录都存在意义!
 
 id   主键
 'version' 		乐观锁
 is_delete		伪删除
 gmt_create 	创建时间
 gmt_update 	修改时间
 

数据库的创建

目标︰创建一个schoo1数据库
创建学生表(,字段)使用SDQL创建
学号int登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址, email
注意点,使用英文,表的名称和字段尽量使用``括起来
AUTO_INCREMENT自增
字符串使用单引号括起来!
所有的语句后面加 ,(英文的),最后一个不用加
PRIMARY KEY主键,一般一个表只有一个唯一的主键!


CREATE TABLE `hhhh` (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` varchar(3) NOT NULL DEFAULT '女' COMMENT '性别',
  `birthday` datetime DEFAULT NULL COMMENT '出生日期',
  `address` varchar(50) DEFAULT NULL COMMENT '家庭住址',
  `email` varchar(20) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8





创建数据库的标准格式
CREATE TABLE [IF NOT EXISTS] `表名`(
		 `字段名` 列类型 [属性] [索引] [注释],
     `字段名` 列类型 [属性] [索引] [注释],
     `字段名` 列类型 [属性] [索引] [注释],
     ......
  	 `字段名` 列类型 [属性] [索引] [注释],
		 PRIMARY KEY(`字段名`)   (主键的设定) 
) [表类型][字符集设置][注释]

常用命令:

DESC `表名`;											   查看表的结构
SHOW CREATE TABLE `hhhh`;   			  查看hhhh数据表的定义语句
SHOW CREATE DATABASE school;				查看创建数据库语句

数据库表的类型

  • INNODB 默认使用

  • MYISAM 早些年使用

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为2倍
  • MYISAM 节约空间,速度快
  • INNODB 安全性搞,事务的处理,多表多用户操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值