MySQL数据库-基础

目录

数据类型

约束

数据库操作

查看所有数据库

使用数据库

查看当前使用的数据库

创建数据库

删除数据库

数据表操作

查看当前数据库中所有表

查看表结构

 查看表的创建语句

创建表

修改表

删除表

增删改查

查询

查询所有列

查询指定列

消除重复行

 条件查询

  比较运算符

 逻辑运算符

 模糊查询

范围查询

 空判断

增加

 全列插入

部分列插入

全列多行插入

修改


  •  MySQL 是一种常见的关系型数据库管理系统(RDBMS),它被广泛用于开发 Web 应用程序和其他类型的软件。
  • 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中。
  • 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。

数据类型

  • 常用数据类型如下:

  • 数:intbit

  • 小数:decima

  • 字符串: varchar,char

  • 日期时间: date, time, datetime

  • 枚举类型: enum

  • 特别说明的类型如下

  • decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位

  • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '

  • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'

  • 字符串text表示存储大文本,当字符大于4000时推荐使用

  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径

约束

  • 主键primary key:物理上存储的顺序

  • 非空not null:此字段不允许填写空值

  • 惟一unique:此字段的值不允许重复

  • 默认default:当不填写此值时会使用默认值,如果填写时以填写为准

  • 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常

数据库操作

查看所有数据库
show databases;
使用数据库
use 数据库名;
查看当前使用的数据库
select database();
创建数据库
create database 数据库名 charset=utf8;
删除数据库
drop database 数据库名;

数据表操作

查看当前数据库中所有表
show tables;
查看表结构
desc 表名;
 查看表的创建语句
show create table 表名;
show create table classes;
创建表
/*auto_increment表示自动增长*/
CREATE TABLE table_name(
    column1 datatype contrai,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
    PRIMARY KEY(one or more columns)
);
/*创建班级表 */
create table classes(
    id int unsigned auto_increment primary key not null,
    name varchar(10)
);
/*创建学生表*/

create table students(
    id int unsigned primary key auto_increment not null,
    name varchar(20) default '',
    age tinyint unsigned default 0,
    height decimal(5,2),
    gender enum('男','女'),
    cls_id int unsigned default 0
)
修改表
/*添加字段*/
alter table 表名 add 列名 类型;
/*example*/
alter table students add birthday datetime;

/*重命名版*/
alter table 表名 change 原名 新名 类型及约束;
/*example*/
alter table students change birthday birth datetime not null;

/*不重命名版*/
alter table 表名 modify 列名 类型及约束;
/*example*/
alter table students modify birth date not null;

删除表
drop table 表名;
/*example*/
drop table students;

增删改查

查询
查询所有列
select * from 表名;
/*example*/
select * from classes;
查询指定列
/*可以使用as为列或表指定别名*/
select 列1,列2,... from 表名;
/*example*/
select id,name from classes;
消除重复行
select distinct 列1,... from 表名;
/*example*/
select distinct gender from students;
 条件查询
select * from 表名 where 条件;
/*example*/
select * from students where id=1;
  比较运算符

=:等于运算符用于比较两个表达式是否相等

/*查询编号大于3的学生*/
select * from students where id=1;

 <> 或 !=:不等于运算符用于比较两个表达式是否不相等

/*查询姓名不是"张三"的学生*/
select * from students where name != '张三';

<:大于和小于运算符用于比较两个表达式的大小关系。 

/*查询编号不小于4的学生*/
select * from students where id <4;

<=:大于等于和小于等于运算符用于比较两个表达式的大小关系

/*查询编号不小于等于4的学生*/
select * from students where id <=4;

 is_delete:用于表示记录是否被删除的布尔类型字段(通常取值为 0 或 1)

/*查询编号小于4或没被删除的学生*/
select * from students where id < 4 or is_delete=0;
 逻辑运算符

AND:AND运算符用于组合两个或多个条件表达式,只有当所有表达式都为真时,AND 运算符返回真。

/*查询编号大于4的男同学*/
select * from students where id > 4 and gender=1;

 OR:OR运算符用于组合两个或多个条件表达式,只要有一个表达式为真,OR运算符就返回真

/*查询编号小于6或没被删除的学生*/
select * from students where id < 6 or is_delete=0;

 NOT运算符用于反转一个条件表达式的值,如果表达式为真,则 NOT 返回假;如果表达 式为假,则 NOT 返回真。

/*查询姓名不叫张三的学生*/
SELECT * FROM students where not name = '张三';
 模糊查询

 BETWEEN:BETWEEN 运算符用于测试一个值是否在指定范围内。例如,下面的查询将返回年龄在 30 到 40 岁之间的记录:

 LIKE:LIKE 运算符用于测试一个值是否与指定的模式匹配。模式可以包含通配符 % 或 ,其中 % 表示零个或多个字符, 表示一个任意字符。

/*查询姓张的学生*/
select * from students where name like '张%';

/*查询姓张并且“名”是一个字的学生*/
select * from students where name like '张_';

/*查询姓张或叫强的学生*/
select * from students where name like '张%' or name like '%强';
范围查询

in: 表示在一个非连续的范围内

/*查询编号是1或3或8的学生*/
select * from students where id in(1,3,8);

 between ... and ... : 表示在一个连续的范围内  

/*查询编号为3至8的学生*/
select * from students where id between 3 and 8;

/*查询编号是3至8的男生*/
 select * from students where (id between 3 and 8) and gender=1;
 空判断

is null :判空

/*查询没有填写身高的学生*/
select * from students where height is null;

is not null : 判非空

/*查询填写身高的学生*/
select * from students where height is not null;

优先级: 

  • 优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符

  • and比or先运算,如果同时出现并希望先算or,需要结合()使用

增加

格式: INSERT [INTO] tb_name [(col_name,...)] {VALUES | VALUE} ({expr |

DEFAULT },...),(...),...

  • 说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准。

 全列插入

值的顺序与表中字段的顺序对应,一次可以向表中插入一行数据。

/*全列插入:值的顺序与表中字段的顺序对应*/
/*一次可以向表中插入一行数据*/
insert into 表名 values(...)
/*example*/
insert into students values(0,'张三',1,'北京','2020-12-26');
部分列插入

值的顺序与给出的列顺序对应。

/*部分列插入:值的顺序与给出的列顺序对应*/
insert into 表名(列1,...) values(值1,...)
/*example*/
insert into students(name,hometown,birthday) values('张三','北京','2020-12-26');
全列多行插入

值的顺序与给出的列顺序对应,一次性插入多行数据。

/*全列多行插入:值的顺序与给出的列顺序对应*/
/*一次性插入多行数据*/
insert into 表名 values(...),(...)...;
/*example*/
insert into classes values(0,'python'),(0,'java').(0,'web开发');

insert into 表名(列1,...) values(值1,...),(值1,...)...;
/*example*/
insert into students(name) values('张三'),('李四'),('王五');
修改

格式: UPDATE tb_name SET col1={expr1|DEFAULT} [,col2={expr2|default}]...[where 条件判断]

update 表名 set 列1=值1,列2=值2... where 条件
/*example*/
update students set gender=0,hometown='北京' where id=5;

逻辑删除,本质就是修改操作

update students set isdelete=1 where id=1;

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值