学习博客:【MySQL】操作数据库

操作数据库

DDL:定义

DML:操作

DQL:查询

DCL:控制

1. 数据库的列类型

数值

tinyint 十分小的数据 1字节

smallint 较小数据 2字节

mediumint 中等大小数据 3字节

int 整数 4字节

bigint 较大数据 8字节

float 浮点数 4字节

double 浮点数 8字节

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


字符串

char 固定大小字符串 0-255

varchar 可变字符串 0-65535 (String)

tinytext 微型文本 2^8-1

text 文本串 2^16-1 大文本


日期

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


2. 字段属性

Unsigned

无符号整数

声明该列不能为负


zerofill

0填充

不足的位数,用0填充 int(3) 1------001


自增

自动在上一条记录基础上加1

通常用来设计唯一的主键 index 必须为整数类型

可以自定义主键自增起始值与步长


非空

null 不填数据默认为null

not null 若不赋值则报错


默认

设置默认值

若不指定该列的值,则为默认值

每一个表都必须存在以下5个字段,表示一个记录存在的意义 保证安全性 健壮性

id 主键

VERSION 乐观锁

is_delete 伪删除

gmt_create 创建时间

gmt_update 修改时间

3. 创建数据库表

CREATE TABLE IF NOT EXISTS `student`(
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '111111' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthdate` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(30) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(30) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式

CREATE TABLE [IF NOT EXISTS] `表名`(
	`字段` 列类型 [属性] [索引] [注释],
	`字段` 列类型 [属性] [索引] [注释],
	...
	`字段` 列类型 [属性] [索引] [注释],
)[表类型][字符集设置][注释]

常用命令

SHOW CREATE DATABASE jxgl

SHOW CREATE TABLE sc

DESC sc

4. 数据表类型

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,是前者2倍

INNODB 安全性高 事务处理 多表多用户操作

MYISAM 节约空间,速度较快

物理空间存在的位置

所有数据存放在data目录下,一个文件夹对应一个数据库,本质是文件的存储

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

MYISAM 对应文件

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

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

默认为Latin1

  • CHARSET=utf8

  • 在my.ini中配置默认编码 character-set-server=utf8

5. 修改数据库

修改表名

ALTER TABLE student RENAME AS student1

增加表的字段

ALTER TABLE student ADD age INT(10)

修改表的字段

  1. 修改约束

    ALTER TABLE student MODIFY age varchar(10)
    
  2. 字段重命名

    ALTER TABLE student CHANGE age age1 INT(10)
    

删除表的字段

ALTER TABLE student DROP age

删除表

DROP TABLE IF EXISTS student

注意点:

  • ``字段名
  • /* */注释
  • sql关键字不敏感
  • 所有符号全英文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值