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 ...
随机推荐
- 23-tcp协议——TIME_WAIT状态和FIN_WAIT2状态
23-tcp协议——TIME_WAIT状态和FIN_WAIT2状态 摘自:https://blog.csdn.net/qq_35733751/article/details/80146161 2018 ...
- Spring Boot☞ 多数据源配置(二):Spring-data-jpa
效果图: 代码区: package com.wls.integrateplugs.datasource; import org.springframework.beans.factory.annota ...
- hdu Lovekey(水题)
#include<stdio.h> #include<string.h> ]; int main() { ],s2[]; int l1,l2,i,j,k; while(scan ...
- centos7.0查看有没有运行mysql
centos7自带是mariadb,一个mysql的变种. 查看有没有安装过:yum list installed mysql*rpm -qa | grep mysql* 安装mysql软件(mari ...
- 用layer-list做一个卡片背景
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android=" ...
- ibatis源码学习1_整体设计和核心流程
背景介绍ibatis实现之前,先来看一段jdbc代码: Class.forName("com.mysql.jdbc.Driver"); String url = "jdb ...
- 解决word2013老是打开未响应情况
问题:自己装了word2013时,每次打开word或者工作时,老是出现一个圈圈,提示未反应,是否关闭程序这样的提示: 解决方法:文件->选项->高级->显示->禁用硬件加速,将 ...
- opencv——阈值分割图像
#include "stdafx.h" #include "opencv2\opencv.hpp" using namespace cv; IplImage* ...
- Spring学习(二)——使用Gradle构建一个简单的Spring MVC Web应用程序
1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module ...
- solr入门教程-较详细
Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在 ...