sql基础语法,如何自学sql

果果英语网 2023-11-25

sql基础语法?selectmax(SQL成绩),min(MCSE成绩)from表---查SQL最高分和MCSE最低分---常用的函数:max(最大),min(最小),sum(总和),avg(平均值)---count(*)统计表内数据的行数。DDL语句对数据库对象如表、列和视进行定义。那么,sql基础语法?一起来了解一下吧。

sql语句基本语法

SQL 基本操作命令 创建数据库create database 数据库名切换数据库use database 数据库名删除数据库drop database 数据库名 将数据库设为只读execute sp_dboption '数据库名','rend only','true' 将数据库设为自动收缩execute sp_dboption '数据库名','autoshrink','true'将数据库设为单独访问execute sp_dboption '数据库名','single user' 收缩数据库:dbcc shrinkdatabase(数据库名,未用空间百分比) 创建表create table 表名(列名 数据类型,列名 数据类型) 建表时创建主键create table 表名(列名 数据类型 primary key,列名 数据类型)建表后创建主键alter table 表名 add constraint pk_表名 primary key(列名) 建表后删除主键alter table 表名 drop constraint pk_表名 建表时创建唯一约束create table 表名(列名 数据类型 unique,列名 数据类型)建表后创建唯一约束alter table 表名 add constraint u_表名 unique(列名) 建表后删除唯一约束alter table 表名 drop constraint u_表名 建表时创建检查约束create table 表名(列名 数据类型 check(条件),列名 数据类型)建表后创建检查约束alter table 表名 add constraint ck_表名 check(条件) 建表后删除检查约束alter table 表名 drop constraint ck_表名 建表时创建默认约束create table 表名(列名 数据类型 default(默认值),列名 数据类型)建表后创建默认约束alter table 表名 add constraint df_表名 default(默认值) for 列名 建表后删除默认约束alter table 表名 drop constraint df_表名 建表时创建外键约束create table 表名(列名 数据类型 foreign key references 外表名(主键),列名 数据类型)建表后创建外键约束alter table 表名 add constraint fk_表名 foreign key(列名) references 外表名(主键) 建表后删除外键约束alter table 表名 drop constraint fk_表名 删除表drop table 表名设置列值自动编号create table 表名(列名 数据类型 int identity(起始值,步长),列名 数据类型) 修改表中列的数据类型alter table 表名[alter column 列名 数据类型]在表中添加一个新列alter table 表名[add 列名 数据类型]删除表中的某一列alter table 表名[drop column 列名] 输入数据insert into 表名 values(对应列的值) 更新数据update 表名 set 新值 where 条件删除数据delete from 表名 where 条件删除表中所有数据truncate table 表名 将现有表中的数据添加到另一个表insert 目标表名 select源表列名 from 源查询所有数据select * from 表名按条件查询数据select * from 表名 where 条件 按条件查询某列不重复数据select distinct 列名 from 表名 where 条件按升序排列查询结果select * from 表名 order by 列名按降序排列查询结果select * from 表名 order by 列名 desc 按条件查询数据并排序select * from 表名 where 条件 order by 列名 在查询结果中自定义列名select 新列名=原列名 from 表名 where 条件在查询结果中返回最前面的行select top 行数 * from 表名在查询结果中返回最前面的行数的百分比select top 百分比 percent * from 表名查询列中所有数值的和select 新列名=sum(列名) from 表名 where 条件查询列中所有数值的平均值select 新列名=avg(列名) from 表名 where 条件查询列中非空值的数目select 新列名=count(列名) from 表名查询表中非空值的数目select 新列名=count(*) from 表名查询列中的最大值select 新列名=max(列名) from 表名查询列中的最小值select 新列名=min(列名) from 表名对查询结果按条件进行分组select 聚合函数(列名) from 表名 group by 列名 having 条件模糊查询select * from 表名 where 列名 like ‘字符通配符’查询表中包含指定值的所有行select * from 表名 where 列名 in ('值')查询表中不包含指定值的所有行select * from 表名 where 列名 not in ('值')查询表中列的数值在数值1到数值2之间的所有行select * from 表名 where 列名 between 数值1 and 数值2查询表1和表2中包含相同列的所有行select * from 表1 inner join 表2 on 表1.列=表2.列 where 条件我空间里有,备忘用的

