mysql基础(一)

概念、建库、建表、增删改

Posted by 新宇 on January 19, 2020

一、数据库简介

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使用

  1. 介绍

二、mysql

1. 数据类型(数值/日期/字符串)

1. 整型

2. 浮点型

float: 单精度,6位有效 double: 双精度,16位有效 decimal: 定点数,decimal(5,2),五位数字,两位小数

3. 字符串

4. text

5. 枚举类型 enum

  1. 语法定义:gender enum(‘男’,’女’,’妖’)
  2. 应用场景:当值是几个固定可选时,比如:性别、星期、月份、表示状态时(比如:是、否)

6. 时间类型

2. 数据完整性

  1. 数据完整性用于保证数据的正确性。系统在更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件。
  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 ;