数据库操作
目录
一、数据库语言
1.1 DDL(数据库定义语言)
定义和管理数据库对象,如定义数据库,数据库表等;如:CREATE、DROP、ALTER
1.2 DML(数据库操作语言)
用于操作数据库对象中所包含的数据;如:INSERT、UPDATE、DELETE
1.3 DQL(数据库查询语言)
用于查询数据库;如:SELETE
1.4 DCL(数据控制语言)
用来管理数据库的语言,包括管理权限及数据更改;如:ROLLBACK、COMMIT、GRANT
二、操作数据库
2.1 创建数据库
create database [if not exists] 数据库名
2.2 查看数据库
SHOW DATABASES
2.3 删除数据库
DROP DATABASE [IF EXISTS] 数据库名
2.4 选择数据库
USE 数据库名
三、数据库表操作
3.1 创建表
CREATE TABLE `表名称`( `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释] ) “[]”中的内容是可以省略不写的; ``反引号的作用是:当定义的名称和系统关键字冲突时可以使用反引号来进行区别 例: CREATE TABLE t_students( id INT PRIMARY KEY, name varchar(50) NOT NULL, age int, sex CHAR(4), birthday DATETIME, score decimal(4,1) );
3.1.1数据库表字段类型
字符串类型
类型 | 说明 | 取值范围 |
---|---|---|
char[(长度)] | 固定长字符串,检索快,但是浪费内存空间,效率高(适合用于已知该字段的长度)当传入的字符串长度不够长度时会补空格 | 0<=M<=255 |
varchar[(长度)] | 可变字符串,节省内存空间,效率低(长适用于不知道字符串长度时)传入的字符串的长度是多少就占多少 | 0<=M<=65535 |
text | 文本串(4个G左右的大小) | 4294967295长度+4个字节 |
tinytext | 微型文本串 | 16777215长度+3个字节 |
数值类型
类型 | 说明 | 取值范围 | 存储需求 |
---|---|---|---|
tinyint | 非常小的数据 | -2^7~2^7-1 | 1个字节 |
smallint | 较小的数据 | -2^15~2^15-1 | 2个字节 |
mediumint | 中等大小的数据 | -2^23~2^23-1 | 3个字节 |
int | 标准整数 | -2^31~2^31-1 | 4个字节 |
bigint | 较大的整数 | -2^63~2^63-1 | 8个字节 |
float | 单精度浮点数 | ±1.1754351e-38 | 4个字节 |
double | 双精度浮点数 | ±2.2250738585072014e-308 | 8个字节 |
decimal(位数,小数点位数) | 字符串形式的浮点数 | decimal(m,d) | m个字节 |
日期和时间类型
类型 | 说明 | 取值范围 |
---|---|---|
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~9999-12-31 |
TIME | Hh:mm:ss 时间格式 | -838:59:59~838:59:59 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式的时间戳 | 197010101000000~2037年的某个时刻 |
YEAR | YYYY格式的年份 | 1901~2155 |
NULL类型
可以理解为“没有值”或者是“未知值” 在mysql中,NULL和0都表示为假,1为真
3.1.2 给表字段添加注释
注释:给字段添加注释相当于给字段添加描述,方便后期维护和修改字段 在字段后添加COMMENT '注释内容' 例:CREATE TABLE t_students( id INT PRIMARY KEY, name varchar(50) NOT NULL, age int COMMENT '年龄', sex CHAR(4), birthday DATETIME, score decimal(4,1) );
3.2 查询创建的数据库表结构
方式一:desc 表名称 方式二:show create 表名称(可以查看到建表的语句) 例:CREATE TABLE `t_students` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` char(4) DEFAULT NULL, `birthday` datetime DEFAULT NULL, `score` decimal(4,1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
3.2.1 存储引擎
存储引擎就是:将数据库表往磁盘上写的规则; ENGINE=[InnoDB]就规定了当前表的存储引擎;[]表示可以更改
查看当前数据库支持的存储引擎
show engines
数据库存储引擎MYLSAM和LnnoDB的区别
对比项 | MyISAM | InnoDB |
---|---|---|
外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发操作 | 行锁,操作时只锁某一行,不对其它行有影响,适合高并发操作 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
默认安装 | Y | Y |
默认使用 | N | Y |
关注点 | 性能:节省资源、消耗少、简单业务 | 事务:并发写,事务、更大资源 |
3.3 修改和删除数据库表
3.3.1 修改表名
ALTER TABLE 旧表名 RENAME as 新表名 例:ALTER TABLE t_students RENAME as xuesheng
3.3.2 添加表字段
ALTER TABLE 表名 ADD 表字段 类型 属性; 例:ALTER TABLE xuesheng ADD address VARCHAR(50) COMMENT '家庭地址';
3.3.3 修改字段
-- 方式一:MODIFY只能修改数据类型和属性 ALTER TABLE 表名 MODIFY 字段名 类型 属性; 修改式覆盖式修改,1,有一定的默认值2,如果要换类型(当存在数据时就不能改类型),3、必须满足隐式转换; ALTER TABLE 表名 MODIFY `字段名` 类型 [属性]; 例: ALTER TABLE xuesheng MODIFY `name` VARCHAR(40); -- 方式二:既可以修改类型和属性,还可以修改字段名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 例: ALTER TABLE xuesheng CHANGE `name` uname VARCHAR(50);
3.3.4 删除表字段
ALTER TABLE 表名DROP 字段名 例:ALTER TABLE xuesheng DROP age
3.3.5 删除表
DROP TABLE [ IF EXISTS ] 表名 例:DROP TABLE xuesheng
原文地址:https://blog.csdn.net/m0_73664110/article/details/140556241
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!