SQL常用语法

1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE master

EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:mssql7backupMyNwind_1.dat’--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表:drop table tabname 6、说明:增加一个列:Alter table tabname add column col type注:列增加后将不能删除。

sql语句从数据库提取数据

内连接

把两张表相同的地方查询出来

左连接

包括了内连接,同时还查询左表特有的内容

右连接

包括了内连接,同时还查询了右表独有的内容

语法:select * from 表1 inner join 表2 on 表1.字段 = 表2.字段

内连接最重要的是,找出两张表要关联的字段

显式内连接

查询a表和b表共有的数据

select * from a inner jion b on a.id = b.id;

查询students和scores共有的数据

select * from stundets inner join scores on students.studnetNo = scores.studentNo;

语法:select * from 表1,表2 where 两个表的连接条件

select * from students,scores where students.studentNo = scores.studnetNo;

内连接查询显示指定的字段

students表与scores内连接,只显示姓名,课程号,成绩

select name,courseNo,score from studnets inner join scores students.studentNo = scores.studentNo;

表的别名在查询中的使用(当使用表别名可以缩短SQL语句)

select name,coursenNo,score from students st inner join scores cson st.studentsNo = sc.studnetNo;

查询成绩表信息,同时显示成绩对应的课程名称

select * from scores sc inner join course co on sc.courseNo = co.courseNo;

带有where条件的内连接

语法select * from 表1 inner join 表2 on 表1.字段 = 表2.字段 where条件

查询王昭君的信息,要求只显示姓名、课程号、成绩

select name,coursenNo,score from students st inner join scores sc on st.studentNo = sc.studentNo where name = '王昭君'

带有and逻辑运算符的内连接查询

查询姓名为王昭君,并且成绩小于90的信息,要求只显示姓名、成绩

select name,score from students st inner join scores sc on st.studentNo = sc.studentNo where st.name = '王昭君' and sc.score < 90;

查询学生信息和成绩以及成绩对应的课程名称(三张表关联)

select * from students inner join scores on students.studnetNo = scores.studentNo

inner join courses on scores.courseNo = courses.courseNo;

搭框架

基本的select语句框架搭建起来,如果有多表,把相应的多表也联合进来

看条件

决定where后面具体的条件

显示的字段

select后面到底要显示什么字段

查询所有学生的linux的课程成绩,要求只显示姓名、成绩、课程名

第一步:搭框架

select * from students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNo;

第二步:看条件

select * from students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNowhere coursename = 'linux';

第三步:返回字段名

selectname,score,coursenamefrom students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNo where coursename = 'linux';

带有order by 排序的内连接查询

查询成绩最高的男生信息,要求显示姓名、课程名、成绩

selectname,score,coursenamefrom

students inner join scores on students.studentNo = scores.studentNo

inner join courses on scores.courseNo = courses.courseNo

order by score desc limit 0,1;

语法:select * from 表1 left join 表2 表1.字段=表2.字段

查询所有学生的信息以及成绩,包括没有成绩的学生

select * from students innerleft joinscores on studnets,studentNo = scores.studentNo;

语法:select * from 表1 right join 表2 表1.字段=表2.字段

查询所有的课程信息,包括没有成绩的课程

select * from student right join courses on scores.courseNo = courses.courseNo;

多表联合查询,同名字段的处理方式(如果多表查询出现重名字段时,一定要在所查字段前加上指定的表名)

如果一条select要用到多个表,表中有同名字段,就需要 表名.字段名 加以区分

select students.studentNo form students inner join scores on students.studentNo = scores.studentNo;

