MySQL 1.初识MySQL;2.操作数据库

1.初始MySQL

JavaEE: 企业级Java开发 Web

前端(页面:展示,数据!)

后台(连接点:连接数据库JDBC,连接前端(控制,控制视图调整,以及给前端传数据)

数据库(存数据,Txt,Excel,Word)

只会写代码,学好数据库----基本混饭吃;

操作系统,数据结构与算法----还不错的程序员

离散数学,数字电路,体系结构,编译原理,实战----优秀~

 1.1 为什么学数据库

1.岗位需求

2.大数据时代,数据变现

3.被迫需求:存数据  不用IOE(太贵

4.数据库是所有软件体系最核心的存在  DBA:数据库管理员

1.2 什么是数据库

数据库(DB,DataBase)

概念:数据仓库,软件,安装再操作系统(windows,linux,mac,。。。)之上,SQL,可以存储大量数据(500万)

作用:存数据,管理数据 同Excel

1.3 数据库分类

关系型数据库:行,列  Excel  (SQL)

  • M有SQL,Oracle,Sql Server,DB2,SQLlite
  • 通过表和表直接,行和列之间的关系进行数据的存储,  学院信息表,考勤表等

非关系型数据库:{key:value} (NoSQL--Not Only SQL)

  • Redis,MongDB
  • 非关系型数据库,对象存储,通过对象的自身的属性来决定

DBSM(数据库管理系统)

  • 数据库管理软件,科学有效地管理我们的数据。维护和获取数据
  • MySQL,本质是一个数据库管理系统

1.4 MySQL

MySQL是一个关系型数据库管理系统

前世:瑞典MySQL AB 公司开发

今生:Oracle 旗下产品

MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一

开源的数据库软件

体积小、速度快、总体拥有成本低,招人成本低

大中小型网站,因为它可以做集群

官网:https://www.mysql.com/

1.5 安装SQLyog

1.安装

2.注册

3.打开一个数据库

4.新建一个数据库 school

右键root@localhost

每一个sqlyog的执行操作,本质就是对应了一个sql,可以再软件的理是记录中查看

5.新建一张表student

1.字段:  id, name, age

6.查看表

右键打开表

添加完只后点刷新保存

1.7 连接数据库

命令行连接

mysql -uroot -p密码  --连接数据库

uodate mysql.user set authentication_string=password('123456') where user='root' and Host='localhost';    --更新密码 

flush privileges;  --刷新权限

----------------------------------
--所有语句都使用 ; 结尾

show database; --查看所有的数据库

mysql>use school  --切换数据库 use 命令
databases changed

-------
show tables; --查看数据中的所有的表

describe student; --desc也行,显示数据库中所有表的信息

mysql>create databases westos;--创建一个数据库

exit; --退出连接

--单行注释(SQL的本来注释)
/*
SQL的多行注释
*/

改密码实际是操作的这里 

CRUD 增删改查  CV程序猿  API程序猿  CRUD程序猿

DDL   数据库定义语言

DML  数据库操作语言

DQL  数据库查询语言

DCL  数据库控制语言

 2.操作数据库

操作数据库>操作数据库中的表>操作数据库中表的数据

mysql不区分大小写

2.1 操作数据库(了解)

1 创建数据库

CREATE DATABASE IF NOT EXISTS westos --因为已经有一个westos了,不加IF NOT EXISTS会报错

2 删除数据库

DROP DATABASE IF EXISTS westos

3 使用数据库

-- tab 键上面` 如果表名或者字段名是一个特殊字符就需要`
USE `school`


SELECT USER FROM student

SELECT `USER` FROM student

4.查看数据库

SHOW DATABASES -- 查看所有的数据库
  • 对照sqlyog可视化操作的历史记录查看sql
  • 语法和关键字必须强记

 2.2 数据库的数据(列)类型

数值

  • tinyint            十分小的数据     1个字节
  • smallint             较小的数据     2个字节
  • mediumint  中等大小的数据     3个字节
  • int                      标准的整数    4个字节
  • bigint                 较大的数据     8个字节
  • float                           浮点数    4个字节
  • double                       浮点数    8个字节
  • decimal       字符串形式的浮点数   金融计算时,一般使用这个

 字符串

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

 时间日期

java.util.Date

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

 null

  • 没有值,未知
  • 不要使用NULL进行运算,因为结果一定为NULL

2.3 数据库的字段属性(重点)

Unsigned:

  • 无符号的整数

  • 表明该列不能声明为负数 

zerofill:

  • 0填充的

  • 不足的位数,使用0填充     int(3)----->005

自增:

  •  自动在上一条记录的基础上+1
  • 通常用来设计唯一的主键 index,必须是整数类型
  • 可以自定义设计主键的起始值和步长

非空: NULL  not null

  • 假设设置为 not null,如果不赋值,就报错
  • NULL,如果不填值,默认就是null

默认:

  • 设置默认的值
  • sex,如果不指定该列的性别,则默认为某性别

每一个表,都应该存在下面几个字段。做项目用,表示一个记录存在的意义

id 主键

`version` 乐观锁

is_delete 伪删除

gmt_creat  创建时间

gmt_update 修改时间

 2.4 创建数据库表(重点)

-- 注意点,表的名称和字段尽量使用` `括起来
-- auto_increment 自增
-- comment 注释
-- 字符串使用单引号'括起来
-- 所有的语句后面加 ,,最后一个不要加
-- DEFAULT 默认
-- PRIMARY KEY 主键 一般一个表就一个
CREATE TABLE IF NOT EXISTS `student`(
`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(2) NOT NULL DEFAULT'女'COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
`address` VARCHAR(100)DEFAULT NULL COMMENT'家庭住址',
`email` VARCHAR(50)DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY (`id`)
)ENGINE INNODB DEFAULT CHARSET=utf8

格式

CREATE TABLE [IF NOT EXISTS ]`表名`(
`字段名` 列类型[属性][索引][注释],

)[表类型}[字符集设置][注释]
SHOW CREATE DATABASE school -- 查看创建数据库的语句
CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */

SHOW CREATE TABLE student -- 查看student数据表的定义语句
CREATE TABLE `student` (
  `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(2) NOT NULL DEFAULT '女' COMMENT '性别',
  `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
  `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
  `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

2.5 数据库表的类型

关于数据库引擎

  • INNODB 默认使用
  • MyISAM 早些年使用
     
MyISAMINNODB
事务支持不支持支持
数据行锁定 不支持 表锁支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约为前者2倍

 常规使用操作:

  • MyISAM 节约空间,速度较快
  • INNODE 安全性搞,事务的处理,多表多用户操作

 在物理空间存在的位置

所有文件都存在于data目录下

本质还是文件的存储

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

INNODB在数据库表中只要一个*.frm文件,以及上级目录下的ibdata1文件

MyISAM对应文件

  • *.frm        表结构的定义文件
  • *.MYD     数据文件(data)
  • *.MYI       索引文件(index)

设置数据库表的字符节编码,不设置的话,会是mysql默认的字符集编码,不支持中文

CHARSET=utf8

 可以在my.ini中配置默认的编码

character-set-server=utf8

2.6 修改和删除表

修改

-- 修改表
ALTER TABLE student RENAME AS student1
-- 增加表的字段
ALTER TABLE student1 ADD age INT(11)
-- 修改表的字段 重命名 修改约束
ALTER TABLE student1 MODIFY age VARCHAR(11)  -- 修改约束
ALTER TABLE student1 CHANGE age age1 INT(1)  -- 字段重命名

删除

-- 删除表的字段
ALTER TABLE student1 DROP age1
-- 删除表
DROP TABLE IF EXISTS student1

所有的创建和删除操作都尽量加上判断,以免报错

注意点:

  • 字段名使用   ``  包裹
  • 注释    --  /*  */
  • sql关键字大小写不敏感,建议小写,大写的单词有点不认识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值