操作数据库
操作数据库 > 操作数据库中的表 > 操作数据库中表的数据
MySQL关键字不区分大小写
2.1、操作数据库(了解)
1.创建数据库
CREATE DATABASE westos;
2.删除数据库
DROP DATABASE westos;
3.使用数据库
USE school;
4.查看数据库
SHOW DATABASES;
学习思路:
- 对照sqlyog可视化历史记录,可以查看sql语句
- 固定的预发或关键字必须强行记住!
2.2数据库的列类型
2.3数据库的字段属性(重点)
Unsigned:
- 无符号的整数
- 声明该类为正整数,没有负数
zerofill:
- 0填充
- 不足的位数,使用0来填充,int(3),会将5存储为005
自增:
- 通常理解为自增,自动在上一条的基础上+1(默认)
- 通常来设计唯一的主键,且必须为整数类型
- 可以自定义设计主键自增的起始值和步长
非空 Null not null
- 加速设置为not null,如果不给它赋值,就会报错
- null,如果不填写值,默认就是null
默认:
- 设置默认的值
- sex,默认为男,如果不设置指定的值,那么它的值就是默认的值
拓展:
/*
每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在意义!
id 主键
`version` 乐观锁
is_delect 伪删除
gmt_create 创建时间
gmt_update 修改时间
*/
2.4创建数据库表(重点)
--学号(int) 登录密码(varchar(20)) 姓名 性别varchar(2) 出生日期(datetime) 家庭住址 Email
--注意,要使用英文括号(),表的名称和字段尽量使用``括起来
--AUTO_INCREMENT 自增
--字符串要使用单括号‘‘括起来
--每一段属性描述后加, 最后一行不用加
--PRIMARY KEY 主键,一般一个表有一个唯一的主键
CREATE TABLE `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号‘,
`name` VARCHAR(8) NOT NULL DEFAULT ‘匿名‘ COMMENT ‘姓名‘,
`pwd` INT(6) NOT NULL DEFAULT ‘123456‘ COMMENT ‘密码‘,
`sex` VARCHAR(2) NOT NULL DEFAULT ‘女‘ COMMENT ‘性别‘,
`birthday` DATETIME DEFAULT NULL COMMENT ‘出生日期‘,
`address` VARCHAR(100) DEFAULT NULL COMMENT ‘家庭地址‘,
`email` VARCHAR(20) DEFAULT NULL COMMENT ‘邮箱‘,
PRIMARY KEY(`id`)
)ENGINE=INNODB CHARSET=utf8
格式
CREATE TABLE `表名`(
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
.......
`字段名` 列类型 [属性][索引][注释]
PRIMARY KEY(`字段名`)--设置主键
)[表类型][字符集设置][注释]
常用命令
SHOW CREATE DATABASE school;--查看创建数据库的语句
SHOW CREATE TABLE student;--查看创建表的语句
DESC student;--显示表的结构
2.5数据库表的类型
--关于数据引擎
/*
INNODB 默认使用
MYISAM 早些年使用的
*/
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持,表锁定 | 支持,行锁定 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作
- MYISAM 节约空间,速度较快
- INNODB 安全性高,支持事务的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
本质还是文件的存储
MySQL引擎在物理文件上的区别
- INNODB 在数据库表只有一个*.frm文件,以及上级目录下的ibdata1文件
- MYISAM 对应的文件
- *.frm 表结构的定义文件
- *.MYD 数据文件(data)
- *.MYI 索引文件(index)
设置数据库表字符集的编码
CHARSET=utf8
不设置的话,会是MySQL默认的字符集,(不支持中文!)
MySQL默认的编码是Latin1,不支持中文
也可以在my.ini中配置默认的编码
character-set-server=utf8
2.6修改删除表
修改
--修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
--增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD id INT(3)
--修改表的字段(重命名,修改约束)
--ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY id VARCHAR(11)--修改约束(列属性)
--ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher1 CHANGE id id1 INT(3)--字段重命名,也可以顺便修改一下列属性
--删除表的字段:ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP id1
删除
--删除表:DROP TABLE [IF EXISTS] 表名
DROP TABLE IF EXISTS teacher1
所有的创建和删除操作尽量加上判断,以免报错
注意点:
- 字段名要用``包裹
- 注释 -- 或/**/
- sql关键字大小写不敏感,建议大家写小写
- 所有的符号要用英文