数据库之【常用sql语句归纳】
一、数据库操作:
1.创建数据库
create database dbname;
2.创建库是否存在,不存在就创建
create database if not exists dbname;
3.查看所有数据库
show databases;
4.删除数据库:
drop database dbname;
5.备份数据库:
BACKUP DATABASE TestDB TO DISK='d:\mcgrady\db\bak\TaskDB.bak' WITH COMPRESSION; 注意要带上WITH COMPRESSION
二、表操作:
1.创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],……)
eg:
create table student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
insert_time timestamp
);
2.根据已有的表建立新表
A:create table tab_new like tab_old
B:create table tab_new as select col1,col2… from tab_old definition only
3.删除新表
drop table 表名;
drop table if exists 表名;
4.添加/删除列
①添加一列
alter table 表名 add 列名 数据类型
注:列增长后将不能删除。DB2中列加上后数据类型也不能改变,惟一能改变的是增长varchar类型的长度。
②删除列
alter table 表名 drop 列名;
5.添加主键
Alter table tabname add primary key(col)
6.删除主键
Alter table tabname drop primary key(col)
7.建立索引
create [unique] index idxname on tabname(col….)
8.删除索引
drop index idxname
注:索引是不可更改的,想更改必须删除从新建。
9.查看表结构
desc 表名;
三、CRUD:
1)select语句:
语法:SELECT 列名称 FROM 表名称
查找:select * from table1 where field1 like ’%value1%’ 排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue fromtable1
2)insert语句:
insert into 表名(列名1,列名2,……列名n) values(值1,值2,……值n) ; //写全所有列名
insert into 表名 values(值1,值2,……值n); //不写列名(所以列全部添加)
3)删除语句:
delete from 表名 where 列名 = 值; //删除表中数据
delete from 表名; //删除表中所有数据
truncate table 表名; //删除表中所有数据(高效 先删除表,然后再创建一张一样的表。)
4)更新语句:
update 表名 set 列名 = 值; //不带条件的修改(会修改所有行)
update 表名 set 列名=值 where 列名=值; //带条件的修改
5)where语句:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

SQL 使用单引号来环绕文本值。若果是数值,不能使用引号。
6)distinct语句(去掉重复数据)
SELECT DISTINCT 列名称 FROM 表名称
四、外连接示例
eg:以下两张表分别是姓名表和年龄表


①内连接(Inner Join)
只返回条件匹配的行

select * from tableA JOIN tableB on tableA.id=tableB.id
执行结果:

②左外连接(Left join)
左表全部出现在结果集中,若右表无对应记录,则相应字段为NULL

select * from tableA left join tableB on tableA.id=tableB.id
执行结果:

③右外连接(Right join)
右表全部出现在结果集中,若左表无对应记录,则相应字段为NULL

select * from tableA right join tableB on tableA.id=tableB.id
执行结果:

④全连接(Full join)
全连接=左外连接+右外连接
返回左右表中所有的记录和左右表中连接字段相等的记录,条件不匹配的行的值为NULL

select * from tableA full join tableB on tableA.id=tableB.id
执行结果:

⑤交叉连接
没有where条件的交叉连接将产生连接表所涉及的笛卡尔积。即tableA的行数*tableB的行数的结果集。(tableA 3行*tableB 3行=9行)
select * from tableA cross join tableB
执行结果:

五、group by用法
“Group By” 从字面意义上理解就是根据 “By” 指定的规则对数据进行分组,所谓的分组就是将一个 “数据集” 划分成若干个 “小区域”,然后针对若干个 “小区域” 进行数据处理。
GROUP BY子句是SELECT语句的可选子句,它根据指定列中的匹配值将行组合成组,每组返回一行。
select 字段名 from 表名 where 条件 group by 字段名;
使用group by可以对查询结果进行分组,但是group by需要和sql的聚合函数联合使用。sql的聚合函数包括以下这些:
- count()求符合条件的记录数
- max()和 min()求某一列的最大值和最小值
- avg()求某一列的平均值
- sum()求某一列的总和
具体使用示例:
以下内容原文链接:https://blog.csdn.net/Elainalu/article/details/89489041

