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 简单语法的更多相关文章

  1. SQL简单语法

    (1)select SELECT 列名称 FROM 表名称 (2)distinct SELECT DISTINCT 列名称 FROM 表名称 SELECT * FROM 表名称 (3)where SE ...

  2. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

  4. SQL select 语法(转)

    SQL 里面最常用的命令是 SELECT 语句,用于检索数据.语法是: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expr ...

  5. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  6. sql 常用语法汇总

    Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...

  7. T-Sql(一)简单语法

    原文:T-Sql(一)简单语法 Sql Server是鄙人学习的第一种数据库,对Sql Server有一种特别的情感,下面就说一下Sql Server的简单语法,适用初学者. 1,创建数据库creat ...

  8. MySQL基本语法(一):和SQL Server语法的差异小归纳

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  9. Spark的Streaming和Spark的SQL简单入门学习

    1.Spark Streaming是什么? a.Spark Streaming是什么? Spark Streaming类似于Apache Storm,用于流式数据的处理.根据其官方文档介绍,Spark ...

随机推荐

  1. Spring Boot☞ 使用Thymeleaf模板引擎渲染web视图

    静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...

  2. Perl 学习笔记-标量数据

    最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...

  3. mongodb新建用户,

    1.用管理 员用户登录mongoDB use hzb_test db.createUser({user: "hzb",pwd: "hzb",roles: [{ ...

  4. Spring框架总结(一)

    名词解释: 框架就是组件的集合.比如:Struts.Spring.Hibernate就是组件的集合 组件就是常用的功能包封装成工具类. 常用组件: Dom4j/Xpath.DBUtils.C3p0.B ...

  5. UVa 10766 Organising the Organisation (生成树计数)

    题意:给定一个公司的人数,然后还有一个boss,然后再给定一些人,他们不能成为直属上下级关系,问你有多少种安排方式(树). 析:就是一个生成树计数,由于有些人不能成为上下级关系,也就是说他们之间没有边 ...

  6. SQL*Plus用法指南

    SQL是一种命令式的语言,它是用户操作数据库的最重要的一种方式.SQL语句在执行时,需要有一个执行环境. 开发人员在开发软件时,最终的结果是形成一个应用程序.在应用程序中可以嵌入SQL语句,利用这些S ...

  7. WordPaster2项目变化

    1.1.1. jsp 1.引入json2.min.js 2.控件名称改为WordPasterManager 3.文件保存逻辑更新,直接使用控件生成的文件名称 1.1.2. asp.net 1.引入js ...

  8. opencv—读取一张图片并滤波

    #include <opencv2\opencv.hpp> #include <iostream> #include <string> using namespac ...

  9. 微软2014实习生招聘笔试第2题 the k-th string

    Time Limit: 10000msCase Time Limit: 1000msMemory Limit: 256MB Description Consider a string set that ...

  10. Nutch 快速入门(Nutch 2.2.1+Hbase+Solr)

    http://www.tuicool.com/articles/VfEFjm Nutch 2.x 与 Nutch 1.x 相比,剥离出了存储层,放到了gora中,可以使用多种数据库,例如HBase, ...