MySQL初初初入门笔记 2020.6.25

寥寥几笔:
现在是累计什锦式学习MySQL部分的第2天
现在把最前头的记录都一起传上来,
虽然现在写的这一块还是太简单了,
但毕竟配置环境什么的还是花时间, 于是写一篇记录一下粗略的学习过程
现在越学越感觉对于相关知识的学习是由"简单, 繁杂" 到 "深入, 简约"的一个过程. 所以还是有点耐心吧哈哈


入门

数据库DB

数据库管理系统DBMS


关系型数据库(SQL)

  • mySQL, Oracle, SQLlite
  • 以表和表之间,行和列之间的关系进行储存

非关系型数据库(No SQL/ No only SQL)

  • Redis, MongDB
  • 以对象自身的属性来进行储存

DBMS

  • 数据库的管理软件
  • mySQL是数据库管理系统

mySQL->关系型数据库管理系统

使用SQL语句, 开源, 速度快

版本:5.7稳定

建议不要安装exe(卸载未更改注册表)

安装

  1. 解压
  2. 添加环境变量, 在系统变量里新建mySQL的bin目录
  3. 在mySQL目录下新建my.ini文件, 增改信息
  4. 在管理员模式下打开命令提示符, 按照说明操作’’

安装完成

账户:root

密码:123456

启动: net start mysql

登录:mysql -u root -p

退出:exit

关闭:net stop mysql

安装SQLyog

创建一张表

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

连接数据库

在cmd中

mysql -u root -p 连接数据库

在mysql命令行中

update user set password=password(‘123456’)where user=‘root’; 修改密码

flush privileges; 刷新权限, 在一些操作或使用

show databases; 查询所有数据库

use xxx; 使用表xxx, 切换数据库

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

describe user; 查看表user数据库所有信息

create database xxx; 创建一个数据库xxx

exit; 退出连接

– 单行注释

/* */多行

  • DDL 定义语言
  • DCL 控制语言
  • DML 操作语言
  • DQL 查询语言

DQL

DDL

DML

操作数据库

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

mySQL中命令不区分大小写

操作
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] test;

中括号为可选

2.删除数据库
DROP DATABASE IF EXISTS test;

如果表名或字段名是特殊字符, 则使用`标出

3.使用数据库
USE `school`;

如果表名或字段名是特殊字符, 则使用`标出

4.查看数据库
SHOW DATABASES;

数据库的列类型

数值

  • tinyint 占1个字节
  • smallint 占2个字节
  • mediumint 占3个字节
  • int 占4个字节
  • bigint 占8个字节
  • float 占4个字节
  • double 占8个字节
  • decimal 字符串形式的浮点数 金融计算时使用

字符串

  • char 字符串 范围0~255

  • varchar 可变字符串 0~65535 对应Java中的String

  • tinytext 微型文本 2 8 − 1 2^8 -1 281

  • text 字符串文本 $2^{16} -1 $保存大文本

时间

  • date YYYY-MM-DD 日期格式
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳

null

  • 没有值, 未知
  • 注意不要用NULL计算

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

unsigned:

  • 无符号整数

zerofill:

  • 0填充
  • 把不足的位数用0填充

自增:

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

非空:

  • 如果设置为not null, 如果不赋值, 则报错
  • 如果设置为NULL , 如果不赋值, 则默认为NULL

创建数据库表(重点)

CREATE TABLE [IF NOT EXIST] `表名`(
  `字段名` 列类型 [属性] [索引] [注释],
  `字段名` 列类型 [属性] [索引] [注释], 
  ...
  `字段名` 列类型 [属性] [索引] [注释]
  PRIMARY KEY('id')
)[表类型] [字符集设置] [注释]
相关命令
SHOW CREATE DATABASE 数据库名

查看创建数据库的语句

SHOW CREATE TABLE 表名

查看表的定义语句

DESC 表名

显示表的结构

数据表的类型

INNODB: 默认使用

MYIAM: 早些年使用的

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约2倍

常规使用操作:

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

在物理空间的位置

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

本质还是文件的存储

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

  • InnoDB 在数据库表中只有一个 *.frm文件, 以及上级目录下的idbata1文件
  • MYISAM对应文件
    • *.frm 表结构的对应文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件

设置数据库表的字符集编码

CHAREST=utf8

不设置的话, 将会是不支持中文的默认编码(Latin1)

在my.ini中配置默认编码

修改与删除表

修改表名

ALTER TABLE 旧名 RENAME AS 新名

增加表的字段

ALTER TABLE 表名 ADD 要添加的字段 列属性

修改字段类型和约束

ALTER TABLE 表名 MODIFY 字段名 列属性

修改字段名

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性

删除表的字段

AKTER TABLE 表名 DROP 字段名 

删除表

DROP TABLE IF EXISTS 表名

MySQL数据管理

外键(了解)

创建表后, 添加外键约束

ALTER TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFERENCE 表名(字段名)

以上操作的外键都是物理外键, 数据库级版的外键, 不建议使用, 避免数据库过多造成困扰

建议

  • 数据库就是单纯的表, 只用来存数据, 只有行和列
  • 想使用多张表的数据, 使用程序实现的外键
DML语言(背)

数据库的意义:数据存储, 数据管理

DML语言: 数据操作语言

  • Insert
  • Update
  • Delete
添加 Insert

插入语句

INSERT INTO 表名 ([字段名1, 字段名2, ...])VALUES('值1'), ('值2'), ...
  • 一般写插入语句, 一定要数据和字段一一对应

  • 字段可以省略, 但后面的值需要一一对应

  • 可以同时插入多条数据, 在VALUES后用括号隔开

修改 Update
UPDATE 表名 SET 字段名 = 值 WHERE 条件

可以修改多个属性如,

UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2 WHERE 条件
条件

where 子句 运算符

操作符含义
=等于
<>或!=不等于
<
>
<=
>=
BETWEEN a AND b[a, b]
AND&&
OR||
删除 Delete
删除一些数据
DELETE FROM 表名 WHERE 条件 
清空数据库
TRUNCATE 表名

相同点: 都删除数据, 且不会删除表结构

不同:

  • TRUNCATE 会重新设置 自增列
  • TRUNCATE 不会影响事务

DELETE删除问题–重启数据库后

  • InnoDB 自增列会从1开始(存在内存当中, 断电就丢失)
  • MyISAM 继续从上一个自增量开始(存在文件中, 不会丢失)

DQL查询数据(最重要)

DQL

Data Query Language–数据查询语言

SELECT 语句
SELECT 字段名 FROM 表名

字段名可以使用通配符 *, 也支持多个字段同时查

可以给结果起别名, 方便阅读

SELECT `StudentNo` AS 学生学号 FROM 表名

使用==concat()==函数, 返回结果为连接参数产生的字符串

select concat ('分数是', score) as 成绩表 from student;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值