栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL基础知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL基础知识

数据库

  • 存储数据的仓库,数据是有组织的进行存储。
  • 英文DataBase,简称DB

数据库管理系统

  • 管理数据库的大型软件(DataBase Management System,简称DBMS)

SQL

  • Structured Query Language,结构化查询语言
  • 操作关系型数据库的语言
  • 定义操作所有关系型数据库的统一标准

关系型数据库

关系型数据库就是建立在关系模型基础上的数据库,简单说关系型数据库是由多张能相互相连接的二维表组成的数据库。

优点:

  1. 都是使用表结构,格式一致,易于维护。
  2. 都是通用的SQL语言操作,使用方便,可用于复杂查询。
  3. 数据存储在磁盘中,安全。

使用cmd 登录 mysql

//登录  mysql -u用户名 -p密码 (也可以输密码之前回车)
mysql -uroot -p1234

//退出
exit

数据类型

数据类型分为三类:数值、日期、字符串

常用数据类型:

名称占用空间说明
TINYINT1 byte小整数值
INT 或 INTEGER4 byte大整数值
BIGINT8 byte极大整数值
FLOAT4 byte单精度浮点数值
DOUBLE8 byte双精度浮点数值
DATE3 byte日期值
TIME3 byte时间值或持续时间
DATETIME8 byte混合日期和时间值
CHAR0-255 byte定长字符串
VARCHAR0-65535 byte变长字符串
TEXT0-65535 byte长文本数据

double的使用:

double(总长度, 小数点后保留的位数)
举例:分数的范围0~100,小数点后保留两位,总长度就是 3 + 2 = 5
score double(5, 2)

char和varchar区别:

name char(10) : 无论几个字符都用10个字符空间,存储性能高,浪费空间。
name varchar(10) : 几个字符就用几个字符的空间,存储性能低,节省空间。

SQL语句
  1. SQL语句可以单行或多行书写,以分号结尾。
  2. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  3. 注释:单行注释( -- 注释内容 或者 #注释内容(MySQL特有)),多行注释()

分类:

  • DDL( Data Definition Language ) 数据定义语言,用来定义数据库对象:数据库,表,列等
  • DML( Data Mainipulation Language ) 数据操作语言,用来对数据库中的表的数据进行增、删、改
  • DQL( Data Query Language ) 数据查询语言,用来查询数据库中的表的数据
  • DCL( Data Control Language ) 数据控制语言,用来定义数据库的访问权限和安全级别及创建用户
DDL:操作数据库、表等

操作数据库

-- 查询
show databases;

-- 创建数据库
create database db1;

-- 创建数据库(判断不存在才创建)
create database if not exists db1;

-- 删除数据库
drop database db1;

-- 删除数据库(判断存在才删除)
drop database if exists db1;

-- 使用数据库
use db1;

-- 查看当前使用的数据库
select database();

创建表、删除表

-- 查询当前数据库下所有表名称
show tables;

-- 查询表结构,desc 是 description(描述) 的缩写
desc tb_user;

-- 创建表
create table tb_user(
	id int,
	username varchar(20),
	password varchar(32)
);

-- 删除表
drop table tb_user;

-- 删除表时判断表是否存在
drop table if exists tb_user;

修改表、列

-- 修改表名: alter table 表名 rename to 新表名;
alter table tb_user rename to tb_user2;

-- 添加一列:alter table 表名 add 列名 数据类型;
alter table tb_user2 add phone varchar(18);

-- 修改数据类型: alter table 表名 modify 列名 新数据类型;
alter table tb_user2 modify phone char(15);

-- 修改列名和数据类型: alter table 表名 change 列名 新列名 新数据类型;
alter table tb_user2 change phone phoneNumber varchar(18);

-- 删除列: alter table 表名 drop 列名;
alter table tb_user2 drop phoneNumber;


DML:对表中的数据增、删、改
-- 查询所有数据
select * from student;

-- 给指定列添加数据 INSERT INTO 表名(列名1, 列名2,...) VALUES (值1,值2,...);
insert into student(id, name) values(1,'张三');

-- 给所有列添加数据(列名可以省略)
insert into student(id, name, gender, birthday, score, email, tel, status) values
(2, '霍华德', '男', '1987-12-05', 34.2, 'huohuade@163.com', '13894943838', 2)
;

-- 批量添加数据
insert into student(id, name, gender, birthday, score, email, tel, status) values
(3, '库里', '女', '1998-12-05', 4.2, 'huoh343@163.com', '13894943838', 2),
(4, '霍元甲', '男', '1987-12-05', 34.25, 'kkkkade@163.com', '13894946666', 6),
(5, '华德', '男', '1970-12-05', 99.29, 'huohuade@163.com', '13894943838', 1)
;

-- 修改数据: UPDATe 表名 SET 列名1=值1, 列名2=值2,... WHERe 条件
-- 注意:如果 update 语句没有加 where 条件,则会将表中所有的数据全部修改!
update student set birthday = '2002-02-20', score = 78.50 where id = 4;

-- 删除:DELETE FROM 表名 WHERe 条件;
delete from student where name = '库里';

DQL:对表中的数据进行查询

基础查询

-- 查询多个字段 SELECt 字段1,字段2,... FROM 表名;
-- 查询所有列可以用 * 省略(select * from stu),项目中不要使用这种查询
select name,age from stu;
select * from stu;


-- 去除重复记录  SELECt DISTINCT 字段列表 FROM 表名;
select distinct address from stu;


-- 起别名 AS (AS也可以省略)
select name, math, english from stu;
select name, math as 数学成绩, english as 英语成绩 from stu;

条件查询 WHERe

-- 查询年龄大于20岁的学生
select * from stu where age > 20;

-- 查询年龄大于等于20岁并且小于30岁的学生
select * from stu where age >= 20 and age <= 30;
select * from stu where age between 20 and 30;

-- 查询年龄等于18或者等于22的学生
select * from stu where age = 18 or age = 22;
select * from stu where age in (18, 22);

-- 查询英语成绩为 null 的学生
-- 注意:null值的比较不能使用 = 或者 !=,需要使用 is 或者 is not
select * from stu where english is null;

模糊查询 LIKE

通配符:
_:代表单个任意字符

%:代表任意个数字符

-- 查询姓'马'的学生
select * from stu where name like '马%';

-- 查询姓名第二个字是'花'的学生
select * from stu where name like '_花%';

-- 查询姓名中有'德'的学生
select * from stu where name like '%德%';

排序查询 ORDER BY

排序方式:

  • ASC:升序排列(默认值)
  • DESC:降序排列

如果有多个排序条件,当前面的条件一样时,才会根据第二个条件进行排序。

-- SELECt 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式], 排序字段名2 [排序方式]...;

-- 按照年龄升序排列
select * from stu order by age;

-- 按照数学成绩降序排列
select * from stu order by math desc;

-- 按照数学成绩降序排列,如果数学成绩一样,再安装英语成绩升序排列
select * from stu order by math desc, english asc;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号