需要提前下好数据库哦
什么是数据库?
数据库就是储存各种各样的数据仓库(注意mysql是一个数据库操作系统)
mysql会有各种的链接权限和各种内置操作函数
数据库分为:sql(关系型数据库), no sql(非关系型数据库)
其实就是一个关系模型(Excel 表格), 主要强调使用表格这类型的方式进行数据储存
元素:行,列,表,库
关系型数据库可以通过表与表进行关联
关系型数据库:mysql(免费开源的,中小型数据库),Oracle(大型数据库 linux, 要钱),SQL server(大型数据库, 微软开发,偏向windows平台, 要钱)
储存图像,音频,还有一些杂乱的大数据初始数据,(这种是很难建立一个标志的关系)
储存的格式:键值方式
非关系型数据库:Habase + hive(大数据用的),MongoDB,Redis。。。。。
描述一个事物的特征和属性(数字,文字,符号)
可以长期保存大量数据的仓库
是用户通过这个系统对数据库进行访问操作
比如mysql数据库就是一个mysql管理系统
SOL是结构化查询语句,用于储存,查询,更新操作管理关系型数据库的
sql关系型数据是很典型的交互基础
1.sql指令
DDL:数据定义语言(数据库用来创建,删除,修改表结构操作)
DQL:数据查询语言(对数据库表格查询)
DML:数据操作语言(对表中的数据进行增删改)
TCL: 事务控制语言(拥有管理数据事务) 一般DBA(数据管理员)
DCL: 数据控制语言(定义数据库的访问权限,安全级别)
# 单行注释
-- 两个横线,也是单行注释,注意--和注释之间必须要用空格
/*
多行注释
*/
# 注意我们的每条sql语句分号必须要有,也是必须要用到分号结尾,不能省略(和C++类似)
# sql是不区分大小写
# SHOW 展示
show databases;
mysql 这个数据库里面有user这个表,这是专门管理用户的密码,权限这数据
# 创建create
create database A1;
# 格式
create database 数据库名称;
show create database 数据库名称;
# CREATE DATABASE `A1` /*!40100 DEFAULT CHARACTER SET utf8 */
# 因为数据库的创建与我们无关
# 开发一般只有查询,增删改查的权限
use 数据库名;
select database();
drop database 数据库名;
1. char(n) : 最大储存255个字符,n是表示最大字符长度,char类型性能最好
2. varchar(n) : 最大储存65535字符
3.enum :枚举,单选, 性别 男,女
4.set 在数据中选择多个数据 多选
5.text 文本, 最大长度,理论无限长度
1. int(n) 储存整数,范围+-21亿以内,直接够用了;
2. float(m, d) 单精度,留存小数点后6(负数),7(正数)位(m: 表示数据的总长度,d表示小数后几位)
3. double(m,d) 双精度, 留存小数点后15位小数,(m: 表示数据的总长度,d表示小数后几位)
1 year:年
2.date: 日
2.time: 时分秒
4.datetime: 年月日时分秒
写入时间格式数据必须双引号包裹,本质还是字符串类型
格式:
create table 表名(
字段名 数据类型,
字段名 数据类型,
字段名 数据类型
);
# [Err] 1064 - You have an error in your SQL syntax;
# check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 11
create table xiaoheizi(
# tab键只是为了好看
# 代表列名的意思
name char(5),
# 单引号代表char类型,双引号代表varchar(string)类型
gender enum('男', '女'),
age int(3),
height float(5,2),
birthday datetime
);
# 拓展一下
create table xiaoheizi(
# tab键只是为了好看
# 代表列名的意思
name char(5),
# 单引号代表char类型,双引号代表字符串类型
gender enum('男', '女'),
age int(3),
height float(5,2),
birthday datetime
)engine = InnoDB default charset = utf8;
这段指定引擎和默认字符集的语句是用于定义数据库表的存储引擎和默认字符集。
- `engine = InnoDB`:这部分指定了表的存储引擎为 InnoDB。InnoDB 是 MySQL 中一种常用的存储引擎,它支持事务处理和行级锁定,适合处理大量的写操作和具有较高并发性的数据库。
- `default charset = utf8`:这部分指定了表的默认字符集为 utf8。字符集定义了数据库中可以存储的字符类型和编码规则。utf8 是一种通用的字符集,支持多种语言的字符存储,适合大多数情况下的数据库需求。
通过在创建表时指定存储引擎和字符集,您可以确保表在创建时使用特定的存储引擎和字符集。这有助于确保数据库的一致性和性能。
InnoDB 是 MySQL 中最常用的存储引擎之一,具有以下特点和优势:
事务支持:InnoDB 支持事务处理,可以确保数据的完整性和一致性。这意味着您可以使用事务来执行一系列操作,要么全部成功,要么全部失败,避免数据损坏或不一致。
行级锁定:InnoDB 使用行级锁定来处理并发访问,这意味着不同的事务可以同时访问表中的不同行,提高了并发性能和减少了锁定冲突。
外键约束:InnoDB 支持外键约束,可以确保数据的引用完整性,防止意外删除或修改关联数据。
支持热备份:InnoDB 支持在线热备份,可以在数据库运行时备份数据,减少了停机时间和数据丢失的风险。
崩溃恢复:InnoDB 具有崩溃恢复能力,可以在数据库异常关闭后自动进行恢复,保证数据的一致性。
自动增长:InnoDB 提供了自动增长功能,可以方便地管理自增字段,减少了手动管理的复杂性。
总的来说,InnoDB 是一个强大而稳定的存储引擎,适合需要事务支持、高并发性和数据完整性的应用场景。如果您有任何进一步的问题或需要更多信息,请随时告诉我。
# 如何添加一条完整的数据
# 储存图片地址
insert into 表名 values(数值1,....);
# 还可以插入多条数据
insert into 表名 values
(数值1.....),
(数值2.....),
(数值3....),
(数值4.....);
# insert 不能插入独立数据
insert into xiaoheizi VALUES
('徐凤年', '男', 28, 158.00, "2023-09-06 21:34:00"),
('长沙街道办', '男', 29, 200.00, "2023-09-06 21:38:00"),
("海绵宝宝", '女', 16, 155.00, "2023-09-06 21:40:00");