MySQL(数据库入门)


1. 数据库概述

数据库可分为

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

MySQL的优势及特点

  • 在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
  • MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  • MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言
  • MySQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
    摘自

2. 新建数据库和表

在这里插入图片描述

3. 添加数据

在这里插入图片描述

4. 操作数据库

--一些基本命令
mysql -u -root -p			--在命令行中连接数据库
--sql语句使用;结尾
show databases--查询所有数据库
use school;				--切换数据库 use+数据库明
show tables;				--查看所有表
describe student			--查看表中信息
create database sqlname;	--创建数据库
exit;						--断开链接
/*
多行注释
*/

在sqlyog中的History可以看到SQL语句
在这里插入图片描述
数据库XXX语言 CRUD-增删改查
DDL-定义、DML-操作、DQL-查询、DCL-控制

4.1 数据库层面

-- sql语句不区分大小写
create database IF NOT EXISTS KK;   -- 如果不存在创建数据库
DROP IF EXISTS KK;   				-- 如果存在移除数据库
USE `school`; 						-- 使用数据库, 如果数据库名是关键字,需要用反引号括起来
SHOW databases;                     -- 查看所有数据库

4.1.1 数据库的列类型

在这里插入图片描述
数值

  • 整数
    • tinyint 很小的数据,1bit
    • smallint 2bits
    • mediuminy 3bits
    • int 常用 4bits
    • bigint 8bits
  • 浮点数
    • float 4bits
    • double 8bits (精度问题)
    • decimal 字符串形式的浮点数(金融计算时使用)

字符串

  • char 固定大小 0-255
  • varchar 可变字符串 0-65535(相当于String)
  • tinytext 卫星文本 2^8-1
  • text 文本串 2^16-1

MySQL中数据类型的长度问题总结

时间日期

  • date YYYY-MM-DD 日期
  • time HH: mm: ss 时间
  • datetime 日期+时间
  • timestamp 时间戳(1970.1.1到现在的毫秒数)
  • year 年份

null:没有值,未知,尽量不要使用null进行运算

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

在这里插入图片描述

  • Unsigned:无符号整数,不能声明为负数
  • zerofill:不足的位数用0填充
  • Auto Incr? 自增
    • 通常理解为自动在上一条记录的基础上+1
    • 通常用来设计唯一的主键,可自定义设置主键自增的起始值和步长
      在这里插入图片描述
  • Not Null?非空 选中后,不填数据会报错
  • default 设置默认的值

4.2 数据库表层面

4.2.1 创建表

格式

CREATE TABLE [IF NOT EXISTS] `表名`(
	`字段名` 列类型 [属性 索引 注释],
	...
	`字段名` 列类型 [属性 索引 注释],
	PRIMARY KEY(`主键`)
)[表类型][字符集设置][注释]
CREATE TABLE IF NOT EXISTS `kids` (
	`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 '生日',
	PRIMARY KEY (`id`) -- 一般一个表只有一个主键
)ENGINE=INNODB DEFAULT CHARSET=utf8 
-- 常用命令
SHOW CREATE DATABASE school -- 查看创建数据库语句
SHOW CREATE TABLE kids
DESC kids -- 显示表的结构

在这里插入图片描述

4.2.2 数据表类型

数据库引擎事务支持数据行锁定外键约束全文索引表空间大小
MYISAM(速度较快)不支持不支持不支持支持较小,节约空间
INNODB(安全性高)支持支持支持不支持较大,约为MYISAM2倍
-- 字符集编码
CHARSET=utf8 -- 不设置会出现乱码。MySQL默认编码是Latin1,不支持中文

4.2.3 修改删除表

ALTER TABLE kids RENAME AS teachers;  -- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teachers ADD age INT(11); -- 增加表的字段
-- 修改表的字段(1.重命名 2.修改约束)
ALTER TABLE teachers CHANGE age age1 INT(2); -- 重命名
ALTER TABLE teachers MODIFY age VARCHAR(11); -- 修改约束
-- 删除表的字段
ALTER TABLE teachers DROP age1;
-- 删除表
DROP TABLE IF EXISTS +表名;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值