sql 简单语法
1、数据库操作
create database student_info -- 创建数据库
drop database student_info -- 删除数据库
2、表操作
-- 创建表
create table student(
id int not null primary key,
name varchar(20) not null,
age int null,
sex varchar(10)
)
-- 删除表
drop table student
-- 修改表,增加一个列
Alter table student add column address varchar(50)

3、sql语句
简单语句
插入(增):insert into student(id, name, address) values(1, 'Xiaohong', 16)
删除(删):delete from student where age<=6
更新(改):update student set name='Lily' where id=1
查询(查):select * from student
高级语法
模糊查询:select * from student where name like '%Xiao%'
排序:select * from student order by field1,field2 desc
总数:select count(*) as totalcount from student
函数:select sum(age) as sumAge, avg(age) as avgAge, max(age) as maxAge, min(age) as minAge from student
前几: select top 10 * from student order by age desc
去重: select distinct name from student
多个条件: select * from student where name like '%Xiao%' and age=16 or age=20
between: select * from student where age between 10 and 20
in: select * from student where name in ('Lily', 'Amy')
分组: select age, count(*) from student group by age
分组带条件: select age, count(*) from student group by age where age >10 having count(*)<5
4、表连接
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
create table course(
cno int not null primary key,
cname varchar(20) not null
)
create table StudentCourse(
sno int not null,
cno int not null,
score double
) -- 表连接, 查找所有学生的选课记录
select s.name as 学生姓名,sc.cno as 选修课号,sc.score as 成绩
from student s, StudentCourse sc
where s.id=sc.sno -- 内连接, 查找所有成绩及格的选课记录
select s.name as 学生姓名,sc.cno as 选修课号,sc.score as 成绩
from student s
inner join StudentCourse sc on s.id=sc.sno
where sc.score>60 -- 左连接, 查找所有学生的选课记录
select s.id as 学号,sc.cno as 选修课号,sc.score as 成绩
from student s
left join StudentCourse sc on s.id=sc.sno -- 嵌套查询, 查找王敏同学的选课记录
select *
from StudentCourse
where sno in (
select id from student where name='王敏'
) --查找每个学生大于自身平均分的科目
select cno
from StudentCourse a
where score> (
select avg(score) from StudentCourse b where a.sno=b.sno
)
5、SQL 约束
约束用于限制加入表的数据的类型。可以在创建表时或表创建后规定约束。约束主要有以下几类:
- NOT NULL 强制列不能为 NULL 值
- UNIQUE 唯一标识数据库表中的每条记录, 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
- PRIMARY KEY 唯一标识数据库表中的每条记录,主键必须包含唯一的值,主键列不能包含 NULL 值。
- FOREIGN KEY 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY,如StuentCource 的sno指向Student的id
- CHECK 在特定的列中对值进行限制
- DEFAULT 设置默认值
create table student(
id int not null,
name varchar(20) not null,
age int null DEFAULT 1,
UNIQUE (name),
PRIMARY KEY (id),
CONSTRAINT chk_age check (age>0 AND age<200),
CONSTRAINT uq_name unique(name)
)
6、索引
您可以在表中创建索引,以便更加快速高效地查询数据。
-- 创建索引
create index idx_age on student(age asc)
create unique index idx_name on student(name)
-- 删除索引
drop index idx_name
7、视图
视图是基于 SQL 语句的结果集的可视化的表。
-- 删除视图
if exists (select * from dbo.sysobjects where id = object_id(N'dbo.young_student') and objectproperty(id, N'isview') = 1)
drop view young_student
-- 创建视图
create view young_student
as
select * from student where age<10
sql 简单语法的更多相关文章
- SQL简单语法
(1)select SELECT 列名称 FROM 表名称 (2)distinct SELECT DISTINCT 列名称 FROM 表名称 SELECT * FROM 表名称 (3)where SE ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- SQL select 语法(转)
SQL 里面最常用的命令是 SELECT 语句,用于检索数据.语法是: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expr ...
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- T-Sql(一)简单语法
原文:T-Sql(一)简单语法 Sql Server是鄙人学习的第一种数据库,对Sql Server有一种特别的情感,下面就说一下Sql Server的简单语法,适用初学者. 1,创建数据库creat ...
- MySQL基本语法(一):和SQL Server语法的差异小归纳
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Spark的Streaming和Spark的SQL简单入门学习
1.Spark Streaming是什么? a.Spark Streaming是什么? Spark Streaming类似于Apache Storm,用于流式数据的处理.根据其官方文档介绍,Spark ...
随机推荐
- Linux-shell-算术运算{expr、bc、dc、(( ))和[ ]}
Linux-shell-算术运算{expr.bc.dc.(( ))和[ ]} 摘自: https://www.cnblogs.com/snowsolf/p/3325235.html 在Linux下做算 ...
- Log4j配置(转)
原文:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就是用来设置记录 ...
- 一个java多线程面试题
线程a 打印 数字 0--12: 线程b 打印 字母 a--z; 打印结果:0ab1cd2ef3gh4ij5kl6mn7op8qr9st10uv11wx12yz 要求用到 线程间传值: 分析:线程a打 ...
- javascript总结37:DOM:innerText 和 innerHTML
innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...
- hadoop理解
Hadoop的主核心有2部分: 1,HDFS 2, MapReduce 首先: HDFS HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个 ...
- spring mvc注解@RequestMapping
1.url路径映射 基本功能 2.窄化请求映射 根路径+子路径 注意setViewName的路径. 3.限制http请求方法 get和 post 如果是get
- SPOJ - AMR11J ——(BFS)
The wizards and witches of Hogwarts School of Witchcraft found Prof. Binn's History of Magic lesson ...
- MongoDb安全配置:简单的身份认证
mongod默认启动不加任何参数时,是没有身份认证的,任何人都可以登录上进行任何操作 启动时添加--auth可以使用身份验证模式 使用mongod -f mongod.conf配置文件启动时,配置文件 ...
- plsql连接oracle客户端(简单,实用方案)附件
plsql 连接 oracle 需要在本地安装oracle客户端(附件中下载): 将文件下载下来后,放到任意目录,例如 D:\instantclient_10_2 修改 tnsnames.ora 文件 ...
- easyui引入
<% String path = request.getContextPath()+"/"; out.println("<link href='"+ ...