郑州达云通网站建设公司,网站备案最快几天,个人网站备案名称例子,怎样创建网站快捷方式Java数据库篇3——SQL
结构化查询语言(Structured Query Language)简称SQL#xff0c;是一种特殊目的的编程语言#xff0c;是一种数据库 查询和程序设计语言#xff0c;用于存取数据以及查询、更新和管理关系数据库系统
1、SQL分类
分类说明数据定义语言简称DDL(Data De…Java数据库篇3——SQL
结构化查询语言(Structured Query Language)简称SQL是一种特殊目的的编程语言是一种数据库 查询和程序设计语言用于存取数据以及查询、更新和管理关系数据库系统
1、SQL分类
分类说明数据定义语言简称DDL(Data Definition Language)用来定义数据库对象数据库表列 等数据操作语言简称DML(Data Manipulation Language)用来对数据库中表的记录进行更新数据查询语言简称DQL(Data Query Language)用来查询数据库中表的记录数据控制语言简称DCL(Date Control Language)用来定义数据库的访问权限和安全级别 及创建用户
2、Mysql数据类型
3、DDL数据定义语言
3.1、操作数据库
查询表
#查看所有表
Show tables;
#查看指定表的内容
Desc 表名;
#查看表的创建语句字符集
Show create table 表名;创建表
Create table 表名(列名1 数据类型1列名2 数据类型2列名3 数据类型3
);复制表1
Create table 表名2 like 表名1;修改表
#修改表名
Alter table 原表名 rename to 新表名;
#修改表的字符集
Alter table 表名 character set 字符集;
#在表内添加一行
Alter table 表名 add 列名 数据类型;
#修改列名
Alter table 表名 change 原列名 新列名 数据类型可修改;
#修改列的数据类型
Alter table 表名 modify 列名 新数据类型;
#删除列
Alter table 表名 drop 列名;删除表
Drop table 表名;
#存在此表才删除
Drop table if exists 表名;3.2、DDL操作表
查询表
#查看所有表
Show tables;
#查看指定表的内容
Desc 表名;
#查看表的创建语句字符集
Show create table 表名;创建表
创建表
Create table 表名(列名1 数据类型1列名2 数据类型2列名3 数据类型3
);复制表1
Create table 表名2 like 表名1;修改表
#修改表名
Alter table 原表名 rename to 新表名;
#修改表的字符集
Alter table 表名 character set 字符集;
#在表内添加一行
Alter table 表名 add 列名 数据类型;
#修改列名
Alter table 表名 change 原列名 新列名 数据类型可修改;
#修改列的数据类型
Alter table 表名 modify 列名 新数据类型;
#删除列
Alter table 表名 drop 列名;
删除表
Drop table 表名;
#存在此表才删除
Drop table if exists 表名;
4、DML数据操作语言
4.1、添加数据
#添加单个数据
Insert into 表名 (列1列2……列n) values (值1值2……值n);
#添加多个数据
Insert into 表名 (列1列2……列n) values (值1值2……值n),
(值1值2……值n),
(值1值2……值n);
添加表中所有列数据的时候可以省略列这个括号列和值要一一对应Null可以作为占位符使用值除了数字类型和null其他类型都要用引号引起来
4.2、修改数据
Update表名 set 列值列值 where 条件语句;
值除了数字类型和null其他类型都要用引号引起来不加条件就修改所有的记录
4.3、删除数据
Delete from 表名 where 条件语句; 不加条件删除所有的记录 truncate table 表名删除表创建一个一摸一样的空表
5、DQL数据查询语言
5.1、语法
select字段列表
from表名列表
where条件列表
group by分组字段
having分组之后的条件
order by排序
limit分页限定
5.2、基础查询
#多字段查询
Select 列名1列名2 from 表名
#去重查询
Select distinct 列名1列名2 from 表名;(只有结果集完全相同才会被去重)
#计算列的查询
Select 列名1列名2列名1列名2 from 表名;(一般都是数值相加null任何数都是为null)
#Ifnull函数
Select 列名1列名2ifnull列名10 ifnull列名20 from 表名
#查询所有列
Select * from 表名
5.3、条件查询 不等于 !不等于 And等同于 Or等同于|| Betweenand包含边界not不包含 In值1值2值n集合 Null不能用判断要用is和is not As起别名数据库表都可以起别名且as可以省略
select 列名 from 表名 where 条件表达式
5.4、模糊查询
_占位符单个任意字符%占位符任意多个任意字符
SELECT * FROM address WHERE home LIKE ‘_澈’;
5.5、排序查询
升序ASC降序DESC
Select 列1列2 from 表名 order by 列1 排序方式1列2排序方式2;
5.6、聚合函数
5.6.1、count函数
#count(*)返回表中满足where条件的行的数量
select count(*) from student;
#count(列)返回列值非空的行的数量
select count(score) from student;
#count(distinct 列)返回列值非空的、并且列值不重复的行的数量
select count(distinct score) from student;
5.6.2、max和min函数
统计列中的最大最小值
select max(score) from student;
select min(score) from student;
如果统计的列中只有NULL值那么MAX和MIN就返回NULL
5.6.3、sum和avg函数
求和与求平均
select sum(score) from student;
select avg(score) from student;
select avg(ifnull(score,0)) from student;
表中列值为null的行不参与计算要想列值为NULL的行也参与组函数的计算必须使用IFNULL函数对NULL值做转换
5.7、分组查询
分组查询的一定是分组字段或者聚合函数否则将没有意义
Select 列1列2 from 表名 group by 列名;
Select 列1列2列名 from 表名 group by 列名 having 条件语句;
Where分组前限定having在分组后限定where不可以判断聚合函数having可以
5.8、分页查询
#Limit 开始索引 每页的条数
Select * from 表名 limit 开始索引(每页条数*当前页码减一) 每页条数;
6、DCL数据控制语言
用来管理用户和管理权限
用户的信息都放在mysql数据库下的user表中
6.1、管理用户
localhost%
#添加用户
Create user 用户名主机名 identified by 密码;
#修改用户
Alter user 用户名主机名’ identified by 密码;
#删除用户
Drop user 用户名主机名;
6.2、权限管理
#查询权限
Show grants for 用户名主机名;
#添加权限
Grant 权限列表 on 数据库.表名 to 用户名主机名;
#删除权限
Revoke 权限列表 on 数据库.表名 from 用户名主机名;
均可使用通配符权限的通配符用all不是*