SQL基础操作

AND与or的区别

AND :可以将N多的条件下使用AND运算符。采取动作的SQL语句,无论是事务或查询,所有分离的条件,必须为True

or:可以将N多的条件下使用OR运算符。SQL语句将要采取的动作,无论是一个事务或查询,任何一个OR必须为TRUE分离的条件

--通配符

_ 匹配单个

%多字符匹配

--空值检测

查询时如果需要查某字段为空的需要使用 is null,不能使用=null

is null或者is not null

--反义运算符

反义运算符(!=   !<   !>)建立在同义运算符对面(=  <   >)

不等于<>

不大于<=

不小于>=

--多值检测

要获取23,25,28岁员工信息

select * from tableA where age=23 or age=25 or age=28或者

使用in关键字

select * from tableA where age in(23,25,28)

in在不间断的值时使用更好如果是连续的值可以使用范围查询条件

select * from tableA where age>23 and age <28   或者

使用between and获得范围这在sql2008后才有

select * from tableA where age between 23 and 28

--查询工资小于5000,年龄在25到28之间的

select * from T_Employee

where FSalary<5000

and Fage BETWEEN 25 AND 28

--分组

group by

需要分组的所有列都必须位于group by子句的列表中,不在子句的列是不能放在select语句后的列名列表中的

采用分组的查询结果集时分组形势的,所以不表示分散的其它数据,想展示其它数据需要使用聚合函数

--各个年龄段的人数

select Fage,count(*) as 数量 from T_Employee  group by Fage

Having 子句

用于过滤分组后条件

--检查人数大于1的年龄段

select fage,count(*) as 数量 from T_employee group by  fage having count(*)>1

注意:

having后如果使用count(*)不会有问题,但如果使用别名去查询会出现列名无效提示因为还没有被编译,此时可以使用子查询

--限制结果集行数

Row_number()

select row_number(order by FSalary) ,*from T_Employee

--抑制数据重复

DISTINCT

--字符串拼接

ms sqlserver中使用+号拼接

length计算字段长度

--联合结果集

原则:每个结果集必须有相同的猎术,②每个结果集的列必须类型相容

union

--函数

abs()绝对值,power()求指数,sqrt()平方根,rand()随机数,Ceiling()向上取整,Floor()向下取整,round()四舍五入

getDate()获取当前时间

--索引

create INDEX 索引名 ON 表名(字段1,字段3,字段2)--创建,索引名保持唯一性

DROP INDEX 索引名 ON 表名 --删除索引

--约束

非空约束NOT NULL,唯一约束 UNIQUE,

CHECK约束:检查插入数据是否满足条件

主键约束,外键约束

--表连接

内连接inner join  将几张表等值连接

select FNumber,FPrice from T_Order inner join T_Customer on FCustomerId=T_Customer.FId

where T_Customer.FName=‘TOM‘

不等值连接  在on子句后使用不等于、大于、小于等

交叉连接   没有on子句

select ... from 表名 cross join 表名

左链接left join

左表中所有的记录都会被防盗结果集中,无论是否在右表中存在匹配记录

--查询每张订单的单号、价格、对应客户的名称及年龄

select o.FNumber,o.FPrice,o.FCustomerId,c.FName,c.FAge from  T_order o

left join T_Customer c

on o.FCustomerId=c.FID

右连接 right join

与左连接相反

--子查询

where语句中的标量子查询

select * from T_ReaderFavorite

where FCategoryId=(

select FID from T_Category where FName=‘story‘

)

in运算符与子查询

--查询出所有年份的读者信息

select * from T_Reader where FYearOfjoin in(

select FYearPublished from T_Book

)

any运算符与子查询

=Any等价于in运算符

<>ANY等价于not in运算符

EXISTS运算符:它不予列匹配,用来检查每一行是否匹配子查询,可以认为Exists就是用来匹配子查询结果是否为空的

Insert into. 目标表..SELECT * from 要查的表--将数据从一张表导入另外一张表

--索引

聚簇索引:索引顺序与数据表的物理顺序相同,eg字典的拼音顺序

非聚簇索引:索引孙旭与数据表的物理顺序不同,eg字典的偏旁

索引的存储是占用资源的所以创建索引也要有限度,且索引采用B树结构存储,在增删改时会产生大量存储碎片

增加字段: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数

删除字段: alter table [表名] drop 字段名

修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)

删除表: drop table [表名]

Insert创建表

create table #famousjaycess2
(
jc varchar (15) DEFAULT ‘‘,
occupation varchar (25) DEFAULT ‘ROCK STAT‘,
becamefamous int default 0 ,
notes text null
)
GO

根据下表,编写sql语句;表A、表B的UserName进行关联找出表A有表B没有的记录,只能用一个select

假定通过id字段关联 如果查询结果要显示userName那么on时就要关联UserName

1)

select * from A where id not in (select id from B)

2)

select A.* from A LEFT JOIN B ON A.id = B.ID WHERE B.ID IS NULL

时间: 2024-08-06 18:43:21

SQL基础操作的相关文章

Learn SQL | 基础操作综合练习

一.创建表 创建表student,特征包括学生编号.姓名.性别.出生年月及班级. create table student ( SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(5) ); 创建表course,特征包括课程编号.课程名称和教师编号. create table course ( CNO VARCHAR(5) N

MySQL数据库基础操作语句

SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,分为3种类型: 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER 2.DML语句 数据库操纵语言: 插入数据INSERT.删除数据DELETE.更新数据UPDATE.查询数据SELECT 3.DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT.REVOKE(取消授权)SQL基础操作语句: 管理员登录:mysql -uroot -p 设置管理员密码:set pa

第三章 - SQL基础及元数据获取

SQL的介绍 SQL的定义:结构化查询语句 SQL的作用:对库和表进行操作 SQL的常用分类 DDL 数据定义语言(Data Definition Language) DCL 数据控制语言(Data Control Language) DML 数据操作语言(Data Manipulation Language ) DQL 数据查询语言(Data Query Language) 表的核心属性介绍 列的属性 数据类型 ## 数值类型 - tinyint 极小整数数据类型(0-255) - INT 常

mysql基础操作、sql技巧和sql的常见优化

一.常见操作 1.复制表结构create table t2 like t1 复制表数据insert into t2 select * from t1 2.mysql索引 alter table用来创建普通索引.unique索引或primary key索引 alter table t add index index_name(column_list) alter table t add unique(column_list) alter table t add primary key(column

(转载)SQL基础--&gt; 约束(CONSTRAINT)

感谢Leshami的分享,原文地址:http://blog.csdn.net/leshami/article/details/5711367 --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 参照完整性:不能引

Oracle实践--PL/SQL基础之表分区

PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ---------------------------------------------

mysql的基础操作指令整理|环境redhat6

1.安装 yum-y install mysql mysql-server service mysqld start|stop|restart        ##启动|停止|重启 chkconfig mysqld on|off                  ##开机启动|关闭 此时输入:mysql就能启动进入(记得是start状态) 2.改密 mysqladmin –uroot password             ##创建密码 mysqladmin–uroot –pxxoo passw

Oracle实践--PL/SQL基础之游标

PL/SQL基础入门之游标 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ----------------------------------------------

[SQL] SQL 基础知识梳理(一)- 数据库与 SQL

SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 序 目录 What's 数据库 数据库结构 SQL 概要 创建表 删除和更新表 1-1 What's 数据库 1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 2.数据库管理系统(Batabase Management Syste