目录
1.数据库介绍
为什么使用数据库:
2.数据库分类:
3.SQL分类
4.数据库操作
1.查询服务器上的所有数据库:show databases;
2.创建数据库(创建项目):
3.使用数据库(切换数据库):use 数据库名
4.删除数据库:DROP DATABASE [IF EXISTS] db_name;
MySQL数据库类型:
数值类型:
字符串类型:
日期类型:
表的操作用法
1.创建表的语法:
2. 查询所有的表名:
3. 查询表结构:
4.删除表
5.修改表结构
1.数据库介绍
为什么使用数据库:
数据的存储可以用文件,但文件保存数据有四个缺点,如下:
(1)文件的安全性问题 (2)文件不利于数据查询和管理 (3)文件不利于存储海量数据 (4)文件在程序中控制不方便 数据库存储介质: 磁盘 内存 为了解决上述问题,专家们设计出更加利于管理数据的软件 —— 数据库,它能更有效的管理数据。数据 库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。2.数据库分类:
数据库大体可以分为 关系型数据库 和 非关系型数据库 关系型数据库( RDBMS ): 是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个 关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 基于标准的 SQL ,只是内部一些实现有区别。常用的关系型数据库如: 1. Oracle :甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如 ERP 、 OA 等企业信息系 统。收费。 2. MySQL :属于甲骨文,不适合做复杂的业务。开源免费。 3. SQL Server :微软的产品,安装部署在 windows server 上,适用于中大型项目。收费。 非关系型数据库: (了解)不规定基于 SQL 实现。现在更多是指 NoSQL 数据库,如: 1. 基于键值对( Key-Value ):如 memcached 、 redis 2. 基于文档型:如 mongodb 3. 基于列族:如 hbase 4. 基于图型:如 neo4j 关系型数据库与非关系型数据库的 区别 : 关系型数据库 非关系型数据库 使用 SQL 是 不强制要求,一般不基于SQL 实现 事务支持 支持 不支持 复杂操作 支持 不支持 海量读写操作 效率低 效率高 基本结构 基于表和列,结构固定 灵活性比较高 使用场景 业务方面的 OLTP 系统 用于数据的缓存、或基于统计分析的 OLAP 系统 注: OLTP ( On-Line Transaction Processing )是指联机事务处理, OLAP ( On-Line Analytical Processing )是指联机分析处理。3.SQL分类
DDL数据定义语言,用来维护存储数据的结构 (创建数据库和表字段) 代表指令 : create, drop, alter; DML 数据操纵语言,用来对 数据 进行操作(数据库的维护和查询) 代表指令: insert , delete , update DML 中又单独分了一个 DQL ,数据查询语言,代表指令: select; DCL 数据控制语言,主要负责权限管理和事务 代表指令: grant , revoke , commit.4.数据库操作
DDL:1.查询服务器上的所有数据库:show databases;
2.创建数据库(创建项目):
CREATE DATABASE [IF NOT EXISTS] (非必须命令,如果不存在的情况下)db_name(数据库名) [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER ( 编码格式 ) SET charset_name [DEFAULT] COLLATE collation_name 注意:MySQL的命名规则是所有的数据库名称和表名以及字段名,必须要求全部小写。多个字母之间使用下划线“_”分隔。(大小写敏感linux)3.使用数据库(切换数据库):use 数据库名
4.删除数据库:DROP DATABASE [IF EXISTS] db_name;
MySQL数据库类型:
数值类型:
数据类型 大小 说明 对应 java 类型 BIT[ (M) ] M指定位数,默认为1 二进制数,M 范围从 1 到 64, 常用Boolean 对应 BIT ,此时 存储数值范围从0 到 2^M-1 默认是1 位,即只能存 0 和 1 TINYINT 1 字节 Byte SMALLINT 2 字节 Short INT 4字节 Integer BIGINT 8 字节 Long FLOAT(M, D) 4 字节 单精度,M 指定长度, D 指定 小数位数。会发生精度丢失 Float DOUBLE(M, D) 8字节 Double DECIMAL(M, D) M/D最大值+2 双精度,M 指定长度, D 表示 小数点位数。精确数值 BigDecimal NUMERIC(M, D) M/D最大 值+2 和DECIMAL 一样 BigDecimal 扩展知识: 数值类型可以指定为无符号( unsigned ),表示不取负数。 1 字节( bytes ) = 8bit 。 对于整型类型的范围: 1. 有符号范围: -2^ (类型字节数 *8-1 )到 2^ (类型字节数 *8-1 ) -1 ,如 int 是 4 字节,就 是 -2^31 到 2^31-1 2. 无符号范围: 0 到 2^ (类型字节数 *8 ) -1 ,如 int 就是 2^32-1 尽量不使用 unsigned ,对于 int 类型可能存放不下的数据, int unsigned 同样可能存放不下,与其 如此,还不如设计时,将 int 类型提升为 bigint 类型。字符串类型:
数据类型 | 大小 |
说明 | 对应java类型 | 对应C类型 |
VARCHAR (SIZE) | 0-65,535 字节 | 可变长度字符串 | String | char[] |
TEXT | 0-65,535 字节 | 长文本数据 | String | char[] |
MEDIUMTEXT | 0-16777215字节 | 中等长度文本数据 | String | char[] |
BLOB | 0-65,535 字节 | 二进制形式的长文本数据 | byte[] | char[] |
LONGTEXT | 0-4294967295字节 | 极大文本数据 | String | char[] |
日期类型:
数据类型 | 大小 | 说明 | 对应Java类型 |
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区检索及转换 | java.util.Date、 java.sql.Timestamp |
TIMESTAMP | 4字节 | 范围从 1970 到 2038 年,自动检索当前时 区并进行转换。 | java.util.Date 、 java.sql.Timestamp |
表的操作用法
1.创建表的语法:
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ); 可以使用 comment 增加字段说明。2. 查询所有的表名:
show tables;
3. 查询表结构:
desc table_name;
key:表示索引;Default:表示默认值;
查询表的所有信息:
方式一:show create table 表名;
方法二:show full columns from 表名;
4.删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... -- 删除 stu_test 表 drop table stu_test; -- 如果存在 stu_test 表,则删除 stu_test 表 drop table if exists stu_test删除多张表
语法:drop table 表一,表二;
5.修改表结构
添加字段
语法:alter table 表名 add column 列名 列类型 [comment 备注信息];
删除字段
语法: alter table 表名 drop column 列名;(删除列的时候,这一列所对应的所有数据也全部删除)
修改字段
语法:alter table 表名 change 原字段名 新字段名 类型 [约束]; (修改字段不会对此字段的原有数据造成任何影响)
修改表名
语法:alter table 旧表名 rename 新表名;
修改表的编码格式
语法:alter table table_name convert to character set utf8mb4;
注意:一张表里面不能出现两个相同字段名,一个数据库里面不能创建两个相同名称的表。
更多推荐
全网最全MySQL数据库基础1
发布评论