2:DML操作数据库操作全集:
操作数据库》操作数据库中的表》操作数据库中的表数据:
2.1操作数据库
不区分大小写;
CREATE DATABASE [IF NOT EXISTS] westos --防止已经存在 创建数据库
drop database if exist westos ---删除表;
CREATE DATABASE IF NOT EXISTS westos
DROP DATABASE IF EXISTS westos
USE `school` --用数据库 当你的属性是关键字的时候 需要加··
SELECT `age` FROM student
SHOW DATABASES --查看所有的数据库
2.2:数据库的列类型:
数值:
tinyint 十分小的数据 一个字节
smallint 较小的数据 2个字节 //这些用的都比较少
int 标准的整数 4个字节
bigint 较大的整数 8个字节
float 浮点数 4个字节 (精度问题)
decimal 字符串形式的浮点数 金融计算的时候一般使用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 时间格式
datatime YYYY-MM-DD HH:mm:ss 最常用的时间格式
timesamp 时间戳 1970.1.1 到现在的毫秒数
year 年份表示
null
没有值 未知;
2.2:数据库字段属性(重点)
Unsigned
1:无符号的整数 并且声明了该列不能声明为负数;
zerofill
1:0填充 不足的位数 用0来填充
自增
通常理解为自增 自动在上一条的记录上加1
通常用来设计唯一的主键 index 且必须是整数的类型
可以自定义设计主键自增的起始值与步长;
非空
notnull
假设设置为notnull 如果不给他赋值 就会报错 如果不填写值就会默认为null
默认
设置默认的值;
如果不指定该列的值 会有默认的值
拓展:每一个表都必须会存在下面的五个字段: 表示一个记录存在的意义
id 主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
2.3:创建数据库表:(重点)
-- 目标:创建一个school的数据库
-- 创建学生表
-- 学号int 登陆密码 varchar 姓名 性别varchar 出生日期 datatime 家庭住址 Email
-- 使用英文括号 表的字段尽量使用``
-- AUTO_INCREMENT
-- 字符串的使用 用单引号括起来 所有的语句后面加, 最后一个语句不用
-- primary key 一般一个表有唯一的一个主键
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT ' null' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` VARCHAR(20) 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 EXIST `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]
常用命令(反向思维)
show create database school -- 查看创建数据库的语句
desc student -- 显示表的结构
2.4:数据表的类型:
/*
INNODB 数据库引擎的默认使用
MYSIAM 早些年使用的
*/
MYSIAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键锁定 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 比较小 | 比较大 约为MYISAM的两倍 |
常规的使用操作:
myisam节约空间 速度较快
INNODB 安全性比较高 支持事务的处理 多表多用户的操作
在物理空间存在的位置:
所有的数据库文件都在data目录下 就是MySQL总下载时所创建的data
设置数据库表的字符集编码:
在创建时加上CHARSET=UTF-8
或者在MY.ini中配置默认的编码
charset-set-server=utf=8
2.4:修改或删除表
-- 修改表
ALTER TABLE teacher RENAME AS teacger1
-- 增加表的字段
ALTER TABLE teacger1 ADD age INT(11)
-- 修改表的字段 (重命名 修改约束)
-- ALTER TABLE 表名 modify 字段名 列属性[]
ALTER TABLE teacger1 MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacger1 CHANGE age age1 INT(1) -- 字段重命名
-- 删除表的字段
ALTER TABLE teacger1 DROP age1
-- 删除表
drop table if exist teacger1