sql 语句和实例
修改字段格式的sql语句: alter table tablename alter column colname newDataType 比如:alter table mytable alter column mycol1 int ; 修改字段名 sp_rename 'made.[chegnji]', 'xingming', 'COLUMN'; 其中made是表格名,chegnji是字段名,xingming是新字段名字,COLUMN表示的是列的意思;
1.创建表格;
create table Customer (name,old,address,sex) values(varchar(50),int,char(50),int);
2.增加一列,也就是增加栏位名字、关键字)
alter table Customer add Sales varchar(50);
3.删除一列;
alter table Customer drop sex;
4.复制表格;
1)只复制表格结构
第一种:select top 0 *into guanqiong from bb;
第二种: select name ,sex into newtable from bb where 1=2;或者select *into newtable from bb where 1=2;
2)复制表格结构和数据;
select name ,sex into newtable from bb where 1=1;
或者select *into newtable from bb where 1=1;
5.查找前几条记录 用top n(表示前几条);
select top 10 *from newtable where Sales > 980;
6.加入想把1个数据结构相同的的表复制另外一个表中;
insert into aaa select * from Customer;
一节、数据表的查询(select)
select 字段列表 [as 别名], * from 数据表名
[where 条件语句]
[group by 分组字段]
[order by 排序字段列表 desc]
[LIMIT startrow,rownumber]
1、Select 字段列表 From 数据表
例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段)
②、select 单价,数量,单价*数量 as 合计金额 from haf (As 设置字段的别名)
2、Select … from … Where 筛选条件式
筛选条件式:①、字符串数据: select * from 成绩单 Where 姓名='李明'
②、万用字符: select * from 成绩单 Where 姓名 like '李%'
select * from 成绩单 Where 姓名 like '%李%'
select * from 成绩单 Where 姓名 like '%李_'
③、特殊的条件式:
⑴= / > / < / <> / >= / <=
⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非)
⑶Where 字段名称 in(值一,值二)
⑷Where 字段名称 Is Null / Where 字段名称 Is Not Null
3、Select … from … group by 字段
SQL函数:
SELECT sex,count(id) as women from `user` group by 'sex';
函数名描述函数名描述
AVG平均值Count计数
MAX最大值MIN最小值
Sum求和
4、Select … from … Order by 字段列表 desc(倒,如果直接写为顺序)
5、Select … from … LIMIT ".$start_rowno.",".($pagesize+1)
第二节 SQL语句实例应用
数据库说明:
student(学生表):
stdid int(11) id号
son char(5) 学号
sname char(20) 姓名
ssex tinyint(1) 性别
sage char(3) 年龄
sdept char(20) 所在系
course(课程表):
couid int(11) id号
cno char(5) 课程号
cname char(20) 课程名
cpno char(6) 选修课号
ccredit char(50) 学分
sc(学生选课表):
scid int(11) id号
cno char(5) 课程号
grade float 成绩
sno char(5) 学号
单表查询:
一、选择表中的若干字段:
查询指定列:
1、查询全体学生的学号与姓名;
select son,sname from student
2、查询全体学生的姓名、学号、所在系;
select sname,son,sdept from student
3、查询全体学生的详细记录;
select * from student
查询经过计算的值:
4、查全体学生的姓名及其出生年份
select sname,year(now())-sage as '出生年份' from student
5、查询全体学生的姓名、出生年份和所有系,要求用大(小)写字母表示所有系名
select sname as '姓名','出生与',year(now())-sage as '出生年份',UPPER(sdept) as '系别' from student
select sname as '姓名','出生与',year(now())-sage as '出生年份',lower(sdept) as '系别' from student
二、选择表中的若干记录:
消除取值重复的行:
6、查询选修了课程的学生学号
select distinct sno from sc
查询满足条件的记录:
比较大小:
7、查询计算机全体学生的名单
select sname from student where sdept='cs'
8、查询所有年龄在20岁以下的学生姓名及其年龄
select sname,sage from student where sage<20
9、查询考试成绩小于90分的学生的学号
select distinct sno from sc where grade<90
确定范围:
10、查询年龄在18-20岁之间的学生的姓名、系别和年龄。
select sname,sdept,sage from student where sage between 18 and 20
11、查询年龄不在19-20岁之间的学生的姓名、系别和年龄。
select sname,sdept,sage from student where sage not between 19 and 20
确定集合:
12、查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。
select sname,ssex from student where sdept in('is','ma','cs')
13、查询不是信息系(is)、数学系(ma)的学生的姓名、系别和年龄。
select sname,ssex from student where sdept not in('is','ma')
字符匹配(like '<匹配串>' %代表任意长度(长度可以为0)的字符串 ; _代表任意单个字符,汉字得用两个"__"):
14、查询学号为95001的学生的详细情况
select * from student where son like '95001'
15、查询所有姓名李的学生的姓名、学号和性别。
select sname,son,ssex from student where sname like '李%'
16、查询姓名是两个字学生的姓名、学号和性别。
select sname,son,ssex from student where sname like '____'
17、查询所有不姓李的学生姓名。
select sname from student where sname not like '李__'
涉及空值的查询:
18、某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩,查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null
19、查询所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null
多重条件查询(and or):
20、查询计算机系年龄在20岁的学生姓名。
select sname from student where sdept='cs' and sage=20
21、查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。
select sname,ssex from student where sdept='is' or sdept='ma' or sdept='cs'
三、对查询结果排序:
22、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
select sno,grade from sc where cno='3' order by grade desc
23、查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
select * from student order by sdept,sage desc
四、使用集函数:
24、查询学生总人数。
select count(*) as '总人数' from student
25、查询选修了课程的学生人数。
select count(distinct sno) as '人数' from sc
26、计算1号课程的学生平均成绩
select format(avg(grade),2) as '平均成绩' from sc where cno='1'
27、查询选修1号课程的学生最高分数。
select max(grade) from sc where cno='1'
五、对查询结果分组:
28、求各个课程号及相应的选课人数。
select cno as '课程号',count(sno) as '人数' from sc group by cno
29、查询选修了3门以上课程的学生学号。
select sno from sc group by sno having count(*)>2
注:where 子句与 having 短语的区别在于作用对象不同,where 子句作用于基本表或视图,从中选择满足条件的记录,having短语作用于组,从中选择满足条件的组。
多表查询
同时查询两个以上的表,称为连接查询。
等值连接:当连接运算符为=时,为等值连接。
1、查询每个学生及其选修课程的情况(等值连接)。
select student.*,sc.* from student,sc where student.son=sc.sno
自然连接:在等值连接中把目标列中重复的属性列去掉。
2、查询每个学生及其选修课程的情况(自然连接)。
sql 语句和实例的更多相关文章
- tp5 r3 一个简单的SQL语句调试实例
tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...
- SqlSugar-执行Sql语句查询实例
使用SqlSugar执行sql语句 1.简单查询 SqlSugarClient db = SugarContext.GetInstance(); //执行sql语句,处理 //1.执行sql,转成li ...
- 一条经典SQL语句优化实例
1.概述 如下SQL语句发生严重消耗资源的问题,使得OS's load average会在30以上,一条语句需要执行上百秒. /*PIXPatient 184176条DomainPatient 184 ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- SQL语句学习手册实例版
SQL语句学习手册实例版 表操作 例1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- sql语句like多个条件的写法实例
这篇文章介绍了sql语句like多个条件的写法实例,有需要的朋友可以参考一下 // 表A no name 1 lu,li,zhang 2 zhou,wei,liu 3 li,fa ...
- Oracle EBS中分类账和法人实体 的关系(有sql语句实例)
Oracle EBS中分类账和法人实体 的关系(有sql语句实例) 2012-12-06 16:05 2822人阅读 评论(0) 收藏 举报 分类: Oracle EBS(12) Oracle数据 ...
- SQL语句实例集合
SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- vertica时间计算SQL语句实例:统计一天内登录的用户
SQL语句实例: select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) day as ...
随机推荐
- Java实现 LeetCode 781 森林中的兔子(分析题)
781. 森林中的兔子 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. 返回森林中兔子的最少数量. 示例: ...
- Java 第十一届 蓝桥杯 省模拟赛 螺旋矩阵
螺旋矩阵 题目 问题描述 对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵. 例如,一个 4 行 5 列的螺旋矩阵如下: 1 2 3 4 5 ...
- (Java实现) 洛谷 P1028 数的计算
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能 ...
- Java实现 蓝桥杯VIP 算法提高 三角形面积
算法提高 三角形面积 时间限制:1.0s 内存限制:256.0MB 问题描述 由三角形的三边长,求其面积. 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c)/2 输入格式 由 ...
- Java GUI 窗体事件
import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; publi ...
- java实现人民币金额大写
在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序. 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误的情况). 比如,用户输 ...
- Java实现 蓝桥杯 历届试题 数字游戏
问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数 ...
- java实现第三届蓝桥杯源码变换
源码变换 这道题因为有一些html语言在编写的时候不会显示出来,所以就用代码格式把题目写出来 [编程题](满分22分) 超文本标记语言(即HTML),是用于描述网页文档的一种标记语言. HTML通过文 ...
- Linux 用户管理命令-userdel和su
userdel [选项] 用户名,可以删除用户,常用选项 -r :删除用户的同时删除用户的家目录,一般都要用,例如:userdel -r xbb 新建用户和删除用户的本质也就是修改了 /etc/sha ...
- ReentrantReadWriteLock源码分析及理解
本文结构 读写锁简介:介绍读写锁.读写锁的特性以及类定义信息 公平策略及Sync同步器:介绍读写锁提供的公平策略以及同步器源码分析 读锁:介绍读锁的一些常用操作和读锁的加锁.解锁的源码分析 写锁:介绍 ...