您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页SQL基础语句大全

SQL基础语句大全

来源:爱go旅游网
SQL基础语句大全

SQL基础语句大全

此文章基本涵盖SQL的基础应用语句

你好! 这是本人在大学自学Java时记录的SQL基础语句,希望可以对自学的小白们给与一定帮助,有错误也欢迎大家可以帮助纠正。

数据类型

1.整数: int和bigint bigint等效Java中的long

2.浮点数:double(m,d) m总长度 d小数长度 eg:double(5,3) 26.789

decimal是一个超高精度的浮点数,精度远高于double,只有涉及到超高精度运算时才会使用到

3.字符串:varchar(m) 可变长度(节省空间)最大字符长度65535但是超过255建议用text可变长度

字符串类型 长度65535.

char(m)不可变长度 char(5) “abc” 占5 最大字符长度255

4.日期类型:

第 1 页 共 16 页

-date:只能保存年月日

-time:只能保存时分秒

-datetime:默认值null 最大值9999-12-31

-timestamp:时间戳 默认值当前系统时间 2038-1-19

数据库相关

1.查询所有数据库

-格式:show databases;(分号不要忘)

2.创建数据库

-格式:create database 数据库名;

-指定字符集格式:create database 数据库名 character set utf8/gbk;

3.查看数据库详情

-格式:show create database 数据库名;

4.删除数据库

第 2 页 共 16 页

-格式:drop database 数据库名;

5.使用数据库

-格式:use 数据库名;

表相关

-切记操作表和数据库时一定要保证已经使用了数据库,如下操作:

create database db1;

use db1;

1.创建表

-格式:create table 表名(字段1 字段1类型,字段2 字段2类型…)

create table person(name varchar(10),age int)

2.查询所有表

-格式:show tables;

3.查询表详情

第 3 页 共 16 页

-格式:show create table 表名;

4.创建表时指定字符集

-格式:create table 表名(字段1 字段1类型,字段2 字段2类型…) charset=utf8/gbk

create table t1(name varchar(10)) charset=gbk;

5.查询表字段信息

-格式:desc 表名;

6.删除表

-格式:drop table 表名;

7.添加表字段

-最后添加格式:alter table 表名 add 字段名 类型;

-最前添加格式:alter table 表名 add 字段名 类型 first;

-最xxx后面添加格式:alter table 表名 add 字段名 类型 after xxx;

8.删除表字段

第 4 页 共 16 页

-格式:alter table 表名 drop 字段名;

9.修改表字段

-格式:alter table 表名 change 原名 新名 新类型;

DML DataManiputlation Language数据操作语言 (增删改查)

1.插入数据

-全表格式:insert into 表名 values(值1,值2,值3);

-指定字段插入格式:insert into表名(字段1名,字段2名) values(值1,值2);

-批量插入:insert into 表名 values(值1,值2,值3),(值1,值2,值3)…

中文问题:insert into person values(3,‘Liang’,22),(4,‘刘德华’,26);

如果执行上面代码出错则使用下面代码后执行

set names gbk;

mysql处理数据有两个地方需要进行编码和解码,每隔地方的编解码要保证字符集

一致,网络数据传输有一对编解码,往磁盘中保存和读取数据有一对编解码,创建

第 5 页 共 16 页

数据库和表时指定的字符集时服务于后者的,set names gbk是服务于前者的。

2.修改数据

-格式:update 表名 set 字段名=xxx,字段名=xxx where 条件;

update person set age=30 where name='Tom';

update person set age=80 where id=4;

3.删除数据

-格式:delete from 表名 where 条件;

delete from person where id=5;

delete from person where age=80;

delete from person;

DQL Data Query Language 数据查询语言 (查)

-格式:select 字段信息 from 表名 where 条件;

select name from person;//查询表中所有的名字

第 6 页 共 16 页

select name from person where id<5;//查询表中所有id<5的名字

select * from person where id>=5;//查询表中所有id>=5的名字

主键约束

-约束:创建表时给表字段添加的限制条件(相当于字段的身份证)

-主键:表示数据唯一性的字段称为主键

-主键约束:唯一且非空

create table t1(id int primary key,name varchar(10));

insert into t1 values(1,'aaa');

insert into t1 values(2,'aaa');

insert into t1 values(3,'bbb');

insert into t1 values(4,'ccc');

主键约束+自增 auto_increment

-从历史最大值+1 只增不减

第 7 页 共 16 页

create table t2(id int primary key auto_increment,name varchar(10));

insert into t2 values(null,'aaa'); //1

insert into t2 values(null,'aaa'); //2

insert into t2 values(10,'bbb'); //10

