数据库(DB)存储和管理数据的仓库
数据库管理系统(DBMS):操纵和管理数据库的大型软件
SQL:操作关系数据库的编程语言,定义了一套操作关系数据库的统一标准
mysql -u用户 -p密码 -h主机 -P端口号
关系型数据库:
建立在关系模型基础上,由多张相互连接的二维表组成的数据库
优点:
使用表存储数据,格式统一、便于维护
SQL语句操作,标准统一,使用方便,可复杂查询
大小写敏感问题:
内容 | 默认是否区分大小写 | 说明 |
---|---|---|
表名 | Windows:否,Linux:是 | 取决于 lower_case_table_names |
列名 | 否 | SQL 规范 |
数据库名 | 同上 | 同上 |
别名/函数名 | 否 | SQL 规范 |
字段内容 | 视 collation | ci 表示不区分,bin 表示区分 |
SQL通用语法:
可单行和多行书写,一分号结尾
可以使用空分、缩进增强语句可读性
MYSQL不区分大小写
注释:
-- 你好
#你好
/*你好*/
拿到产品经理的需求原型
1.数据库设计:概要设计、详细设计、接口设计、数据库设计
2.数据库操作:实现功能
3.数据库优化:很重要一部分是数据库优化
数据定义语言,用来定义数据库对象(数据库,表,字段)
数据库操作
查询:
show databases
select databases()
使用:
use 数据库名
创建:
create database [if not exists] 名字
删除:
drop database [if exists] 数据库名
小点:database 可以替换为 schema
mysql图像化管理工具
DataGrip
表操作
创建:
create table 表明(字段1 字段类型 [约束] [comment 字段1注释],…)
[comment 标注释]
约束 | 描述 | 关键字 |
---|---|---|
非空约束 | 限制字段不为空 | not null |
唯一约束 | 保证字段数据唯一,不重复 | unique |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | primary key(auto_increment自增) |
默认约束 | 未指定字段值,则采用默认值 | default |
外键约束 | 让两张表建立连接,保证数据的一致性和完整性 | foreign key |
数据类型中的小点
默认有符号
unsigned 变为无符号
浮点型要指定数字长度以及小数位数
如:float(5,2)
char 定长字符串,0-255字节 (性能高)
char(10) //最多存储10个字符,不足10个也会占用10个,超过报错
varchar 变长字符串 0-65535字节(空间好)
varchar //最多存储10个字符,不足10个按实际长度,超过报错
date:YYYY-MM-DD
time:HH:MM:SS
year:YYYY
dateTime:date+time
timestamp:时间戳
创建表一般在添加需要的字段外
添加基础字段
id、create_time、update_time
查询当前数据库所有表:show tables
查询表结构:desc 表名
查询建表语句:show create table 表名
添加字段:alter table 表名 add 字段名 类型 [comment 注释] [约束]
修改字段类型:alter table 表名 modify 字段名 新数据类型
修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型
删除字段:alter table 表名 drop column 字段名
rename table 表名 to 新表名
drop table if exists 表名
数据库操作语言,用来对数据库表中的数据进行增删改
指定字段添加数据:
insert into 表名(字段1,字段2) values(值1,值2)
全部字段添加数据:
insert into 表名 values(值1,值2,…)
批量添加数据(指定字段):
insert into 表名(字段1,字段2) values(值1,值2),(值1,值2)
批量添加数据(全部字段):
insert into 表名 values(值1,值2,…),(值1,值2,…)
拿取当前时间:now()
字符串和时间要加引号(一般用’')
修改数据:
update 表名 set 字段名1=值1,字段名2=值2,… [where 条件]
没有where条件会更新整张表的字段数据
删除数据:
delete from 表名 [where 条件]