MySQL——数据库的详细操作

前言

千字带你操作数据库,觉得不错的可以三连支持一下

文章目录

        • 前言
        • 操作数据库
          • 创建数据库
          • 删除数据库
          • 使用数据库
          • 查看数据库
        • 数据库的数据类型(列的数据类型)
          • 数值
          • 字符串
          • 时间日期
          • null
        • 数据库的字段属性(重点)
          • Unsigned:
          • zerofill
          • 自增
          • 非空 not null
          • 默认
        • 创建数据库
          • 示例代码
        • 数据表的类型
          • MYISAM和INNODB的区别
          • 常规使用操作
          • 在物理空间存在的位置
          • MySQL引擎在物理文件上的区别
          • 设置数据库的字符集编码
        • 修改删除表
          • 修改表
          • 删除表
          • 注意点

操作数据库

  • 操作数据库 > 操作数据库中的表 > 操作数据库中表的数据
  • mysql关键字不分大小写!
创建数据库
CREATE DATABASE IF NOT EXISTS westos
删除数据库
DROP DATABASE IF EXISTS westos
使用数据库
-- tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带`  `school``student``

USE school;

SELECT `user` FROM student;
查看数据库
SHOW DATABASES  -- 查看所有的数据库

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

数值
  • tinyint 十分小的数据 占1个字节
  • smallint 较小的数据 占2个字节
  • mediumint 中等大小的数据 占3个字节
  • int 标准的整数 占4个字节 常用的
  • big 较大的数据 占8个字节
  • float 单精度浮点数 占4个字节
  • double 双精度浮点数 占8个字节(精度问题!)
  • decimal 字符串形式的浮点数 (金融计算的时候一般使用decimal)
字符串
  • char 字符串固定大小的 0-255 占1个字节
  • varchar 可变字符串 0-65535 常用
  • tingytext 微型文本 2^8 - 1
  • text 文本串 2^16-1 一般用于保存大文本
时间日期
  • data 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填充的
  • 不足的位数使用0来填充
  • int(3) 5 -->(005) 50–>(050) 500–>(500)
自增
  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键~index 必须是整数类型
  • 可以自定义设计主键的起始值和步长
非空 not null
  • 假设设置为not null,如果不给它赋值,就会报错!
  • NULL,如果不填写值,默认就是null!
默认
  • 设置默认的值!

  • sex 默认值为男,如果不指定该列的值,则会有默认值!

  • 每一个表,都必须存在以下五个字段!,未来做项目用的,表示记录存在的意义!

  • id 主键

  • version 乐观锁

  • is_delete 伪删除

  • gmt_create 创建时间

  • gmt_updata 修改时间

创建数据库

示例代码
-- 目标:创建一个school数据库
-- 创建学生表(列、字段)  使用SQL 创建
-- 学号int、登陆密码varchar(20)、姓名、性别 varchar(2)、出生日期(datatime)、家庭住址、email

-- 注意点:使用英文() 表的名词和字段尽量使用 `` 括起来 
-- AUTO_INCREMENT 自增
-- 字符串使用 单引号括起来
-- 所有的语句后面加  , (英文的) 最后一个不用增加
-- 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

数据表的类型

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

SHOW  CREATE TABLE student; -- 查看数据库表的语句

DESC student -- 显示表的结构

-- 关于数据库引擎

ENGINE=INNODB
/*
INNODB  默认使用
MYISAM  早些年使用的
*/
MYISAM和INNODB的区别
区别\引擎 MYISAM INNODB
事物支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约为MYISAM的两倍
常规使用操作
  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,事务的处理,多表数据库操作
在物理空间存在的位置
  • 所有的数据库文件都存在 data 目录下,一个文件夹对应一个数据库
  • 本质还是文件的存储!
MySQL引擎在物理文件上的区别
  • INNODB 在数据库表中只有一个 *.frm 文件,以及上级目录下的 ibdata1 文件
  • MYISAM 对应的文件
    • *.frm 表结构的定义文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件(index)
设置数据库的字符集编码
CHARSET=utf8
  • 不设置的话,会是mysql默认的字符集编码Latin1-(不支持中文!)

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

character-set-server=utf8

修改删除表

修改表
-- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1;

-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11);

-- 修改表的字段(1、重命名;2、修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性
ALTER TABLE teacher1 MODIFY age VARCHAR(11);   -- 修改约束

-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性; 
ALTER TABLE teacher1 CHANGE age age1 INT(1);   -- 字段重命名

-- 删除表的字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
删除表
-- 删除表(如果表存在再删除)
-- DROP TABLE IF EXISTS 表名
DROP TABLE IF EXISTS teacher1 
  • 所有的创建和删除操作尽量加上判断,以免报错!
注意点
  • `` 字段名,使用这个包裹!
  • 注释 – /**/ !
  • sql关键字不区分大小写!
  • 所有的符号全部用英文!

你可能感兴趣的:(MySQL,数据库,mysql,sql)