首页 / MYSQL / MySQL数据库(二)——SQL
MySQL数据库(二)——SQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL数据库(二)——SQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4953字,纯文字阅读大概需要8分钟。
内容图文
![MySQL数据库(二)——SQL](/upload/InfoBanner/zyjiaocheng/516/73703bb385ed42359faafe5181674899.jpg)
1.2 具体操作
练习,创建数据库db4,判断是否存在,设置字符集gbk:create database if not exists db4 character set gbk;
2.查询数据库:
- 查询所有数据库的名称:show databases;
- 查询某个数据库的字符集(查询某个数据库的创建语句):show create database 数据库名称;
3.修改数据库
- 修改数据库的字符集:alter database 数据库名 character set 字符集名称;
4.删除数据库
- 删除数据库:drop database 数据库名称;
- 判断是否存在并删除数据库:drop databse if exists 数据库名;
5.使用数据库
- 查询正在使用的数据库名称:select database()
- 使用数据库:use 数据库名;
三、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)- 查询表
- 查询数据库中所有表的名称:show tables;
- 查询表结构:desc 表名称
3.U(update)- 修改表
- 修改表名
- alter table 表名 rename to 新的表名;
- 修改表的字符集
- 查看表的字符集:show create table 表名;
- 修改表的字符集:alter table 表名 character set 字符集名称;
- 添加列
- alter table 表名 add 列名 数据类型;
- 修改列名、类型
- 修改列名和类型:alter table 表名 change 列名 新的列名 新的数据类型;
- 修改类型:alter table 表名 modify 列名 新的数据类型;
- 删除列
- alter table 表名 drop 列名;
4.D(delete)- 删除表
- 删除表:drop table 表名;
- 判断是否存在并删除表:drop table if exists 表名;
四、DML操作数据库中表的记录
1. 添加数据
语法:
insert into 表名(列名1,列名2,……,列名n) values(值1, 值2, ……, 值n);
注意:
- 列名和值要一一对应。
- 如果表名后,不定义列名,则默认给所有数据添加值。insert into 表名 values(值1, 值2, ……, 值n);
- 除了数字类型,其它类型需要使用引号(单引号、双引号都可以)。
2.修改数据
语法:
update 表名 set 列名1 = 值1 , 列名2=值2 , …… , 列名n=值n [where 条件];
注意:
如果不加任何条件,则会将表中所有记录全部修改。
3.删除数据
语法:
delete from 表名 [where 条件]
truncate table 表名; -- 删除表,并创建一个一模一样的空表。
注意:
- 如果不加条件,则删除表中所有记录。
- 如果要删除表中所有记录,有两种方式:
- delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作。
- 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
本文系统来源:https://www.cnblogs.com/upyang/p/11956745.html
内容总结
以上是互联网集市为您收集整理的MySQL数据库(二)——SQL全部内容,希望文章能够帮你解决MySQL数据库(二)——SQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。