一.初识数据库
数据库总览
- 关系型数据库(SQL)
MySQL、Oracle、SQL Server、SQLite、DB2 - 非关系型数据库(NOSQL)
Redis、MongoDB
MySQL的运行机制
结构化查询语句分类
数值类型分类
字符串类型
日期与时间数值类型
数据字段属性
- UNSIGNED/unsigned //无符号类型,声明该数据列不允许为负数
- ZEROFILL/zerofill //不足位数的由0填充,例如int(3),5则为005
- AUTO_INCREMENT/auto_increment //自动增长,没增加一条数据,自动在记录上加一,通常设置在主键且位整数类型
- NULL/NOT NULL //null代表如果无值则为NULL ,如果是NOT NULL 则不允许为空
- DEFAULT //用于设置默认值
- COMMENT //表示注释
- PRIMARY KEY //设置为主键
数据表的类型
- MySQL的数据表的类型
MyISAM、InnoDB 、HEAP、BOB、CSV等 - 常见的MyISAM与InnoDB类型
- 使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表
MySQL基础操作命令
MySQL登录命令
- mysql -h 服务器主机地址 –u 用户名 -p用户密码
库的相关操作命令
- create database [if not exists] 库名; //创建新库
- use 库名 //使用库
- drop database if existse 库名; //删除指定库
- show databases; //查看当前所有库
- update user set pasaword=password(新密码)//修改密码
where user=‘用户名’;
flush privileges;
表的相关操作命令
- desc 表名; //查看的表的属性结构
- drop tables 表名; //删除指定表
- create table 表名; //创建新表
- show create table 表明; //查看建表语句
- select * from 表名; //查看指定表种的所有数据
- create table 新建表名 as select * from 待复制表名 where 1=0;//复制指定表的数据结构,并不复制其中的内容,where是判断语句后面的1=0的结果是false就会执行
修改表的相关操作命令
- alter table 旧表名 rename as 新表名; //修改表名
- alter table 表名 add 字段名 类型 属性; //添加字段
- alter table 表名 modify 字段名 类型 属性; //修改字段
alter table 表名 change 旧字段名 新字段名 类型 属性; - alter table 表名 drop 字段名; //删除指定字段
- alter table 表名 drop foreign key 外键名;//删除外键
修改表中数据的相关操作
- update 表名 set 字段=‘修改的数据’,字段2=‘修改的数据’… where 判断条件;//在指定相关条件下修改指定数据
- update 表名 set 字段=concat(‘数据’,字段) ;//将字段的所有数据前都追加上指定数据内容
- delete from 表名 where 指定条件 ;//删除指定条件下的数据
- 注意:使用delete删除数据,自增值依然会从原来的基础上增加,但同样适用delete from清空表数据,重启数据库服务后,对于INNODB的表, 自增列从初始值重新开始,而MYISAM类型的表,自增列依然从上一个自增数据基础上开始,原因是INNODB表的自增记录保存在内存中,而MYISAM保存在文件中,所有重启后,INNODB新增数据会从0开始增加
- truncate table 表名; //清空表中所有数据,保留表的数据结构并且将自增字段重新归零
where语句的用法
- where语句为条件语句
- 示例一:
select * from 表名 where 主键 between 3 and 10;//显示指定表中主键值为3-10直接的所有数据 - 示例二:
update 表名 set 字段=字段*2 where 字段>60 and 字段2>2;//修改字段数据为乘2,条件为字段大于60,且字段2大于2