mysql(二)

这篇博客详细介绍了MySQL数据库的基本操作,包括创建、删除和使用数据库,以及查看数据库和表的命令。同时,文章讲解了不同数据类型,如数值、字符串、时间和日期,并提到了字段属性如无符号、零填充和自增。此外,还讨论了数据库表的设计规范,如主键、乐观锁和时间戳字段。最后,涉及了数据库表的修改和删除操作,以及字符集设置和存储位置。内容适合数据库初学者和开发者学习。
摘要由CSDN通过智能技术生成

操作数据库

操作库-操作表-操作表里的字段

mysql 的关键字不分大小写

2.1 操作数据库

  1. 创建数据库

    CREATE DATABASE IF NOT EXISTS class
    
  2. 删除数据库

    DROP DATABASE IF EXISTS class
    
  3. 使用数据库

    USE school
    -- tab键的上面,如果你的表名或者字段名是一个特殊字符,就需要``
    
    SELECT `user` FROM student
    
  4. 查看数据库

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

2.2 列的数据类型讲解

数值

  • tinyint 十分小的数据 一个字节
  • smallint 较小的数据 两个字节
  • mediumint 中等大小的数据 三个字节
  • int 标准的整数 四个字节
  • bigint 较大的数据 八个字节
  • float 单精度浮点数 四个字节
  • double 双精度浮点数 8个字节
  • decimal 字符串形式的浮点数 金融电商计算的时候,一般是使用的decimal
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5xpd85D-1628348731192)(C:\Users\Administrator\Desktop\微信图片_20210802151256.png)]

字符串

  • char 字符串固定大小的 0~255
  • varchar 可变字符串 0~65535 常用的 String
  • tinytext 微型文本 2^8 -1
  • text 文本串 2^16-1 保存大文本
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eQowI9eo-1628348731194)(C:\Users\Administrator\Desktop\微信图片_20210802151250.png)]

时间跟日期

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

字段属性(重点)

Unsigned:

  • 无符号的整数——声明该列不能创建为负数

zerofill:

  • 0填充的——不足的位数,使用0来填充,如int(3),5则为005

自增:

  • 通常理解为自动在上一条的记录的基础上+1(默认)
  • 通常用来设计唯一的主键~index,必须是整数类型

NULL 和 NOT NULL

  • 默认为NULL , 即没有插入该列的数值
  • 如果设置为NOT NULL , 则该列必须有值

DEFAULT

  • 默认的
  • 用于设置默认值
  • 例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

项目规范(每一个表,都必须存在一下五个字段)

未来做项目用的,表示一个记录存在的意义

id 主键

‘version’ 乐观锁

is_delete 伪删除

gmt_create 创建时间

gmt_update 修改时间


数据库表

/* 目标:
创建学生表(列,字段)使用SQL创建
学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datetime),家庭住址,emial
*/

-- 注意,使用英文(),表的名称和字段 尽量使用``括起来
-- AUTO_INCREMENT 自增
-- 字符串使用 单引号括起来!
-- 所有的语句后面加,最后一个字段不用加
-- PRIMARY KEY 主键 一般一个表只有唯一一个主键
CREATE TABLE IF NOT EXISTS `teacher`(
   `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

格式

CCREATE TABLE [IF NO EXISTS] `students`(
    '字段名' 列类型 [属性] [索引] [注释]'字段名' 列类型 [属性] [索引] [注释]......
    '字段名' 列类型 [属性] [索引] [注释]
)[表的类型][字符集设置][注释]

mylsam 和 innodb

-- 查看数据库的定义
SHOW CREATE DATABASE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student;  -- 设置严格检查模式(不能容错了)SET sql_mode='STRICT_TRANS_TABLES'

关于数据库引擎

数据表的类型

CREATE TABLE 表名(
   -- 省略一些代码
   -- Mysql注释
   -- 1. # 单行注释
   -- 2. /*...*/ 多行注释
)ENGINE = MyISAM (or InnoDB)

-- 查看mysql所支持的引擎类型 (表类型)
SHOW ENGINE

MySQL的数据表的类型 : MyISAM(表锁), InnoDB(行锁) , HEAP , BOB , CSV等…

常见的 MyISAM 与 InnoDB 类型:

图片

经验 ( 适用场合 ) :

  • 适用 MyISAM : 节约空间及相应速度
  • 适用 InnoDB : 安全性 , 事务处理及多用户操作数据表

数据表的存储位置

  • MySQL数据表以文件方式存放在磁盘中

    • 包括表文件 , 数据文件 , 以及数据库的选项文件
    • 位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .
  • 注意 :

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlwvVFYY-1628348731196)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210802214806862.png)]

设置数据库的字符集编码

CHARSET=utf8 

我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :

  • 创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
  • 如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gZLQ5ILW-1628348731197)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210802215018414.png)]

2.6 修改表

修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9svvpeRW-1628348731199)(E:\学习\开发学习\mysql\mysql02.assets\image-20210804153532944.png)]

-- 修改表 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段  ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
-- 修改表的字段(重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性
ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性
ALTER TABLE teacher1 CHANGE age age1 INT(3) -- 字段重命名
-- 删除表的字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1

删除

-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

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

注意点:

  • `` 点操作符 字段名使这个包裹!
  • 注释 – /**/
  • sql 关键字大小写不敏感,建议写小写
    INT(3) – 字段重命名
    – 删除表的字段
    – ALTER TABLE 表名 DROP 字段名
    ALTER TABLE teacher1 DROP age1

> 删除

```sql
-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

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

注意点:

  • `` 点操作符 字段名使这个包裹!
  • 注释 – /**/
  • sql 关键字大小写不敏感,建议写小写
  • 所有符号全部用英文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值