1、数据库介绍、建表、范式
1.1 数据库介绍
数据库是“按照数据结构来组织、存储、管理数据的仓库”。是一个长期存储在计算机内的有组织的、可共享的、统一管理的大量数据的集合
数据库的由来: 规范化本地存储、加密、共享。
数据库分类:
1、关系数据库: 其实是二维表,典型代表mysql、oracle、SQL Server。是一种m:n、多对多的关系
2、非关系型数据库:也叫Nosql,是一维映射 key-value 典型代表: redis , MOngoDB。
数据类型介绍
字符串类型:
CHAR: 如果是CHAR(45),一定会占45个字节,如果存“hello”,存的结果就是’hello000000....“。
VARCHAR: VARCHAR(45)是可变长度,最大长度是45,如果存”hello“,那么存的就是”hello“。存中文的话,就是多字节,一个字符占用一个字节,最多可以存8千个字符,就是可以存8千字符。
NVACHAR:存中文的话就是unicode编码,宽字节,一个字符占用的是两个字节,最多可以存8千个字节,就是可以存4000个字符。
BIGININT: 64位整型
INT:32位整型
FLOAT:浮点型
DOUBLE: 精确度比较高的小数
其他类型:
DATATIME: 日期时间
TIME: 时间
ENUM: 枚举类型
建表约束: 主键:primary key, 只能一列是主键列,数据不能重复,不能为空 唯一: unique ,每个表中可以有多列是唯一列,数据不能重复,可以为空 默认值:default 非空: not null 自增: auto_increment 外键约束:
1、授予、取消临时权限 grant/ revoke
授予临时权限
#grant 权限名字 on 表名 to 用户名
grant insert on test to 20220919test;
取消临时权限
#revoke 权限名字 on 表名 from 用户名
revoke insert on test from 20220919test;
2、创建表 create
create table 表名(列名1 数据类型 建表约束,列名2 数据类型 建表约束2,.........)
create table test (id int primary key auto_increment,
name varchar(45) not null,
sex enum('男','女'),
age int default 18); #默认年龄18
3、修改表 alter
3.1 增加列 add
alter table 表名 add column 列名 数据类型 约束
alter table test add column school int;
3.2 修改列的属性
alter table 表名 modify 列名 数据类型 约束
alter table test modify school varchar(45);
3.3 删除列 drop
alter table 表名 drop 列名
alter table test drop school;
3.4 删除表 drop
drop table 表名
drop table test;
3.5 插入数据 insert into
insert into 表名 values(值1,值2,.......); #按照建表的列顺序插入数据 不能有空列不插入
insert into 表名 (列名1,列名2,......) values(值1,值2,....); #指定列插入数据
insert into test values(1,'zys','男',25);
insert into test (name, sex) valuse('张三','男');
insert into test (name, sex) valuse('李四','女');
insert into test (name, sex) valuse('王五','男');
insert into test (name, sex) valuse('赵六','女');
4、修改数据 update ... set...
update 表名 set 列名 = 值 where 条件;
update test set age = 28 where name = 'zys';
5、删除数据 delete
delete from 表名 where 条件;
delete from test where id = 4;