一、数据库简介
1. 概念
以一定格式进行组织的数据的集合;具有特殊格式的数据文件的集合;
2. 特点
- 持久化存储
- 读写速度高
- 保证数据的有效性
- 对程序支持性非常好,容易扩展
3. 数据库分类及特点
1. 关系型数据库
2. 非关系型数据库(Not Only SQL)
4. 数据库管理系统(DBMS)
5. mysql环境搭建
### 1. 安装服务端
sudo apt-get install mysql-server
### 2. 启动服务
sudo service mysql start
# 关闭服务
sudo service mysql stop
### 3. 查看进程中是否存在mysql服务
ps ajx|grep mysql
### 4.客户端安装
sudo apt-get install mysql-client
### 5. 链接命令
mysql -uroot -pmysql
### 6. 退出链接
exit 或者 quit
6. mysql配置文件
7. Navicat使用
- 介绍
二、mysql
1. 数据类型(数值/日期/字符串)
1. 整型
2. 浮点型
float: 单精度,6位有效 double: 双精度,16位有效 decimal: 定点数,decimal(5,2),五位数字,两位小数
3. 字符串
4. text
5. 枚举类型 enum
- 语法定义:gender enum(‘男’,’女’,’妖’)
- 应用场景:当值是几个固定可选时,比如:性别、星期、月份、表示状态时(比如:是、否)
6. 时间类型
2. 数据完整性
- 数据完整性用于保证数据的正确性。系统在更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件。
- 参照完整性:参照完整性属于表间规则。在更新、插入或者删除记录时,如果只改其一,就会影响数据的完整性。如删除表2的某记录后,表1的相应记录未删除,致使这些记录成为孤立记录。
3. 约束
4. 登陆和退出数据库命令
-- 链接数据库
mysql -uroot -pmysql
-- 不显示密码
mysql -uroot -p
-- 退出
quit/ exit/ ctrl+d
-- 显示数据库版本
select version();
-- 显示时间
select now();
-- 行首
ctrl + a
-- 行尾
ctrl + e
-- 清除命令
ctrl + w
5. 创建/删除数据库
-- 查看当前使用的数据库
select database();
-- 查看所有数据库
show databases;
-- 创建数据库
create database student charset=utf8;
-- 使用数据库
use student;
-- 查看创建数据库的语句(查看字符集)
show create database student;
-- 删除数据库
drop database student;
6. 查看表结构
7. 创建表
-- create table 表名(字段 类型 约束,……)
create table student(
id int unsigned primary key auto_increment not null comment '学生编号',
name varchar(20) not null comment '姓名',
age int unsigned default 0 comment '年龄',
high decimal(5,2) comment '身高' ,
gender enum('男','女') comment '性别' ,
cls_id int unsigned comment '班级编号',
id_card varchar(20) unique key not null comment '身份证号',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP() comment '创建时间'
)ENGINE=InnoDB DEFAULT charset=utf8 comment='学生表';
--查看当前库下所有表
show tables;
-- 查看创建数据库的语句
show create database student;
-- 查看表结构
desc student;
8. 修改表结构
-- 添加字段
alter table student add jixiangwu varshar(30);
-- 修改字段名
alter table student change jixiangwu maxcot varshar(30);
-- 修改约束
alter table student modify maxcot varshar(20);
-- 删除字段
alter table student drop maxcot ;
-- 删除表
drop table student;
9. 插入数据
-- 完整插入 id=0为默认占位
insert into student values(0, 'adu', 18, 166.66, '女',10, '23232323', '2021-01-19 10:00:00');
-- 部分插入
insert into student(name,age,high,gender,cls_id,id_card) values('lala', 18, 166.66, '男',18, '23232323');
-- 多条插入
insert into student values(0, 'adu', 18, 166.66, '女',10, '23232324', '2021-01-19 10:00:00'),(0, 'adu11', 18, 166.66, '女',10, '24242424', '2021-01-19 11:00:00');
10. 查询/修改表数据
-- 全部修改
update student set gender='女';
-- 按照条件修改
update student set gender='男' where id = 5;
-- 条件查询
select name,age from student where id = 6;
-- 起别名
select name as '名字',age as '年龄' from student;
11. 删除数据
-- 物理删除
delete from student where id=4 and name='lala';
-- 逻辑删除,用一个字段表示,这条信息是否已经不能再使用了
alter table student add is_delete bit default 0;
update student set is_delete = 1 where id = 1 ;