数据库(黑马程序员第六天)

数据库(DB)存储和管理数据的仓库
数据库管理系统(DBMS):操纵和管理数据库的大型软件
SQL:操作关系数据库的编程语言,定义了一套操作关系数据库的统一标准

MySQL概述

mysql -u用户 -p密码 -h主机 -P端口号

关系型数据库:
建立在关系模型基础上,由多张相互连接的二维表组成的数据库

优点:
使用表存储数据,格式统一、便于维护
SQL语句操作,标准统一,使用方便,可复杂查询

大小写敏感问题:

内容 默认是否区分大小写 说明
表名 Windows:否,Linux:是 取决于 lower_case_table_names
列名 SQL 规范
数据库名 同上 同上
别名/函数名 SQL 规范
字段内容 视 collation ci 表示不区分,bin 表示区分

SQL通用语法:

可单行和多行书写,一分号结尾

可以使用空分、缩进增强语句可读性

MYSQL不区分大小写

注释:

-- 你好
#你好
/*你好*/

开发步骤

拿到产品经理的需求原型
1.数据库设计:概要设计、详细设计、接口设计、数据库设计
2.数据库操作:实现功能
3.数据库优化:很重要一部分是数据库优化

数据库设计-DDL

数据定义语言,用来定义数据库对象(数据库,表,字段)
数据库操作
查询:
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 表名

数据库操作-DML

数据库操作语言,用来对数据库表中的数据进行增删改

添加数据(insert)

指定字段添加数据:
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)

修改数据:
update 表名 set 字段名1=值1,字段名2=值2,… [where 条件]

没有where条件会更新整张表的字段数据

删除数据(delete)

删除数据:
delete from 表名 [where 条件]

你可能感兴趣的:(数据库)