您的位置:首页 > 数据库 > MySQL

MySQL(第一天)

2018-02-21 17:23 288 查看
声明:由于学习所用环境为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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: