文章标题

Mysql基础语法

  • 在Navicat中写Mysql语句,比如说增加元素,一般运行完以后就不能再运行第二遍,否则会因为添加相同的内容而报错,所以可以通过鼠标选中某一语句然后右键运行所选中的语句。
  • mysql语句在右上角的新建查询的查询中写,而不是在表格中写,通过在查询编辑器中写的语句可以对表格进行操作。
  • 写操作 –> 运行 –> 刷新表格
  • mysql关键字不区分大消息

建表

/*通过关键字CREATE table + 表名创建表*/
CREATE table classinfo(
    id INT(11) not NULL auto_increment,
    name VARCHAR(250) not NULL,  /*班级信息不为空*/
    PRIMARY KEY(id)         /*唯一的标识*/
)
  • 创建表: create table + 表名。关键字大小写都行。表名,如果从数据库中导出,会给出引号。我们自己写的时候尽量不要加。因为我们写的引号不太一样。
  • 如果字段不允许为null,设置为not nullI
  • 如果字段自增,仅限int类型,每次加一。由系统计算,auto_increment
  • 字段要有数据类型。字符串在java里是string类型,在mysql中是varchar类型
  • primary key 的目的是设置某一字段是关键字,关键字不能是null,也不重复。目的是唯一的定位一条记录
  • 在建表句的每一行结束要有一个逗号,但是最后一行没有。

  • 在建表以前,一般都会加一条删除语句。目的是当我数据库中有这个表时,不至于sql语句执行失效。删除表的语法是:drop table if exits + 表名

插入数据

1.插入一行数据
insert into classinfo values(1,'Lanyunfu',1);

语法:insert into + 插入表名 + values(…)

注意语句后面要加分号

2.插入某个数据
insert into classinfo (name)values("Lanyunfu");

如果想要插入某个数据,就在values的前面加入一个括号(), 括号里面写上插入值的标识。

更新数据

  1. 更新所有的列表某个数据
update student set classid = 3; /*所有学生班级都改为3*/
  • update 表名 set 更新变量名字 = ···

    1. 增加限定条件where
update student set classid = 3 where stuname = "LanYunfu";
  1. 更新多个字段
update student set stuname = "CongEnjie", classid = 2 where stuname = "Wangle";
  • 更新多个字段时,多个字段之间用“ , ”分隔开。

查询数据

  1. 查询所有学生的信息
select * from student;
  1. 查询部分字段
select stuname, classid from student;
  1. 查询有限定条件的信息
select stuname,classid from student where classid = 1;
  1. 再加一个条件:姓名为helin的记录:
select stuname, classid from student where class id = 1 and stuname = 'helin';
  1. 查询姓名中包含li这两个字母的学生姓名和班级id号信息:
select stuname, classid from student where stuname like '%li%';
多表查询
  1. 多表查询,如果不加条件,会出现笛卡尔积现象:
select * from student, calssinfo;
  1. 查询学生信息,显示班级名称,一般条件写两个表相关联的信息
select * from student, classinfo where student.classid = classinfo.id
  • 由于student表的classid和classinfo表的id相对应同,所以为了避免出现笛卡儿积的现象,我们把查询的条件设为student.id = classinfo.id。一个表的字段不允许重复,而两个表的字段却可能重复,因此如何明确使用哪个字段,通过表名.字段名来引用。

    1. 在上一句的基础上,只显示学生姓名和班级名称。
select student.stuname, classinfo.name from student, classinfo where student.classid = classinfo.id;
  • 显示的信息和你在mysql语句中写的信息的顺序相同

简化sql语句

9.给表起别名,简化sql语句

select s.stuname, c.name from student as s,classinfo as c where s.classid = c.id;
  • 给表格 student 和 classinfo 起别名,在前面后面可以通过这个别名来代替这个表格,student as s, classinfo as c,这样更有利于你阅读结果,其中的as在语句中可以省略。

    1. 给查询字段起名字(省略了as)
selct s.stuname '学生姓名', c.name '学生名称' from student s, classinfo c where s.classid = c.id;

排序与平均函数

平均
  • 如果想要一类数据的平均值,需要首先对所有的数据集进行分群,例如想要计算每个班级的平均成绩,那就以班级分群,想要计算每个人的平均成绩,那就以人名来进行分群。此时可以调用分群函数 group by,计算平均成绩利用mysql自带的 avg() 函数。
  • 计算每个班,每门课程的平均分
select g.coursename, avg(g.grade) as '成绩',c.name from student s, grade g, classinfo c where s.id = g.stuid and c.id = s.classid group by g.coursename, c.name;
排序
  • 根据班级名称排序, 关键字order by
select g.coursename "课程名称", avg(g.grade) "成绩",c.name from student s, grade g, classinfo c where s.id = g.stuid and c.id = s.classid group by g.coursename, c.name order by c.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值