Java教程

(数据库)知识点整理

本文主要是介绍(数据库)知识点整理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

需要记得数据库知识点

一、基本操作

SHOW DATABASES  -- 查看所有数据库
USE school -- 切换数据库
SHOW TABLES -- 查看数据库内所有表
DESCRIBE student -- 显示数据库表中所有信息
CREATE DATABASE westos; -- 新建数据库
EXIT -- 退出连接
-- 单行注释
/*
  多行注释
*/
-- 删除
DROP DATABASE IF EXISTS westos -- 删除数据库,如果该数据库存在
-- 建立
CREATE DATABASE IF NOT EXISTS westos -- 建立数据库,如果数据库不存在
-- 关键字使用飘```
USE `westos`
-- 查看数据库
SHOW DATABASES -- 查看所有数据库 涉及到多个数据库时database后加s

数据库××语言

DDL 定义

DML 操作

DQL 查询

DCL 控制

二、需要记忆的列类型

数值

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mediumint 中等大小的数据 3个字节

  • int 标准的整数 4个字节

  • bigint 较大的数据 8个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节(存在精度问题)

  • decimal 字符串形式的浮点数 金融计算

字符串

  • char 字符串固定大小 0-255

  • varchar 可变字符串 0-65535(常用的变量

  • tinytext 微型文本 2^8-1

  • text 文本串 2^16-1(保存大文本

时间日期

  • 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,必须时整数类型

  • 可以自定义设置主键自增的起始值和步长(高级->自动增量,默认为1)

非空

NULL nut null

  • 设置为not null时,不给它赋值,就会报错

  • null,如果不填写值,默认为null

默认

  • 设置默认值

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

 

(拓展)

每个表,都必须存在一下五个字段做项目时表示一个记录的健壮性和安全性

  • id 主键

  • version 乐观锁

  • is_delete 伪删除

  • gmt_create 创建时间

  • gmt_update 修改时间

四、创建数据库

  • 列名``

  • 类型 int(), varchar(), datetime()

  • 是否为空 not null

  • 默认值 default'默认内容'

  • 自加(主键或其它)auto_increment

  • 注释 comment'注释内容'

-- 创建数据库
CREATE TABLE IF NOT EXISTS `student`(
    `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    -- 1.类型为int类型展示4位 2.设置不为空 3.设置自增 4.设置注释,使用单引号 5.所有语句最后加,最后一句不用加
    `name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
    -- 1.类型为varchar类型30位 2.设置不为空 3.设置默认值'匿名' 4.设置注释
    `pwd`VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
    -- 1.类型为varchar类型20位 2.设置不为空 3.设置默认值'123456' 4.设置注释
    `sex`VARCHAR(2) NOT NULL DEFAULT'男' COMMENT'性别',
    `birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
    -- 1.类型为datetime时间类型 2.设置默认值NULL 3.设置注释
    `address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
    -- 1.类型为varchar类型100位 2.设置默认值NULL 3.设置注释
    `email` VARCHAR(50) DEFAULT NULL COMMENT'邮箱',
    -- 1.类型为varchar类型50位 2.设置默认值NULL 3.设置注释
    PRIMARY KEY(`id`)
    -- 设置主键,一般一个表只有一个放到最后
)ENGINE=INNODB CHARSET=utf8
-- 1.设置引擎innodb 2.设置编码utf8

五、数据表类型

关于数据库引擎

  • innodb 默认使用

  • myisam 早些年使用

区别:

 myisaminnodb
事物支持 不支持 支持
数据行锁定 不支持 支持
外键 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约为两倍

常规使用操作:

  • myisam:节约空间,速度快

  • innodb:安全性高,事物的处理,多表多用户操作

 

在物理空间存在的位置

所有的数据库文件都存在data目录下

本质还是文件的存储

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

  • innodb 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

  • myisam对应文件

    • *.frm 表结构的定义文件

    • *.MYD 数据文件 (data)

    • *.MYI 索引文件(index)、

 

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

charset=utf8

不设置的话,会是mysql默认的字符集编码(不支持中文)

MySQL默认的编码是latin1,不支持中文

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

character-set-server=utf8

六、修改删除表

  • 修改

    -- 修改表名字
    ALTER TABLE student RENAME AS students  
    -- 添加表字段
    ALTER TABLE students ADD `age` INT(11) NOT NULL DEFAULT'27' COMMENT'年龄'
    -- 查看表
    SHOW KEYS FROM `school`.`students`
    -- 修改表字段(重命名,修改约束)modify:修改
    ALTER TABLE students MODIFY age VARCHAR(11) -- 修改类型
    ALTER TABLE students CHANGE age1 age VARCHAR(11) -- 修改字段名 要加上类型
  • 删除

    -- 删除表的字段
    ALTER TABLE students DROP age
    -- 删除表(如果存在便删除)
    drop table if exists students
  • 所有的创建删除操作尽量加上判断,以免报错

  • 注意点:

    • 字段名使用``包裹

    • 注释 -- /**/

    • sql关键字大小写不敏感,建议小写

七、DML语言(重点 背)

P13

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

DML语言:数据操作语言

  • insert

  • update

  • delete

 

  • 添加

 

  • 修改

 

  • 删除

  •  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于(数据库)知识点整理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!