上图是表bookinfo,包含了一系列的字段 ,现在我们按照"出版社"来对表进行分组统计:
select publish as 出版社,count(publish) as 图书数量 from BookInfo group by publish;
以上语句分析如下:
select publish as 出版社,count(publish) as 图书数量 //这行代码首先将publish设置一个别名 "出版社",然后 count(publish)as "图书数量",是将publish进行计数
from bookinfo //表示数据来源于表bookinfo
group by publish //表示对数据表按照publish字段进行分类,相同的publish为一类,count(publish)即为统计一共多少类。
执行结果如下图:
==============================================================================================
再举个例子,同样是上面的bookinfo,我们对出版社分组,然后对每个出版社出版书籍的价格求平均值:
select publish '出版社',AVG(price) '平均价格' from bookinfo group by publish;
需要注意的是,select后面跟的列名,必须包含在聚合函数中,或者包含在group by子句中,比如上式中,字段名publish就包含在group by子句中,而price包含在avg聚合函数里。
=========================================================================================
select publish '出版社',AVG(price) '平均价格' from bookinfo group by publish having avg(price) > 55
需要注意的是having必须和group by配合使用不可单独使用,where是从表中筛选,having是从组中筛选
数据库之【常用sql语句归纳】的更多相关文章
- 【知识库】-数据库_MySQL常用SQL语句语法大全示例
简书作者:seay 文章出处: 关系数据库常用SQL语句语法大全 Learn [已经过测试校验] 一.创建数据库 二.创建表 三.删除表 四.清空表 五.修改表 六.SQL查询语句 七.SQL插入语句 ...
- 1.4 数据库和常用SQL语句(正文)——MySQL数据库命令和SQL语句
前面我们已经讲述了,登录时,我们使用mysql –u root –p命令进行,此时如果设置了密码,则需要输入密码. 输入密码后即进入MySQL的操作界面,此时,命令行窗体左侧显示"mysql ...
- GP数据库 常用SQL语句
GP数据库 常用SQL语句 --1,查看列名以及类型 select upper(column_name) ,data_type from information_schema.columns wher ...
- Oracle数据库常用Sql语句大全
一,数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...
- Mysql常用sql语句(一)- 操作数据库
21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html ...
- 50个常用SQL语句
50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表 S#学号,主键 Course(C#,Cname,T#) 课程表 C#课程号,主键 SC(S#, ...
- oracle sqlplus及常用sql语句
常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
随机推荐
- linux内核中根据函数指针追踪调用函数名
2 linux内核中根据函数指针追踪调用函数名 linux内核的printks可以输出函数指针对应的函数名. printk("func: %pF at address: %p\n" ...
- autohotkey switching within applications
class QdirManager { ppid := -1 ppath := "" __New(pathIn) { this.ppath := pathIn } __Delete ...
- RHEL8注册
安装RHEL后,因为是商用系统,YUM软件仓库是不能使用的,需要注册后才可以使用.个人用户可以去红帽官网申请开发者账户. https://developers.redhat.com/ 有了开发者账户后 ...
- 删除 gnome自带的Videos软件
gnome3自带的Videos粗看感觉听简洁挺流畅的,可是细看不仅电影中文名乱码显示还搞得字幕慢半拍,这一点完全不能忍,太难受了. 还是Vlc牛.而且Videos在应用商店不能卸载,命令行搜索已安装软 ...
- linux dma
https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/ripard-dmaengine.pdf https://biscuitos ...
- 使用git下载文件时提示身份验证失败
鼠标右键打开Git Bash Here窗口 输入git clone + 网址 后出现身份报错提示信息 需要重新修改一下用户名和邮箱就可以了 git config --global --replace- ...
- ARM-THUMB procedure call standard(ATPCS是ARM-Thumb过程调用标准的简称)
为了使单独编译的c语言和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和Thumb程序中子程序的基本规则. 基本ATPCS规定了在子程序调用时的一些基本规则, ...
- 从零搭建hadoop集群之克隆虚拟机
1. 选中一台已关闭的虚拟机,在虚拟机名称上,右键点击,选择"管理",再选择"克隆", 出现如下画面: 2. 点击"下一步",出现如下画面: ...
- ubuntu 16.04 安装peach
当前操作系统:ubuntu 16.04 使用 TUNA 的软件源镜像替换sources.list 备份原sources.list文件 sudo cp /etc/apt/sources.list /et ...
- 清空kafka全部数据
1.停止机器上的kafka,停止业务系统 docker容器执行命令: docker stop 容器名称 2.删除kafka存储目录(server.properties文件log.dirs配置,默认为& ...