ICode9

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

(数据库)知识点整理

2022-07-31 13:00:10  阅读:154  来源: 互联网

标签:知识点 默认值 -- 数据库 类型 设置 整理 NULL


需要记得数据库知识点

一、基本操作

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

 

  • 添加

 

  • 修改

 

  • 删除

  •  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:知识点,默认值,--,数据库,类型,设置,整理,NULL
来源: https://www.cnblogs.com/xxdd123321/p/16536909.html

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

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

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

ICode9版权所有