数据库 MySQL入门(基本的增删改查)

Posted WhiteShirtI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库 MySQL入门(基本的增删改查)相关的知识,希望对你有一定的参考价值。

mysql属于关系型数据

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
常见数据库:MySQL,Oracle等
优点
1、易于维护:都是使用表结构,格式一致
2、使用方便:SQL语言通用,可用于复杂查询
3、复杂操作:支持SQL,可用于一个表以及多个表之间复杂的查询
缺点
1、读写性能比较差,尤其是海量数据的高效率读写
2、固定的表结构,灵活度稍欠
3、对于传统关系型数据库来说,在高并发读写需求下,硬盘I/O是一个很大的瓶颈

非关系型数据库严格上是一种数据结构化存储方法的集合,可以是文档或者键值对等
常见数据库:NoSQL,redis,mongodb等
优点
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:非关系型数据库l可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:非关系型数据库部署简单,基本都是开源软件
缺点
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠

注意事项

  1. 每一条数据库操作语句都以;结尾,因为mysql支持换行操作
  2. mysql数据库中对大小写不敏感
  3. 创建的库、表、字段名都不能以数字开头,且都应该避免与关键字的冲突,如果非要使用,可以用两个反引号 `` 将名字括起来

库的操作

1)查看mysql数据库所有的库

show databases;

2)创建一个数据库

//db_test为库名
create database db_test;
//创建数据库之前可以判断库名是否存在
//存在就不创建,不存在则创建
create database if not exists db_test;

3)删除一个数据库

//db_test为库名
 drop database db_test;

4)选择你要使用的数据库

use db_test

5)查看当前所使用的数据库

select database();

mysql中的常用的数据类型

数值类型

数据类型大小备注
INT4字节整形
DECIMAL(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数,整数部分长度M-D,小数部分如果超过D会保留D位小数

字符串类型

数据类型大小备注
VARCHAR(SIZE)0~65535字节可变长度字符串string
TEXT0~65535字节长文本数据string

日期类型

数据类型大小备注
DATETIME8字节范围从1000到9999年,不会进行时区的检索及转换
TIMESTAMP4字节范围从1970到2038年,自动检索当前时区并进行转换

表的操作

1)查看库中的所有表

show tables;

2)创建一个表

CREATE TABLE table_name (
 //属性名在前 属性类型名在后
 field1 datatype,
 field2 datatype,
 field3 datatype
);

//tb_stu为表名
create table tb_stu(
	id int,
	name varchar(32),
	age int,
	chinese decimal(3,1),
	math decimal(3,1),
	birth datetime
);
//也可以先判断库中是否存在同名的表
//存在则不创建,不存在再创建
create table if not exists tb_stu(
 ...
 );

3)查看表的结构

desc tb_stu;

4)删除一个表

drop table tb_stu;

增删改查(CRUD)

一)添加数据 insert

1、指定列的插入

//[]中的命令可忽略
insert [into] tb_stu(id, name, age, chinese, math, birth) 
values(1, "WhiteShirtI", 22, 90.6, 95.5, "1999-09-23 12:12:12");

2、全列插入

//插入的数据要与表中字段的顺序相同
insert tb_stu 
values(2, "ChenHuanGuang", 22, 92.6, 96.5, "1999-09-23 12:12:12");

3、多行插入

insert tb_stu 
values(3, "NiuYaNan", 22, 99.5, 92.5, "1999-12-12 12:12:12"),
(4, "KeLe", 5, 35.6, 59.9, now());

二)查询数据 select

1、全列查询

select * from tb_stu;

2、指定列查询

select name, age from tb_stu;

3、排序查询

//默认是升序排序
//将数学成绩由低到高排序并输出
select * from tb_stu order by math [asc];
//将数学成绩由高到低排序并输出
select * from tb_stu order by math desc;

//多列排序-在第一列相同的情况下针对第二列进行排序
//将语文成绩由高到低排序并输出
//如果语文成绩相同,则将相同的字段按数学成绩由低到高排序
select * from tb_stu order by chinese desc, math asc;

4、分页查询(通常搭配排序一起使用)

//查询前两条数据
select * from tb_stu limit 2;
//查询表中数学成绩最低的两门同学
select * from tb_stu order by math limit 2; 
//按数学成绩由低到高中第2位同学开始,数学成绩最低的1名同学
select * from tb_stu order by math limit 1 offset 1;
//每页显示10条数据,如何查询第五页的数据
select * from tb_stu limit 10 offset 50;//50是10*5得来的

5、查询字段为表达式

//查询每个人的总分
select name,  chinese + math from tb_stu;
//修改字段的别名
select *, chinese + math sum  from tb_stu;

6、去重查询

//根据某个字段进行去重,查看去重后这个字段的数据
select distinct birth from tb_stu;

7、条件查询 where

比较运算符说明
>,>=,<,<=大于,大于等于, 小于,小于等于
=等于,用于判断数据是否相同(存在的前提下)
<=>等于,判断字段数据是否为NULL
!=, <>不等于
IS NULL查询某字段为NULL的字段
IS NOT NULL查询某字段不为NULL的字段
IN查询指定字段中符合要求的记录
BETWEEN…AND…查询某个字段在结余两个值之间的记录
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
//查询id大于3的记录
select * from tb_stu where id > 3;
//查询id不等于3的记录
select * from tb_stu where id <> 3;
select * from tb_stu where id != 3;
//查询数学成绩不为NULL的记录
select * from tb_stu where math IS NOT NULL;
//查询年龄为22和5的记录
select * from tb_stu where age IN(22,5);
//查询数学成绩在55-95之间的记录
select * from tb_stu where math BETWEEN 55 AND 95;
//查询名字含有a的记录
select * from tb_stu where name like "%a%";
//查询名字以c开头的记录
select * from tb_stu where name like "c%";
逻辑运算符说明
AND
OR
NOT
//查询数学成绩在55-95之间的记录
select * from tb_stu where (math>55 AND math<95);
//查询数学成绩或者语文成绩在95分以上的记录
select * from tb_stu where (math>95 OR chinese>95);
//查询成绩低于60分的记录
mysql> select * from tb_stu where NOT math>60;

三)修改数据 update

修改通常搭配条件where来使用

//修改id为3的记录,将其年龄改为18
update tb_stu set age=18 where id = 3;

四)删除数据 delete

删除通常搭配条件where来使用

//删除年龄为1的记录
delete from tb_stu where age = 1;

推荐阅读

数据库 MySQL进阶(复杂的增删改查)

以上是关于数据库 MySQL入门(基本的增删改查)的主要内容,如果未能解决你的问题,请参考以下文章

mysql的增删改查语句

Mysql入门-对表数据的增删改查

mysql操作入门基础之对数据库和表的增删改查

mysql 的增删改查 实现代码

MySQL数据库系统基本的增删改查

Mysql的基本操作(增删改查)