1、关系型数据库(RDBMS)
(1)Oracle 数据库(甲骨文公司)
(2)MySQL 数据库(甲骨文公司),流行、开源
(3)SQLSeerver 数据库(微软)
(4)Sqlite(嵌入式关系数据库)
2、非关系型数据库(NoSQL)
(1)Redis(缓存数据库)
(2)MongoDB (文档数据库)
(3)Elasticsearch(搜索服务)
(4)Hbase(分布式、列示数据库)
1、创建
创建数据库:create database 数据库名称;
创建数据库,先判断不存在,再创建:create database if not exists 数据库名称;
创建数据库,并指定字符集:create database 数据库名称 character set 字符集名;
2、查询
查询所有数据库的名称:show databases;
查询某个数据库的字符集、查询某个数据库的创建语句:show create database 数据库名称;
查询当前正在使用的数据库名称:select database();
3、修改
修改数据库的字符集:alter database 数据库名称 character set 字符集名称;
4、删除
删除数据库:drop database 数据库名称;
删除数据库,先判断数据库存在,存在再删除:drop database if exists 数据库名称;
1、创建
create table if not exists 表名(列名1 数据类型1[长度] 【字段约束】,列名2 数据类型2[长度] 【字段约束】,....列名n 数据类型n[长度] 【字段约束】);
eg:
use mayiktmeite;
CREATE TABLE if not exists mayikt_user(id INT,name VARCHAR(20),age int,create_time date,address VARCHAR(100)
);
2、查询
3、修改
修改表名称:alter table 表名 rename to 新的表名;
eg:
ALTER TABLE user_test RENAME TO user_table ;
4、删除
drop table 表名;
drop table if exists 表名;
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1、数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 说明 |
---|---|---|---|---|
TINYINT | 1 Bytes | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 Bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 Bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 Bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 Bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 Bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38). | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 |
DOUBLE | 8 Bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
2、日期/时间类型
类型 | 大小 | 范围 | 格式 | 说明 |
---|---|---|---|---|
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 23 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
3、字符串(字符)类型
类型 | 大小 | 说明 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
注:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
1、DML与DDL区别?
DDL 对数据库的表结构进行增加、修改、删除操作;
DML 表结构中的数据进行增加(insert)、修改(update)、删除(delete)、查询(select )操作。
2、增加(insert)
INSERT INTO 语句用于向表格中插入新的行。
语法格式:
INSERT INTO 表名称 (列名1,列名2 …) VALUES (值1, 值2,…) // 插入数据列与值的顺序需要一一对应
INSERT INTO 表名称 VALUES (值1,值2,…) // 向表中插入所有列
eg:
INSERT INTO `user_test` (`id`, `name`, `age`, `addres`, `create_time`) VALUES (1, '毛毛', 20, '合肥', '2022-12-04 15:19:32');
INSERT INTO `user_test` VALUES (1, '毛毛', 20, '合肥', '2022-12-04 15:19:32');
3、修改(update)
语法格式:
UPDATE 表名称 SET 字段=值,字段=值,…; //直接修改整张表的所有行数据
UPDATE 表名称 SET 字段=值,字段=值,… where 条件; //根据条件查找到对应行数据进行修改
eg:
UPDATE `user_test` SET `name` = '毛毛', `age` = 25 WHERE `id` = 1; //修改id等于1的行
UPDATE `user_test` SET `name` = '毛毛', `age` = 25 ---修改所有
4、删除(delete)
语法格式:
delete from 表名称 where 条件; //根据条件删除表中的数据
TRUNCATE 表名称; //–清空表中所有的数据
eg:
delete from user_test where where id=1; //根据条件id=1 删除id=1 行的数据
delete from user_test; //清空表中所有的数据
TRUNCATE user_test; //清空表中所有的数据
注:TRUNCATE 与delete 不同?
truncate:会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;
delete:逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;
上一篇:PostgreSQL基本运维
下一篇:Spring 源码编译