数据库(一)——数据库概念、MySQL数据库(数据库操作、表操作、增删改查字段操作、单表查询、五大约束)
一、数据库的概念以及相关介绍
1、数据库的概念
2、数据库的分类
3、数据库管理系统的概念
二、MySQL 数据库
1、MySQL 数据库简介
详细简介可自行百度。
2、特点
1、轻量级 2、开源、免费 3、学习成本比较低,操作比较简单
3、下载地址
下载地址:https://www.mysql.com/downloads/
4、安装
这里以 mysql-5.5.40 举例子,凡是没有特意说明的地方,都是默认点击下一步:
如果出了问题,安装失败,则卸载重装。一般按上面流程设置完,环境变量会默认已经帮我们弄好。如果有问题,请自行百度解决。
5、卸载
请自行百度卸载(后续心情好了就更新)
6、sql 语句
7、DDL语句
a、创建数据库
语法:create database studb(数据库的库名)
b、创建数据库并设置编码格式
创建数据库的同时也可以设置编码格式。按照之前的安装,默认已经是 utf8 的编码格式了:
create database 数据库的库名 character set 编码格式
c、查看数据的创建的一些信息
语法: show create database 数据库的库名
d、修改数据库的编码格式
语法: alter database 数据库的库名 character set 编码格式
e、查看所有数据库
语法:show databases;
f、删除数据库
语法:drop database 数据库的库名
g、使用数据库
如果要进行表的增删改查操作,要先进入(使用)某个数据库才能进行:
语法:use 数据库的库名
三、DDL
1、数据库与数据库表之间的关系
数据库中可以存在多张表,一张表只能在一个指定的数据库中。
2、mysql 常见的数据类型
a、字符类型
b、数值类型
c、时间类型
3、表的操作
表的创建:
1.语法:
create table 表名(
列名 数据类型(长度),
列名 数据类型(长度),
列名 数据类型(长度)
.....
);
2.注意点:
A.创建表示以英文的分号结尾,每一组列名是以逗号进行分割,最后一组列名,不需要编写逗号。
B.数据类型的长度,可以不指定,但是一般建议指定其长度。
例子:
create table student(
sid int(11),
sname varchar(20),
sage int(10),
sex char(2),
birthday date
)
表的操作(操作表前记得要先进入数据库中):
1、查看当前数据库中所有的表:show tables
2、查看表结构:desc 表名
3、修改表名:alter table 表名 rename to 新的表名
4、删除表: drop table 表名
对表中的行的操作
1、在末尾添加一行:alter table 表名 add 列名 数据类型(长度)
2、在指定的行之后添加:alter table 表名 add 列名 数据类型(长度) alter 已经存在的行名
3、修改行的数据类型:alter table 表名 modify 已经存在的行名 数据类型(长度)
注意: modify 不能修改行名
4、修改行名:alter table 表名 change 旧行名 新行名 数据类型(长度)
5、删除行名:alter table 表名 drop 行名
注意,以上操作,有的操作在添加了数据以后就不能操作了。
四、DML
素材:
1、insert——增加数据
a、第一种方式
b、第二种方式——指定查询某一列的数据
注意:这里并没有输入所有字段,仅输入了部分字段,需要在表明后面特定声明查找的字段。
c、第三种方式——插入多条数据
d、注意的地方
1、字符串类型的数据,使用单引号,或者是双引号修饰都可以,时间类型必须使用单引号来进行修饰。
2、插入的数据的数据类型,必须与表定义的数据类型是一致。
3、插入数据的长度的范围必须是声明数据类型的范围之内。
2、update——修改数据
3、delete——删除数据
a、第一种写法——通过 delete 删除
b、第二种写法——通过 turncate 删除
c、两者的区别
1、TRUNCATE——删除表的所有的数据,还会删除表结构,delete 只是删除数据。
2、delete——删除数据是一行一行进行删除。TRUNCATE 将整个表的数据进行删除,效率高。
4、单表查询
a、查询表中所有的数据
select * from 表名
b、查询表中指定的列名的数据
1.语法:select 列名1,列名2 from 表名
2.例子:
SELECT pid,pname FROM product
c、where 条件——根据条件进行查询
1、语法:select * from 表名 where 条件
2、例子:
SELECT * FROM product WHERE id > 5;
d、简单的运算查询
1.语法::select 运算 from 表名
2.说明:常规的运算都是可以实现 + - * /
3.例子:
SELECT price+10 FROM product
注意:这里虽然显示出来的数据都加了10,但是原表里面的内容并没有改动。
e、设置别名
1.说明:
A.可以给表或者是列设置别名,别名使用关键字 as 也可以省略。
B.一般给表设置别名的时候可以省略,但是在给列设置别名的时候不建议省略。
C.如果给表设置别名之后,表中的列可以直接通过别名来获取。
2.例子:
SELECT p.pname, price+10 AS "运算后的结果" FROM product p
f、去除重复的数据
1.关键字:distinct
2.语法: select distinct 列名 from 表名
3.例子:
SELECT DISTINCT price FROM product
g、根据条件进行查询
这里面,同样可以运用 java 里面的符号来进行运算
非: !
并且:&&(可以用 and 代替)
in:||(可以用 or 代替)
h、模糊查询
1.模糊查询关键字: like
2.匹配的两个规则的符号: _ 与 %
3.说明:_占用一个字符、%匹配任意的字符
4.语法:select * from 表名 where 列名 like '匹配的规则'
5.例子:
SELECT * FROM product WHERE pname LIKE '%霸%';
SELECT * FROM product WHERE pname LIKE '香%'
SELECT * FROM product WHERE pname LIKE '_想%'
i、is null 和 is not null
1.说明 is null 表示是未插入数据的状态, is null 不等于""(空字符。)
2.案例:
SELECT * FROM product p WHERE p.category_name IS NULL
SELECT * FROM product p WHERE p.category_name IS NOT NULL
j、排序
1.关键字: order by
升序 asc、 降序 desc
2.语法: select * from 表名 order by 列名 排序规则
3.例子:
SELECT * FROM product ORDER BY price DESC
SELECT * FROM product ORDER BY price DESC,pid DESC
k、分组
1.关键字 group by 分组的条件
2.例子:
SELECT category_name,COUNT(1) FROM product GROUP BY category_name
l、过滤
1.关键字:having 过滤
2.例子:
SELECT category_name,COUNT(1) FROM product GROUP BY category_name HAVING category_name IS NOT NULL
3. where 与 having 过滤的区别:
(指的是字段的位置)
having 是在分组的后面进行过滤
where 是在分组前面进行过滤
m、分页查询
1.关键字:limit x 、limit x,x
2.解释
limit x: 参数表示的页量,每页显示的数据,索引就是从0开始查找
limit x,x: 参数1:表示的是数据库数据的索引,参数2: 表示的页量(建议使用这种方式)
3.案例:
使用分页查询出第一条与第二条数据
SELECT * FROM product LIMIT 0,2 第一页(表示的是从第 1 条数据开始,每一页2条数据)
使用分页查询除第三条与第四条数据
SELECT * FROM product LIMIT 2,2 第二页(表示的是从第 3 条数据开始,每一页2条数据)
规律:(当前页-1)*页量
5、查询语句的顺序
1、顺序语法:
select * from 表名 where 条件 + group by 分组 + having 过滤 + 排序 order by + 分页 limit
2、举例子:
SELECT category_name,COUNT(1) AS cou FROM product WHERE category_name
LIKE '%品%' GROUP BY category_name HAVING category_name IS NOT NULL ORDER BY cou ASC LIMIT 0,1
6、MySQL常用的函数
a、聚合函数
例子:
b、时间函数
c、字符串函数
五、五大约束
1、约束概念
2、主键约束
主键约束概念:
a、第一种方式——创建表的时候设置主键
b、第二种方式——表创建完成之后设置主键
c、auto_increment——自增长策略
这个策略一般跟主键搭配使用(一般是用在 id 这块),当创建数据的时候,这个策略会默认帮你加1
注意: 1、自增长策略针对与是整数类型 2、自增长的波长都是1 3、自增长策略一般是与主键进行搭配的使用
3、唯一约束
a、第一种方式——创建表的时候设置
b、第二种方式——表创建完成之后设置
|