MySQL笔记1

2.2 数据库的列类型

数值型

  • tinyint
  • smallint
  • mediumint
  • int
  • bigint
  • float
  • double
  • decimal 字符串形式的浮点数

字符串

  • char 0-255
  • varchar 可变字符串 0-65535 常用的string
  • tinytext 微型文本 2^8-1
  • text 文本串 2^16-1

时间日期

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

NULL
没有值,未知

数据库的字段属性(重点)

unsigned:

zerofill:

  • 填充,不足位数使用0来填充

自增:


非空 NULL not null

  • 假如设置为not null, 如果不给它赋值,就会报错
  • NULL,如果不填写值,就是null

默认:

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

做项目的五个字段:
id 主键
version 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
表示一个记录的存在意义,保证数据的健壮性和安全性。

注意使用英文(),表的名称和字段尽量用’‘括起来
字符串使用单引号’'括起来

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 'password'
'sex' VARCHAR(2) NOT NULL DEFAULT '女' COMMENT 'gender'
'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 

注意一定要单引号,然后注意最后设置主键。

格式

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

SHOW CREATE DATABASE [库名]
常用命令

 SHOW CREATE DATABASE [库名] --查看创建数据库的语句
 SHOW CREATE TABLE [表名] --查看数据表的定义语句
 DESC [表名]  --显示表的结构

2.5 数据库类型

INNODB 默认使用
MYISAM 早些年使用的

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束(能否关联到其他表)不支持支持
全文索引(全文查找)支持不支持(目前仅英文支持)
表空间大小较小较大,约为2倍

常规操作:

  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,

物理空间

所有的数据库文件都存放在data目录下
本质还是文件的存储
MySQL 引擎在物理文件上的区别

  • InnoDB 在数据库表中只有一个*.frm文件,以及上级目录下的 ibdata1文件。
  • MYISAM 对应文件
    • *.frm 表结构文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件(index)

设置数据库表的字符编码

CHARSET = uft8

如果不写,则默认不支持中文
My’SQL的默认编码是Latin1,
在my.ini 中配置默认编码

character-set-server = utf8

一般.ini文件好像都是Notepad打开啊?
但是如果通过修改ini文件的方式,移植性很差,因为如果别人没有设置,那么还是乱码

修改和删除

ALTER TABLE xxx RENAME AS XXX --修改表名
ALTER TABLE xxx ADD age INT(11) --增加表的字段
ALTER TABLE xxx MODIFY age VARCHAR(11) --修改约束,就是修改字段名
ALTER TABLE xxx CHANGE age age1 INT(11) --字段重命名
ALTER TABLE xxx DROP age1 --删除表的字段
DROP TABLE IF EXISTS xxx --如果表存在删除

注意点

  • 使用’'包裹字段名
  • 注释 – /**/
  • sql关键字不敏感,建议小写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值