时间:2021-07-01 10:21:17 帮助过:3人阅读
1.2 具体操作
练习,创建数据库db4,判断是否存在,设置字符集gbk:create database if not exists db4 character set gbk;
2.查询数据库:
3.修改数据库
4.删除数据库
5.使用数据库
三、DDL操作表
1.C(create)- 创建表
语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
……
列名n 数据类型n
);
注意:
最后一列,不需要加逗号(,)
数据类型:
datetime和timestamp类型格式一样,区别为:timestamp类型如果不给这个字段赋值或者赋值为null,则默认使用当前的系统时间来自动赋值。
varchar(20):最大20个字符。zhangsan - 8个字符 张三 - 2个字符。
复制表语法:创建表2,表2和表1表结构一样,语法:
create table 表名2 like 表名1;
2.R(Retrieve)- 查询表
3.U(update)- 修改表
4.D(delete)- 删除表
四、DML操作数据库中表的记录
1. 添加数据
语法:
insert into 表名(列名1,列名2,……,列名n) values(值1, 值2, ……, 值n);
注意:
2.修改数据
语法:
update 表名 set 列名1 = 值1 , 列名2=值2 , …… , 列名n=值n [where 条件];
注意:
如果不加任何条件,则会将表中所有记录全部修改。
3.删除数据
语法:
delete from 表名 [where 条件]
truncate table 表名; -- 删除表,并创建一个一模一样的空表。
注意:
五、DQL查询语句的使用
语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件限定
order by
排序
limit
分页限定
1.排序查询
语法:order by 子句
order by 排序字段1 排序方式1, 排序字段2 排序方式2……
排序方式:
ASC:升序,是默认的。
DESC:降序。
如果有多个排序条件,则当前面的条件值一样时,才会去判断第二条件。
2.聚合函数
定义:将一列数据作为一个整体,进行纵向的计算。
cout:计算个数
max:计算最大值
min:计算最小值
sum:计算和
avg:计算平均值
注意:聚合函数的计算会排除null值。
select count(列名) from 表名;
解决方案有两种:
第一种选择不包含空列进行计算。主键;count(*)
第二种ifnull函数. select count(ifnull(english,0)) from student;
3.分组查询
语法:group by 分组字段
注意:
(1).查询后的字段只能是分组字段或聚合函数。select sex, avg(math), count(id) from student group by sex;
(2).where 在分组之前进行限定,如果不满足条件,则不参与分组。where后不可以跟聚合函数进行判定。
分组前对条件进行限定的操作:select sex, avg(math), count(id) from student where math > 70 group by sex;
(3).having 在分组之后进行限定,如果不满足条件,则不会被查询出来。having后可以跟聚合函数进行判定。
分组之后对条件进行限定的操作:select sex, avg(math), count(id) from student where math > 70 group by sex having count(id) > 2;
起别名更方便:select sex, avg(math), count(id) as persons from student where math > 70 group by sex having persons> 2;
4.分页查询
语法:limit 开始的索引, 每页查询的条数;
公式:开始的索引 = (当前的页码 - 1)* 每页显示的条数
分页操作是一个“方言”
5.基础查询
(1)查询多个字段
select 字段1,字段2…… from 表名;
如果查询所有字段,可以用 select * from student;
(2)去除重复
select distinct 列名列表 from 表名
只有两个结果集的字段完全一致,才可以去除重复。
(3)计算列
一般可以用四则运算计算一些列的值。
select name, math, english, math + enlish from student;
如果有null参与的运算,计算结果都为null。
select name, math, english, math + ifnull(english,0) from student;
ifnull(表达式1, 表达式2):表达式1 - 需要判断哪个字段是否为null,表达式2 - 如果该字段为null的替换值。
(4)起别名
select name, math, english, math + ifnull(english, 0) as sumScore from student;
as可以省略,用空格代替。
6.条件查询
(1)where后跟条件子句
(2)运算符
比较运算符:
逻辑运算符:
7.条件查询_模糊查询
_:单个任意字符
%:多个任意字符
MySQL数据库(二)——SQL
标签:des drop 通用 技术 use mysql数据库 操作 add code