MySQL(第一天)

声明:由于学习所用环境为JDK1.8,所有java代码均在JDK1.8中测试通过,如果环境发生改变,可能会有错误发生!

一、MySQL简介在DOS环境下操作MySQL

1、MySQL是一种中型的关系型数据库管理系统(DBMS,Database Management System)。

注意:关系型数据库是按照表的方式存储数据的。

2、在DOS环境下操作MySQL

通过DOS操作MySQL的常用命令:
    1. 进入MySQL环境
       mysql -h MySQL服务器地址  -u  用户名  -p
    2. 显示所有数据库
       show databases;
    3. 进入某个数据库
       use 数据库名称;
    4. 显示所有表
       show tables;
二、基本SQL语句

SQL:(Structured Query Language)结构化查询语言。操作关系型数据库的专用语言。
   可分为:
    DDL:数据库模式定义语言
    DML:数据操纵语言
    DQL:数据查询语言
    DCL:数据控制语言
DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。eg:创建数据库、创建表(修改、删除)等操作。
DML(Data Manipulation Language),数据操纵语言,如插入(insert)数据、删除(delete)数据、修改(update)数据。
DQL:Data Query Language 数据查询语言。select查询数据。
DCL(Data Control Language)数据库控制语言。用来设置或更改数据库用户或角色权限的语句。  
1、创建数据库
 create database 数据库名称   [default  character set 'utf8'];

注意:关系型数据库中的数据是存放于表中的,而表是存放于数据库中的。

create database mydb default character set 'utf8';

2、创建表
      create table 表名称(
          字段名1  数据类型 约束[primary key],
          字段名2  数据类型 约束...,
          字段名3  数据类型 约束...

      );

create table student(
     stuid    int     auto_increment primary key,
     name    varchar(20) not null,
     age    int,
     score  double  not null
  );

3、向表中插入记录
      语法一(指定字段名插入记录):

      insert into 表名称(字段A,字段B...)values(值A,值B..);

insert into student(name,age,score)values('风清扬',25,95.5);

      语法二:(不指定字段插入记录,插入的值对应于表 中的每个字段)
      insert into 表名称 values(值1,值2,...);

insert into student values(12,'李寻欢',29,93);

  语法三:(插入多条记录)

      insert into 表名称(字段A,字段B...)values(值A1,值B1...),(值A2,值B2...)...;

 insert into student(name,age,score)values('小明',50,60.5),('小军',45,65.3),
  ('小平',60,72.5);

4、删除数据

      delete from 表名称 [where 条件];

 delete from student where stuid=19;

5、修改数据

      update  表名称   set 字段名1=修改的值1 [,字段名2=修改的值2...] [where 条件];

update student set score=score-10,age=age+1;

6、查询数据
      select 字段名1 [as 别名],字段名2 [as 别名],... from 表名称 [where 条件];

select stuid,name,age,score from student where score>=80 and score<=90;
   select * from student where score between 80 and 90; 
   select name as 学生姓名, score as 成绩 from student where score>=80 and score<=90;
7、查看表的结构
 desc[ribe] 表名称;

三、排序查询、模糊查询、限制查询

1:排序查询

    select 字段1,字段2... from 表名称 [where 条件] [order by 字段名 [desc] ]

    desc:降序排列

    asc:升序排列(默认)

 select * from student order by score desc,age;

2:模糊查询(like)
    通配符:
    %  代表任意多个任意字符
    _  代表一个任意字符

查询所有姓张的学生信息
   select * from student where name like '张%';
查询名字只有两个字、并且最后一个字是'三'的学生信息
   select * from student where name like '_三';
3:限制(limit)查询
    1.限制行数的查询
      select * from 表名称 [where 条件] [limit n];
      注意:limit n代表最多查询n条
查询成绩在80到90之间的前3条学生的信息
   select * from student where score>=80 and score<=90  limit 3;
    2.根据偏移量(从0开始,代表第一行)和查询数量,查询出指定位置的记录
      select * from 表名称 [where 条件] [limit offset, n];
      注意:offset代表偏移量,偏移量从0开始计算,代表第一行
            n代表查询出的最多记录数
查询出第3条到第8条的学生记录
   select * from student limit 2,6;

四、分页查询

例如:要求每一页显示pageSize条记录,求第page页应该查询哪些数据出来?

 select * from 表名称  limit (page-1)*pageSize, pageSize;

五、聚合函数

1.  max(字段名) :计算某一字段中的最大值
2.  min(字段名) :计算某一字段中的最小值
3.  avg(字段名):计算某一字段中的平均值
4.  sum(字段名):计算某一字段值的和
5.  count(字段名):  计算某一字段值中不为null的记录总数。
    count(*): 计算记录的总条数,无论是否为null

查询成绩最大(最小,平均,求和)
   select max(score) as 最高成绩 from student;
   select min(score) as 最低成绩 from student;
   select avg(score) as 平均成绩 from student;
   select sum(score) as 总成绩 from student;
查询学生表中的总记录数
   select count(*) from student;
查询学生中age不为null的记录数
   select count(age) from student;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值