首先声明该篇章将进行从头到末的小白操作,其中分为主要操作(必要操作步骤)和次要操作(方便阅读理解),主要操作会标明步骤编号,并且以举例子为主进行演示,同时将之前的篇章进行复习
我们可以先show databases;查看已有数据库
(1)新建一个数据库students
(2)接着创建一个学生表stu(student的缩写)
解析:以下内容作为建立表的表头,其中表头包含以下内容↓
id(学号数,且被设置为主键primary key。一个表的主键是唯一的,id主键是默认一个学生的学号是唯一的,因为同名同姓的人很多,学号可以用于区分,相当于身份证)
name e-mail course sex birth score
(分别对应姓名,邮件,课程,性别,出生日期,学分)
用desc检查表头内容
(3)mysql如何在表中插入学生数据
(这里是易错灾区,建议先打在txt文本上输入,方便出错后修改,常出现因为标点符号非英文以及与已设表头数据类型不匹配错误)
要点:
①插入一条数据
insert into 表名
values
(一一对应表头的数据);
ps:当插入个数与原字段个数不匹配,会出现报错
即列的个数和插入的个数不匹配
即使有null也要插入
②同时插入多条数据
insert into 表名
values
(插入数据1),←逗号
...
(插入数据n);←分号
ps:
id学号:定义为主键,具有唯一性,主键不一样其他一样仍然可以插入,主键一样其他不管一不一样都插入不了
学号去掉引号,0('001')字会自动去除,但无报错
sex性别:添加引号,原来是整型且不影响
birth出生日期:年月日中间有符号情况下为字符串,必须用引号;而横线去掉后纯数字就不需要引号
代码如下:
使用select * from 可以检查插入数据结果
(4)mysql如何查询表中数据
①查询表中的所有数据
select * from 表名(*表示选取表中插入的所有的字段)
如上图所示:
②查询/筛选表中的部分数据
select 列名1,列名2... from 表名
eg1:假如我只想查找学生姓名和课程
select name,course from stu;
eg2:假如我只想查找学生的学号,出生日期以及学分
select id,birth,score from stu;
eg3:假如我只想找学生姓名,电子邮件,现在时间
select id,birth,now() from stu;
now()为查询表时返回系统右下角的日期时间
③条件查询(范围运算符的运用)
1.查询姓名为xx的学生
eg:假如我想在表中所有学生中查询名叫孙策的所有信息
select * from 表名 where 列名='要查询的内容';
select * from stu where name ='孙策';
2.查询姓名为xx的学生的xx信息
eg:假如我想找孙策同学的电子邮件和课程
select 列名 from 表名 where name=' ';
select email,course from stu where name ='孙策';
3.查询出生年月日为xx的学生
between 后指定小值 and 后指定大值
select * from 表名(stu) where birth between xx and xx;
4.查询不在xx年月日出生的学生
select * from 表名(stu) where not(birth between xx and xx);
select * from 表名(stu) where !(birth between xx and xx);
以上俩种方法皆可以
5.查询在xx年月日出生的学生
select * from 表名 where birth='xx';
select * from stu where birth ='2007-10-27';
6.查询不在xx年月日出生的学生
select * from stu where not birth ='2007-10-27';
7.查询出生年为xx的学生
select * from stu where year(birth) = '2000';
这里year运用了强制性转换
8.查询不在xx年出生的学生
这里意思为查询不为2000年出生的学生
select * from stu where not(year(birth)='2000');
9.查询姓孙并且是男的学生
要点:like代表相似,所以只要姓孙就输出,%代表不管姓名多少个字符都输出,因此姓孙的都呈现在表格里
select * from 表名where name like'姓%' and sex = xx;
select * from stu where name like '孙%' and sex = 1;
10.查询姓孙且名字只有俩个的男生
要点:一个_下划线代表一个字符
select * from 表名 where name like'姓_' and sex = xx;
select * from stu where name like '孙_' and sex = 1;
可以看出孙悟空名字占三位,被剔除
11.查询学分为2或性别是女的学生
select * from 表名 where score=xx or sex = xx;
select * from stu where score=2 and sex = 0;
13.查询一系列学生的学号
select * from stu where id in(1,2,3);
(5)Mysql如何更新(修改)表中数据
①改变整列数据
update 表名 set 列名(表头) ='你要更换的那个列数据';
这里我要将所有学生的mysql课都更改为数学课
update stu set course='数学';
检验可以看见course那列都变为数学
②限定只改变一条数据
update 表名 set 原课程名=‘新课程名mysql’ where 学号=‘xx’;
这里将孙策的数学课程更改为mysql课
update stu set 数学='mysql' where id =1;
检验成果:
③将原数据用新数据替代
update 表名 set 学分='新学分' where 性别 = xx;
这里意思将性别为女的学生学分替代为5分
update stu set score = 5 where sex =0;
检验成果: