命令行链接
操作数据库数据类型数据库的字段属性(重点)创建数据库表总结格式常用命令引擎在物理空间存在的位置设置数据库表的字符集编码修改和删除表 命令行链接
1.所有的语句都使用;结尾
操作数据库语言: 数据库 **** 语言 本质 CRUD程序员(业务-增删改查) CV程序员 API程序员
DDL 定义
DML 操作
DQL 查询
DCL 控制
操作数据库–表--表中数据
mysql不区分大小写
注意:
数据类型1.如果表名或者字段名是特殊字符就要用Tab上面的建 `` 来框起来,(school)(ES6字符串的写法)
创建数据库
数值
tinyint 十分小的数据 1字节
smallint 较小的数据 2字节
mediumint 中等的数据 3字节
int 标准的数据 4字节 常用的
bigint 较大的数据 8字节
float 浮点数 4字节
double 浮点数 8字节 精度问题
decimal 字符串形式的浮点数 金融计算的时候一般使用
字符串
char 比较小的固定大小的数据 0~255
varchar 可变字符串相当于String 0~65535
tinytext 微型文本据 2^8-1
text 文本串 2^16-1 大文本,还是String
时间日期
date YYYY-MM-DD 日期
time hh:mm:ss 时间格式
datetime YYYY-MM-DD hh:mm:ss 常用时间格式
timestamp 时间戳, 1970.1.1 到现在的毫秒数! 也常用
year 年份表示
null
没有值,未知
不要加入运算,因为结果也会是null
Unsigned
1.无符号整数
2.不能为负数
zerofill
1.0填充
2.不足的位数使用0来填充 int(3) , 5 — 005
自增
1.通常在上一条记录基础上加1
2.通常来定义唯一主键
3.可在高级中自定义
非空 NULL not null
1.如果不给值,就会报错
2.null,如果不给值,默认是null
默认
1.设置默认的值
2.若不指定该列的值,则为默认值
拓展
规范id 主键`version` 乐观锁is_delete 伪删除gmt_create 创建时间gmt_update 修改时间
创建数据库表-- 使用英文( ) 表的名称和字段尽量使用 `` 包起来 -- a uto_increment AUTO_INCREMENT 自增 -- C OMMIT是注释 -- 字符串使用 单引号括起来 -- 所有的语句后面加,最后一个不用 -- PRIMARY KEY ( `id` ) ,这个是定义主键,可以写在字段中,但建议写在最后,因为明显可以看到CREATE TABLEIFNOT EXISTS `student` (`id` INT ( 4 ) NOT NULL auto_increment comment '学号',`gradeid` INT ( 10 ) not NULL comment '学生年级',`name` VARCHAR ( 30 ) NOT NULL DEFAULT '匿名' comment '姓名',`pwd` VARCHAR ( 30 ) NOT NULL DEFAULT '123456' comment '密码',`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
注意 COMMENT 不要写错了 因为好几个类似的单词 写错了就编译不了…
总结格式 CREATE TABLE [IF NOT EXISTS] ‘表名’(
`字段名(加上tab上面的建,这个文章里会识别成代码) 列类型 【属性】【索引】【注释】,
········
`字段名 列类型 【属性】【索引】【注释】
)【表类型】【字符集设置】【注释】
SHOW CREATE DATAbase testdb -- 查看创建数据库的语句SHOW CREATE TABLE student -- 查看创建表的语句DESC student -- 显示表的结构
引擎 INNODB 默认使用:安全性高,事务处理,多表多用户操作
MYISAM 早年使用:节约空间,速度快
MySql所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
本质还是文件的存储
MySql 引擎在物理文件的区别
1.innoDB 在数据库中只有一个*.ibd文件
2.myisam 在数据库中有3个文件
myd 数据文件
myi 索引文件
CHARSET=utf8
不设置的话,回事mysql默认的字符集编码(不支持中文)
mysql的默认编码是Latin1,不支持中文
修改和删除表在my.ini中配置默认编码
加上 :character-set-server=utf8
修改表名
ALTER TABLE sooc rename as sooc1
增加表字段
ALTER TABLE sooc add age int(11)
修改表的字段(重命名,修改约束)
ALTER TABLE sooc modify age int(11)
ALTER TABLE sooc1 change age age1123 VARCHAr(11)
删除表字段
ALTER TABLE sooc1 drop age1123
删除表
drop table if exists sooc1