———————————————————————————————————————————
数据库中的数据它也是分数据类型的
具体作出如下划分:[常用的数据类型]
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间:date,time,datetime
枚举类型:enmu
数据类型说明:
decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位。
char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab[ ]',3表示字符数。
(为了表示空格所以用了"[ ]"符号)。
varchar表示可变长的字符串,如varchar(3),填充'ab'时就会存储'ab',3表示字符数。
对于图片、音频、视频等文件,不会存储在数据库中。
而是上传到某个服务器上,然后表示存储在这个文件的保存路径。
字符串text表示存储文本,当字符串大于4000时推荐使用,比如技术博客。
---------------------------------------------------------------------------------------------------------------------------------
数据约束
字符串里面必须规定一个主键,如果说没有规定主键,那么就可能会报错,甚至会无法保存数据。
———————————————————————————————————————————
———————————————————————————————————————————
———————————————————————————————————————————
接下来就是数据库的基本操作了:
创建数据库:create database 数据库名; (SQL语句末尾的分号必须是英文的)
效果如下:
新数据库zmy就创建好了。
如何使用呢?
SQL语句:use 数据库名;
那么,现在我们在数据库中新建表格,插入字段名id,设置为int类型,无符号范围。
SQL语句如下:
效果如下:
表格student已经建好了。之后点开student表格:
字段名 id也创建好了。
查看当前使用的数据库:select database( );
删除数据库:drop database 数据库名; [慎用,因为这个命令会将要删除的数据库连同里面包含的数据一同删除]
数据库zmy已被删除…
查看数据库的表
我们继续操作:
结果:
鼠标右键点击student表,点击设计表。
接着就可以设计表格的具体数据内容了。
查看表结构:desc
添加字段:birthday
SQL语句:ALTER TABLE students ADD birthday datatime;
效果:
验证查看:DESC students;
修改字段名的数据约束:alter table students modify birthday not null;
修改字段名:alter table student change birthday birth datetime not null;
删除表内的字段名:ALTER TABLE students DROP birth;
再去查看字段表里面的数据,我们看到birth字段被删除了。
另外,我们也可以去查看创建表的SQL语句。
show create table students;
CREATE TABLE `students` (
`id` int unsigned NOT NULL,
`name` varchar(20) NOT NULL,
`age` tinyint unsigned DEFAULT '0',
`height` decimal(5,2) DEFAULT NULL,
`gender` enum('男','女') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
(因为Navicat显示的结果不全,所以复制粘贴到这里)
当然还有查看创建数据库的SQL语句。
show create database test;
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
删除表;
drop table students;(注意:students是表名)
刷新表之后:students表被删除了。
查询数据库里面的数据。
select*from student;
这里面是提前写好的数据。
我们再向student表中插入数据。
再去查询student表。
这就是我们新插入的数据了,这种数据插入方式叫做全列插入。
还有指定列插入:
我们规定了插入的数据值,那么没有规定插入的数据则默认为NULL。
---------------------------------------------------------------------------------------------------
修改字段信息的SQL语句。
这里做出对student表中id为10的小明的修改。
再去查询student表:
对比发现小明age由15改为了18。
—————————————————————————————————————————————————
删除数据:
再来查看student表。——>
看,id=11的李明被删除了。
但是,这种删除的方法是无法恢复的,所以请慎用。
—————————————————————————————————————————————————
查询编号大于3的学生。
SELECT*FROM student WHERE id>3;
查询编号不大于4的学生。
SELECT*FROM student WHERE id<4;
查询姓名不是黄蓉的学生。
SELECT*FROM student WHERE `name`!='黄蓉';
查询没被删除的学生。
SELECT*FROM student where isdelete = 0;
查询编号大于3的女同学。
SELECT*FROM student WHERE id>3 AND sex = '女';(性别字段也可以设置为gender)
查询编号小于4或没被删除的同学。
SELECT*FROM student WHERE id<4 OR isdelete = 0;
查询年龄不在10岁到15岁之间的学生。
SELECT*FROM student WHERE (age>=10 AND age<=15);
查询姓黄的学生。
SELECT*FROM student WHERE `name`LIKE '黄%';
查询姓黄并且名是一个字的学生。
SELECT*FROM student WHERE `name`LIKE '黄_';
查询姓黄或者叫靖的同学。
SELECT*FROM student WHERE `name`LIKE '黄%' OR `name` LIKE '%靖';
查询编号3至8的学生。
SELECT*FROM student WHERE id BETWEEN 3 AND 8;
查询编号不是3至8的男生。
SELECT*FROM student WHERE ( NOT id BETWEEN 3 AND 8) AND sex = '男';
查询编号是3,5,7的学生。
SELECT*FROM student WHERE id IN (3,5,7);
查询编号不是3,5,7的学生。
SELECT*FROM student WHERE (NOT id IN (3,5,7));
———————————————————————————————————————————
查询未删除的男生信息,按学号降序排序。
SELECT*FROM student WHERE isdelete = 0 and sex = '男' ORDER BY id DESC;
显示所有学生信息,先按照年龄从大到小排序,当年龄相同时,按身高从高到矮排序。
SELECT*FROM student ORDER BY age DESC,height DESC;