操作数据库
2.1、操作数据库
(可以直接手动操作,以下是sql语句操作)
1、创建数据库(默认字符集:utf8 -- UTF-8 Unicode;排序规则:utf8_general_ci)
CREATE DATABASE [IF NOT EXISTS] 数据库名
2、删除数据库
DROP DATABASE [IF EXISTS] 数据库名
3、使用数据库
-- 若使用的是表名或者字段名是一个特殊字符,就需要带``符号(该符号位于tab键上面)
USE `数据库名`
4、查看所有的数据库
SHOW DATABASES
2.2、数据库的列类型
数值
-
tinyint 十分小的数据 1个字节
-
smallint 较小的数据 2个字节
-
mediumint 中等大小的数据 3个字节
-
int(常用) 标准的整数 4个字节
-
integer 较大的数据 8个字节
-
float 浮点数 4个字节
-
double 浮点数 8个字节
-
decimal 字符串形式的浮点数 一般用于金融计算
字符串
-
char 字符串 0~255
-
varchar 可变字符串 0~65535 / 0~2^16-1
-
tinytext 微型文本 0~255
-
text 文本串 0~65535
时间日期
-
date YYYY-MM-DD,日期格式
-
time HH:mm:ss,时间格式
-
datetime YYYY-MM-DD HH:mm:ss,最常用的时间格式
-
timestamp 时间戳,年月日时分秒
-
year 年份
2.3、数据库的字段属性(重点)
部分的软件是中文版就比较容易理解了,这里是对中文软件的解释。
-
Unsigned:无符号整数,声明后该列不能声明为负数
-
zerofill:填充零;不足的位数,使用0来填充
-
自增:自动在上一条记录的基础上+1,通常用于主键
-
NULL:如果不填写值,默认是null
-
Not NULL:如果不给它赋值,就会报错!
-
拓展:
/*每个表都必须存在以下五个字段!未来项目用的,表示一个记录存在的意义! id 主键 `version` 乐观锁 is_delete 伪删除 gmt_create 创建时间 gmt_update 修改时间 */
2.4、创建数据库表(重点)
-- 目标:创建一个school数据库
-- 创建学生表(列,字段) 使用SQL创建
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(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 '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) 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(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
格式
-- 注意:这里的表名和字段名可以不加``符号,但是注释的''符号若不加就会报错。(你们可以自己试试)
CREATE TABLE IF NOT EXISTS `表名` (
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
···
`字段名` 列类型 [属性] [索引] [注释],
PRIMARY KEY(`字段名`)
)[表达式][字符集设置][注释]
常用命令
SHOW CREATE DATABASE test -- 查看创建数据库的语句
SHOW CREATE TABLE student -- 查看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 age INT(11)
-- 修改表的字段 (重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性()
ALTER TABLE teacher1 MODIFY age VARCHAR(11) --修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性()
ALTER TABLE teacher1 CHANGE age age1 INT(1) --字段重命名
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
删除表
-- 如果表存在的话(所有的创建和删除操作尽量加上判断)
DROP TABLE IF EXISTS teacher1
本文作者:Li-An
本文链接:https://www.cnblogs.com/Li-An/p/16429019.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步