操作数据库
操作数据库 > 操作数据库中的表 > 操作数据库中表的数据
mysql关键字,不区分大小写
1.操作数据库
1.1.创建数据库
CREATE DATABASE [IF NOT EXISTS] school;
1.2.删除数据库
DROP DATABASE [IF EXISTS] hello;
1.3.使用数据库
USE school
;
1.4.查看数据库
SHOW DATABASES;
SELECT NAME FROM student;
SELECT `name` FROM student;
2.数据库的数据(列)类型
2.1.数值
- tinyint 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- mediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节 常用 —int
- bigint 较大的数据 8个字节 —long
- float 浮点数 4个字节 —float
- double 浮点数 8 个字节 —double
- decimal 字符串形式的浮点数,金融计算时使用 —bigdecimal
2.2.字符串
- char 字符串固定大小 0~255
- varchar 可变字符串 0~65535 常用 —string
- tinytext 微型文本 2^8-1
- text 文本串 2^16-1 保存大文本
2.3.时间,日期
java.util.Date
- date YYYY-MM-DD,日期
- time HH:MM:SS 时间格式
- datetime YYYY-MM-DD HH:MM:SS 最常用的时间格式
- timestamp 时间戳 1970.1.1到现在的毫秒数 也较为常用
- year 年份
2.4.null
- 没有值,未知
- 注意,不要使用NULL进行运算,如果运算了结果为null
3.数据库的字段属性
3.1.Unsigned
- 无符号整数
- 声明了该列不能声明为负数
3.2.zerofill
- 0填充的
- 不足的位数使用0来填充 int(3): 5 ----005
3.3.自增
- 通常理解为,自动在上一条记录的基础上 +1(默认)
- 通常用来设计唯一的主键 -index,必须是整数类型
- 可以自定义设计主键自增的起始值和步长
3.4.非空 null 和 not null
- 如果设置为not null时,不赋值就会报错
- 如果设置为null时,不填写至,默认就是null
3.5.默认
- 设置默认值
- 如果不指定该列的值,则会有默认值
拓展:
每一个表都必须存在以下几个字段:
id 主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
4.操作数据库
4.1.创建数据库表
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '',
`name` VARCHAR(20) NOT NULL DEFAULT '张三' COMMENT '姓名',
`pwd` VARCHAR(10) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '住址',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
注意使用英文(),表的名称和字段尽量使用[``]括起来
字符串使用单引号括起来
所有语句后面加英文[,],最后一个不用加
PRIMARY KEY主键一般一个表只有一个
格式:
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
......
`字段名` 列类型 [属性][索引][注释]
)[表类型][字符集设置][注释]
常用数据库语句:
SHOW CREATE DATABASE 数据库名; // 查看创建数据库语句
SHOW CREATE TABLE 表名; // 查看创建表语句
DESC 表名; 显示表的结构
4.2. 数据表的类型
INNODB 默认使用
MYISAM 早些年使用
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2倍 |
常规使用该操作
ENGINE=INNODB
- MYISAM 节约空间,速度较快
- INNODB 安全性高,事物的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库,本质还是文件的存储
MySQL引擎在物理文件上的区别:
- InnoDB 在数据库表中只有一个 *.frm文件,以及上级目录下的ibdata1文件
- MyIsam 对应的文件
– *.frm 表结构的定义文件
– *.MYD 数据文件(data)
– *.MYI 索引文件(index)
设置数据库表的字符集编码
CHARSET=utf8
不设置的话,mysql默认编码时Latin1,不支持中文
可以在my.ini中追加
character-set-server=utf8
5.修改删除表
5.1.修改
-- 修改表名
ALTER TABLE 旧表名 RENAME AS 新表名;
-- 增加表中字段
ALTER TABLE 表名 ADD 字段名 列属性;
-- 修改约束
ALTER TABLE 表名 MODIFY 字段名 列属性;
-- 字段重命名
ALTER TABLE 表名 CHANGE 字段名旧名 字段名新名 列属性;
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
5.2.删除
DROP TABLE [IF EXISTS] 表名; -- 删除表
所有的创建和删除操作,尽量加上判断,以免报错
注意:
`` 字段名,使用这个包裹
注释用 单行注释- - 或者 多行注释 /* */
sql关键字大小写不敏感,建议写小写
所有符号用英文