insert into t2 values(null,'ccc'); //11

delete from t2 where id>=10;

insert into t2 values(null,'ddd'); //12

注释 comment

-创建表时给字段添加的介绍

create table t3(id int comment '这是主键',name varchar(10) comment '这是名字');

导入*.sql文件

-Linux系统:把文件放到桌面

source /home/soft01/桌面/emp.sql;

第 8 页 共 16 页

-Windows系统:把文件放到d盘根目录

source d:/emp.sql;

-检查是否成功

1.show databases;查看是不是出现了一个newdb3数据库

2.use newdb3; 使用导入的这个数据库;

3.show tables; 查看是否有emp和dept的表

4.select * from emp; 查看emp表中的数据是否存在

is null和is not null

1.查询没有上级领导的员工信息

select * from emp where mgr is null;

第 9 页 共 16 页

2.查询有上级领导的员工信息

select * from emp where mgr is not null;

去重 distinct

1.查询员工所从事的职业

select distinct job from emp;

比较运算符 > < >= <= = !=和<>都表示不等于

1.查询工作不是程序员的员工姓名和工作

select ename,job from emp where job!='程序员';

select ename,job from emp where job<>'程序员';

and和or

-and类似Java中的 &&

-or类似Java中的 ||

1.查询1号部门工资低于1500的员工信息

第 10 页 共 16 页

select * from emp where deptno=1 and sal<1500;

2.查询2号部门员工或工资高于2000的员工姓名,工资,部门编号

select ename,sal,deptno from emp where deptno=2 or sal>2000;

between x and y 包含x和y

1.查询工资在2000到3000之间的员工姓名和工资

select ename,sal from emp where sal between 2000 and 3000;

in(值1,值2,…) 条件等于多个值

1.查询工资等于800,3000,1500的员工信息

select * from emp where sal in(800,3000,1500);

模糊查询like

%:代表0或多个未知字符

_ :代表一个未知字符

以x开头 x%

第 11 页 共 16 页

以y结尾 %y

a开头b结尾 a%b

第二个字符是x _x%

包含x %x%

第三个字符是x倒数第二个字符是 _ _x%y _

排序

-格式:order by 字段名(默认升序 desc降序)

分页查询

-格式:limit 跳过的条数,请求的条数

各种关键字的顺序

-select … from 表名 where … order by … limit…;

别名

-给查询的字段起一个别的名字

第 12 页 共 16 页

select ename as '名字' from emp;

聚合查询:对查询的多条数据进行统计查询

1.平均值 avg(字段)

-查询一号部门的平均工资

select avg(sal) from emp where deptno=1;

2.最大值(字段)

-查询一号部门的最高工资

select max(sal) from emp where deptno=1;

3.最小值(字段)

-查询员工表中的最低工资

select min(sal) from emp;

4.求和 sum(字段)

-查询2号部门的工资总和

第 13 页 共 16 页

select sum(sal) from emp where deptno=2;

5.计数 count(字段)不为null计数

-查询一共有多少个员工一般场景使用*即可

select count(*) from emp;

分组查询: group by 字段;

-如果需求中出现每个或每种这样的关键字,则使用分组查询

-查询每个部门的平均工资

select deptno,avg(sal) from emp group by deptno;

-查询每个部门的最高工资

select deptno,max(sal) from emp group by deptno;

-查询每种职位的工资总和

select job,sum(sal) from emp group by job;

-查询每种职位的员工总数

第 14 页 共 16 页

select job,count(*) from emp group by job;

-查询每个部门工资大于1500的员工人数

select deptno,count(*) from emp where sal>1500 group by deptno;

-查询1号和3号部门的最低工资

select deptno,min(sal) from emp where deptno in(1,3) group by deptno;

having 如果条件是聚合函数的条件 则必须使用having,并且having要和group by结合使用

-查询每个部门的平均工资 要求平均工资大于2000;

select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

-查询每个部门的平均工资,值查询工资在1000-3000之间的员工,并且过滤掉平均工资低于2000的部门

select deptno,avg(sal) from emp where sal between 1000 and 3000 group by deptno having avg(sal)>=2000;

子查询(嵌套查询)

-查询工资高于员工平均工资的员工信息

第 15 页 共 16 页

select * from emp where sal>(select avg(sal) from emp);

-查询工资最高的员工信息

select * from emp where sal=(select max(sal) from emp);

-查询工资高于2号部门的平均工资的员工信息

select * from emp where sal>(select avg(sal) from emp where deptno=2);

-查询和孙悟空相同工作的其他员工信息

select * from emp where job=(select job from emp where ename='孙悟空') and ename!='孙悟空';

第 16 页 共 16 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务