查询一共有多少省(因为省的没有上级,我们用NULL数据填充)

select count(*) from areas where is null;

查询一共有多少市

select count(*) from areas where is not null;

自关联是同一张表做连接查询

自关联下,一定找到同一张表可关联的不同字段

查询广东省所有城市 (当要用到自关联的时候,需要给表起别名)

select count(*) from areas a1 inner join areas a2 on a1.id = a2.pid where a1.name = '广东';

子查询是嵌套到主查询里面的

子查询作为主查询的数据源或者条件

子查询是独立可以单独运行的查询语句

主查询不能独立运行,依赖子查询的结果

查询大于平均年龄的学生记录

用子查询实现(子查询就是把一张表的结果作为另外一张表的条件)

select * from studnets where age > (select avg(age) from students);

查询30岁的学生的成绩

1.查询30岁学生的studentNo

select studentNo from students where age = 30;

select * from scores where studentNo in ('001','003','011');

用子查询实现

select * from scores where studentNo in (select * from scores where age = 30);

用内连接实现

select * from student st inner join scores sc on st.studentNo = sc.studentNo where sex = '女' ;

用子查询实现

用子查询,查询所有女生的信息和成绩 (把表的查询结果作为另外一个表然后在做内连接)

select * from (select * from students where sex ='女') stu inner join scores sc on stu.studentsNo = sc.studentsNo;

表级子查询--子查询返回结果为多行,多列

1.列出男职工的总数和女职工的总数

select sex,count(*) from employess group by sex;

2.列出非党员职工的总数

select count(*) from employess where politicalstatus ! = '党员';

3.列出所有职工工号,姓名以及所在部门的名称

select empid,empname,deptname from departments d inner join employees e on d.deptid = e.deptid;

4.列出所有职工工号,姓名和对应工资

selecte.empid ,empname,salary from employees e inner join salary on e.empid = s.empid;

5.列出领导岗的姓名以及所在部门名称

select empname,deptname from departments d inner join employees e on d.deptid = e.deptid whereleader is null;

6.列出职工人数大于4的部门号和总人数

select deptid,count(*) from employees group by deptidhavingcount(*) > 4;

7.列出职工总人数大于4的部门号和部门名称

selecte.deptid ,deptname count(*) from departments d inner join employees e on d.deptid = e.deptid group bye.deptid havingcount(*) > 4;

8.列出开发部和测试部的职工号,姓名

select empid,empname from departments d inner join employees e on d.deptid = e.deptid where deptname in ('测试部','开发部');

select e.empid,e.empname from (select * fromdepartments where deptname in ('测试部','开发部')) d inner joinemployees e on d.depid = e.depid;

9.列出市场部所有女职工的姓名和政治面貌

select empname,politicalsta from departments d inner join employees e on d.deptid = e.deptid where deptname ='市场部' and sex ='女';

10.显示所有职工姓名和工资,包括没有工资的职工姓名

select empname,salary from employess e left join salary s on e.empid = s.empid;

11.求不姓孙的所有职工工资

select empname,sum(salary) from employees e left join salary s on e.empid = s.empid where empname not like '孙%';

select empname,salary from (select * from employess where not like '孙%') e inner join salary s on e.empid = s.empid;

sql语法大全基础入门

SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

首先,简要介绍基础语句:

1、创建数据库

CREATE DATABASE database-name

2、删除数据库

drop database dbname

3、备份sql server

--- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4、创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

5、删除新表

drop table tabname

6、增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。

数据库sql语句大全

常用的也不只这些:

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

--- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2... from tab_old definition only

5、说明:删除新表

drop table tabname

6、说明:增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。

以上就是sql基础语法的全部内容,SQL语句语法大全连接对象.ExecuteSQL操作性语句[,RecordAffected][,Option]·RecordAffected为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。

下一篇: 复数单词,特殊名词复数英语单词50个
上一篇: 托福报班费用,托福培训班学费一般多少钱
相关文章
返回顶部