1.数据库分类
1)关系型数据库
特点:有约束,是基于硬盘存储的
关系型数据库有 mysql oracle sqlserver sqllite db2
2)非关系型数据库
特点: 没有约束,是基于内存存储的
非关系型数据库有:Memcache,redis,mongodb
2.mysql的架构
客户端: socket客户端连接服务器,发送指令(sql语句)
服务端:socket服务端,接收客户端的指令,并将结果返回给客户端
3.数据库的操作
1.数据库:
增:create dabase 数据库名称
删:drop database 数据库名称
查 :show databases;
选择用:use 数据名称
show tables;查看数据表
2.数据表:
增: create table 表名(
列名 属性
)engine-innnodb charset=utf8;
删: drop table 表名;
修改字段: alter table 表名 change 原列名 新列名 not null default ' ';
新增字段: alter table 表名 add 新列名 char(32) not null default ' ';
新增外键:alter table 表名 add constraint 外键名称 foreign key (id) references 表名;
删除字段: alter table 表名 drop 列名
查: select 列名 from 表名
3.数据行:
增: insert into 表名 (列名) values(列名值); 列名值一定要跟列名一一对应
删: delete from 表名 where id = 表id 将表中的数据删除后id会续上一个id,delete是一行一行的删
truncate 表名; 将表中所有的数据全部删除,再次添加的时候,id会重新开始,truncate是一次性全部删除,效率高
改: update 表名 set 列名= 列名值;
查: select 列名, 列名, 列名 from t3 : 将某一列的值查出
4.外键: constraint 外键名 foreign key(列名) references 表名 (关联的id)
5.主键和其它参数:
primary key: 主键索引
auto_increment:自增
not null :不为空
default : 默认值
7.列表类型:
数值型:
tyinyint:有符号: -128到 127
无符号:0到255 unsigned
mediumint:有符号: --8388608到 8388607
无符号:0 到16777215 unsignd
int
bigint
float(M,D) 浮点型
decimal (M,D) 定点型 比float 更加的精准
M:小数点共多少位
D: 小数点后面几位
区别:取值范围不一样
smallint: 有符号: -32768到 32767
无符号: 0到65535 unsigned
字符串类型 :
char : 定长 char(32) 这一列就是32个字节 优点:查询速度快,缺点:浪费
varchar :变长,在指定的长度上继续扩充字节,优点:不浪费空间, 缺点:查询慢
text: 文本类型,用来存储超长的文本,一次可以存储几万文字
时间类型:
datetime:时间类型 推荐使用