ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

[数据库 02] 数据库 数据类型 引擎类型

2021-11-29 17:33:18  阅读:108  来源: 互联网

标签:02 COMMENT 字节 -- 数据库 数据类型 DEFAULT NULL


数据库基础操作


关系型数据库 SQL 非关系型数据库 NoSQL(Not noly sql) 常见:redis, MongDB

1. Mysql基本命令行操作

每行都必须带结尾

-- 进入
mysql -uroot -p
-- 修改用户名密码(实际是对存储密码的表的修改)
update mysql.user set authentication_string=password('') where user = 'root' and Host = 'localhost';
-- 刷新权限
flush privileges;
-- 展示所有数据库
show databases;
-- 切换数据库
mysql> use school
Database changed
-- 展示所有的表
show tables;
-- 描述表中的行列等信息
desc student;-- student是表名

DDL, DML, DQL, DCL D...L :数据库 ... 语言

定义,管理,查询, 控制

2. 操作数据库


操作数据库,操作表,操作数据

1. 操作数据库

  1. 创建

    create database 数据库名 ;
    -- 加判断
    create database if not exists 数据库名 ;
    
  2. 删除

    drop database 数据库名 ;
    drop database if exists 数据库名 ;
    
  3. 使用

    -- 切换数据库
    use 数据库名 ;
    -- 如果对象名称为一个特殊字符或字段(和sql系统字段有重复,则增加``)
    select `user` from student; -- user是student表中的一个属性
    
  4. 查看数据库

    show databases;
    

2. 数据库数据类型

常用:

int 对应 java中的int

varchar 对应 String

text 用于存储长文本

timestamp 为时间戳,

datetime常用

数据库中int类型,设置的Length只和字段属性中的Zerofill有关(补几个0),设置为int之后,最大数据量就是4字节,和设置的Length无关。


  1. 数值

    • tinyint 1字节, smallint 2字节, mediumint 3字节, int 4字节;== bigint 8字节;
    • float 4字节
    • double 8字节
    • decimal 字符串形式的浮点数(金融计算用)
  2. 字符串

    • char 固定长字符串, 0~255
    • varchar 可变长字符串 0~65535
    • tinytext 微型文本 2^8 -1,博客信息足够用
    • **text 文本串,大型文章 2^16 -1 **
  3. 时间日期

    java.util.Date

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

    • 没有值,未知

3. 数据库的字段属性

  1. Unsigned:无符号整数,声明不能为负数

  2. Zerofill: 0填充,不足的位数,使用0填充

  3. Auto Incr: 自增, 自动在上一条记录的基础上加1,用来设置唯一主键,理解为index,必须是整数类型,

    可以自定义主键的初始值和增量(在sqlyog创建表格的 advanced里设置)

  4. Not null: 当设置为not null时,如果不给该属性赋值,就会报错。

  5. Default:设置默认值

每张表中,必须存在的5个属性(项目阶段):表示一个记录存在的意义

id 主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间

4. 创建数据库表

-- 字符串使用单引号
-- 所有的语句后加逗号, 最后一个不用加
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 'address',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',

PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式:

create table 表名(
属性名 类型声明(类型长度) 字段属性,

primary key (属性名)    -- 最后一个没有,号
)表类型 字符编码

查看建好的数据库的定义 SHOW CTEATE TABLE 表明

3. 数据库引擎类型

InnoDB MyISAM
事务支持 支持 不支持
外键支持 支持 不支持
行级锁 支持 不支持(表级锁)
聚集索引 支持 不支持
全文索引 不支持 支持
表空间 大,为MyISAM的两倍

全文索引:可以在一篇文章中索引内容
MyISAM:节约空间,速度快

InnoDB: 安全性高,事务处理, 支持多表多用户处理(支持行锁和外键)

所有的数据库都存在于data目录下,本质还是文件存储

存储区别:


InnoDB:生成*.frm文件, 和上层文件夹中的ibdata1文件。

MyISAM:

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

如果不设置charset,mysql默认字符集编码。

修改方法:1. 建表时选择charset=utf8;2. 在my.ini 中配置, 添加character-set-server=utf8

标签:02,COMMENT,字节,--,数据库,数据类型,DEFAULT,NULL
来源: https://www.cnblogs.com/Roy2048/p/15620418.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有