Java基础之MySQL(一)

一、MySQL简介及在DOS下操作MySQL

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

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

DOS环境下操作MySQL

通过DOS操作MySQL的常用命令

1、进入MySQL环境

mysql -h MySQL服务器地址 -u 用户名 -p

如下图进入我的本地数据库,MySQL服务器地址是:localhost,用户名是:root


2、显示所有数据库

show databases;


3、进入某个数据库

use 数据库名称;

如下图进入数据库mysql中


4、显示所有表

show tables;

如下图,查看了mysql数据库下的所有表


二、基本SQL语句

SQL:(Structured Query Language)结构化查询语言。操作关系型数据库的专用语言。

可分为:

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']

注:方括号中的内容是可选内容,MySQL数据默认的编码方式是utf8,可不写;

      关系型数据库中的数据是存放于表中的而不是存放于数据库中

如创建数据库mydb

create database mydb default character set 'utf8';


2、创建表

create table 表名称(

     字段名1  数据类型  约束[primary key],

     字段名2  数据类型  约束...,

     字段名3  数据类型  约束...,

);

如创建学生表(Student),有学号,姓名,性别和成绩这四个字段

create table Student(

stu_id int auto_increment primary key,

stu_name varchar(20) not null,

stu_sex varchar(10) not null,

socre double

);

解释一下上面的几个关键字:

auto_increment:这个关键字的意思是学生的学号自动增长,可以不用我们去添加

primary key:主键,设置这张表的主键是学号,能唯一的标识一条记录,就好像身份证号一样

数据库中有char和varchar,它们的区别是:如果你给定char的长度,那么无论你输入的字符是多少(前提是输入数要小于规定数),那么它最终就会占用那么长的空间,而varchar则是占用你所输入的字符的长度,不会占用你给定的长度


3、向表中从插入记录

语法一 :(指定字段名插入记录):

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

用该语法插入记录(1,'张三','男',69.5)

insert into student(stu_id,stu_name,stu_sex,score)values(1,'张三','男',69.5);


语法二:(不指定字段插入记录,插入的值对应于表中的每个字段)

insert into 表名称 values(值1,值2,...);

用该语法插入记录(2,'李四','男',70.5)

insert into student values(2,'李四','男',70.5); 


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

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

用该语法插入两条记录

insert into student(stu_id,stu_name,stu_sex,score)values(3,'王五','男',80),(5,'王娟','女',91.5);


最终插入的所有记录如下图


4、删除数据

delete from 表名称 [where 条件];

删除student表中的3号王五

delete from student where stu_id=3;


5、修改数据

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

修改student表中的5号王娟的成绩

update student set score=88 where stu_id=5;


6、查询数据

select 字段1[as 别名],字段2[as 别名],... from 表名称 [where 条件];

如查询2号李四的性别和成绩

select stu_sex as 性别,score as 成绩 from student where stu_id=2;


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

数据库中的学生信息


1、排序查询

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

如将学生表中的数据按升序查询

select * from  student order by score asc;


2、模糊查询(like)

通配符:

%        代表任意多个任意字符

_         代表一个任意字符

如查询所有姓张的学生信息

select * from student where stu_name like '张%';


查询名字只有两个字、并且最后一个字是'三'的学生的信息

select * from student where stu_name like '_三';


3、限制(limit)查询

(1)限制行数的查询

select * from 表名称 [where 条件] [limit n];

注意:limit n代表最多查询n条

如查询学生表的前5条学生信息

select * from student limit 5;


(2)根据偏移量(从0开始,代表第一行)和查询数量,查询出指定位置的记录

select * from 表名称 [where 条件] [limit offset,n];

注意:offset代表偏移量,偏移量从0开始计算,代表第一行,n代表查询出的最多记录数

如从学生表的第3行开始查询3条记录

select * from student limit 2,3;


四、分页查询

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

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

如要求第3页显示3条记录

select * from student limit 6,3;


五、聚合函数

1、max(字段名):计算某一字段中的最大值

如计算学生表中成绩的最大值

select max(score) as 最高成绩 from student;


2、min(字段名):计算某一字段中的最小值

如计算学生表中最低成绩

select min(score) as 最低成绩 from student;


3、avg(字段名):计算某一字段中的平均值

如计算学生表中成绩的平均值

select avg(score) as 平均成绩 from student;


4、sum(字段名):计算某一字段值的和

如计算学生表中成绩的总和

select sum(score) as 总成绩 from student;


5、count(字段名):计算某一字段值中不为null的记录总数

count(*):计算记录的总条数,无论字段值是否为null

由于之前数据库中没有字段值为null的所以现在向数据库中插入一条成绩为空的记录,以区别上述的两种情况,如下图为插入后的数据列表


计算score这一字段的记录总数

select count(score) as 总数 from student;


计算学生表中所有记录的总数

select count(*) as 总数 from student;





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值