2、数据库的操作
mysql关键字不区分大小写
操作数据库>操作数据库中的表>操作数据库中表的数据
2.1、操作数据库
- 创建数据库
CREATE DATABASE IF NOT EXISTS westos;
- 删除数据库
DROP DATABASE IF EXISTS WESTOS;
- 使用数据库
--tab键上面,如果你的表名或者字段名是一个特殊的字符,需要带`
USE `SCHOOL`;
4.查看数据库
show
学习思路
- 对照sqlyog可视化历史记录查看sql
- 固定的语法或关键字必须记住
2.2、数据库的数据类型
-
数值
- 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 保存大文本
-
时间日期
- date YYY-MM-DD,日期格式
- time HH:mm-ss,时间格式
- datetime YYY-MM-DD HH:mm-ss,最常用的时间格式
- timestamp 时间戳 1970.1.1 到现在的毫秒数
- year:年
-
null
- 没有值,未知
- 注意,不要使用Null进行运算,结果仍然为null;
2.3、数据库的字段属性
-
Unsighed: 无符号整数,不能声明为负数
-
zerofill:不足的位数零填充
-
自增: 自动在上一条记录的基础上+1(默认),通常用来设计唯一的主键,必须是整数。可以自定义设计起始值
-
非空 Null not null:假设设置为not null,如果不给他赋值,就报错。 Null,如果不填写值,就是null.
-
default : 设置默认值
拓展:
每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在的意义
id 主键
‘version’ 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
2.4、 创建数据库表(重点)
-- 注意点,使用英文括号,表的名称和字段尽量使用``括起来
-- AUTO_INCREMENT 自增
-- 字符串使用用法单引号括起来
-- 所有的语句后面加,(英文的)最后一个字段不用加
-- PRIMARY KEY 主键:一般一个表只有一个主键
CREATE TABLE IF NOT EXISTS `student1`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthdat` 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 school; -- 查看创建数据库语句
SHOW CREATE TABLE student1;-- 查看创建student数据表的语句
DESC student1; -- 显示表的结构
2.5、 数据表的类型
-- 关于数据库引擎
/*
INNODB:默认使用
MYISAM 早些年使用的
*/
事务支持 MYISAM : NO INNODB:YES
数据行锁定 MYISAM : NO INNODB:YES
外键约束 MYISAM : NO INNODB:YES
全文索引 MYISAM : YES INNODB:NO
表空间的大小 MYISAM : 较小 INNODB:较大,约为2倍
常规使用操作
MYISAM 节约空间,速度较快
INNODB 安全
在物理空间中存放的位置:
所有的数据库文件都存放在data目录下,一个文件夹对应一个数据库
本质还是文件的存储!
MYSQL引擎在物理文件上的区别
- INNODB在数据库表中只有*.frm文件,上级目录下的ibdata1文件
- MYISAM对应的文件
- *.frm - 表结构的定义文件
- .MYD 数据文件
-.MYI 索引文件
设置数据库表的字符集编码
charset= utf8;
如果不设置,mysql默认的字符集编码将不支持中文。
在my.ini中配置默认的编码
Character -seet -server=utf8
2.6、 数据表的类型
-- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名;
ALTER TABLE student1 RENAME AS teacher;
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性;
ALTER TABLE teacher ADD age INT(11);
-- 修改表的字段 (重命名,修改约束)
-- 修改约束
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher MODIFY age VARCHAR(11);
-- 字段重命名
-- ALTER TABLE 表名 CHANGE 字段名 列属性[]
ALTER TABLE teacher CHANGE age age1 INT(11) ;
-- 删除表的字段
ALTER TABLE 表名 DROP 字段名;
ALTER TABLE teacher DROP age1;
-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS school;
所有的创建和删除操作都要增加判断,以免报错
注意点:
- ··字段名,使用这个包裹
- 注释 – /**/
- sql关键字大小写不敏感,建议小写
- 所有符号全部英文