自学内容网 自学内容网

数据库操作

目录

一、数据库语言

1.1 DDL(数据库定义语言)

1.2 DML(数据库操作语言)

1.3 DQL(数据库查询语言)

1.4 DCL(数据控制语言)

二、操作数据库

2.1 创建数据库

2.2 查看数据库

2.3 删除数据库

2.4 选择数据库

三、数据库表操作

3.1 创建表

3.1.1数据库表字段类型

3.1.2 给表字段添加注释

3.2 查询创建的数据库表结构

3.2.1 存储引擎

3.3 修改和删除数据库表

3.3.1 修改表名

3.3.2 添加表字段

3.3.3 修改字段

3.3.4 删除表字段

3.3.5 删除表


一、数据库语言

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-11个字节
smallint较小的数据-2^15~2^15-12个字节
mediumint中等大小的数据-2^23~2^23-13个字节
int标准整数-2^31~2^31-14个字节
bigint较大的整数-2^63~2^63-18个字节
float单精度浮点数±1.1754351e-384个字节
double双精度浮点数±2.2250738585072014e-3088个字节
decimal(位数,小数点位数)字符串形式的浮点数decimal(m,d)m个字节

日期和时间类型

类型说明取值范围
DATEYYYY-MM-DD,日期格式1000-01-01~9999-12-31
TIMEHh:mm:ss 时间格式-838:59:59~838:59:59
DATETIMEYY-MM-DD hh:mm:ss1000-01-01 00:00:00 - 9999-12-31 23:59:59
TIMESTAMPYYYYMMDDhhmmss格式的时间戳197010101000000~2037年的某个时刻
YEARYYYY格式的年份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的区别

对比项MyISAMInnoDB
外键不支持支持
事务不支持支持
行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发操作行锁,操作时只锁某一行,不对其它行有影响,适合高并发操作
缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响
默认安装YY
默认使用NY
关注点性能:节省资源、消耗少、简单业务事务:并发写,事务、更大资源

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)!