SQLServer知识点全集1Word文档格式.docx
- 文档编号:21248010
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:47
- 大小:39.97KB
SQLServer知识点全集1Word文档格式.docx
《SQLServer知识点全集1Word文档格式.docx》由会员分享,可在线阅读,更多相关《SQLServer知识点全集1Word文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
)
--查询出生日期在90年代是宠物,相当与>
=and<
=
select*frompetwherebirthbetween'
1990'
and'
1999'
--按主人姓名排序,相同的按宠物姓名倒序排列
select*frompetorderbyowner,namedesc
--查询性别为公的宠物,按生日倒序排列
select*frompetwheresex='
m'
orderbybirthdesc
--char_lenngth()返回的字符的长度,length()返回字节长度
SELECTowner,length(owner),char_length(owner)FROMpetp;
--列出养有宠物狗的人名
selectdistinctownerfrompetwherespecies='
--用两种方法查询出所有狗和猫的名字、出生年份、出生月份
selectname,left(birth,4)asyear,mid(birth,6,2)asmonthfrompet
wherespecies='
orspecies='
cat'
selectname,year(birth)asyear,month(birth)asmonthfrompet
wherespeciesin('
'
--查询所有名字中存在字母'
e'
的人,将他们养的宠物按类别、年龄排序
selectname,species,birth
frompet
whereownerlike'
%e%'
orderbyspecies,birthdesc
--数字函数
selectround(2.345,2),truncate(2.345,2),mod(323,5)
--日期函数
selectnow(),curdate(),curtime()
selectadddate('
2007-02-02'
interval31day)
--求出所有宠物的年龄
selectname,birth,
truncate(datediff(now(),birth)/365,0)asage1,
year(now())-year(birth)-(dayofyear(birth)>
dayofyear(now()))asage2
--分组函数
selectmin(birth),max(birth),avg(birth),count(*),count(sex),
sum(birth)
--每种宠物各有几只
selectspecies,count(*)
groupbyspecies
--查询年龄最大的宠物的信息
select*frompetwherebirth=
(selectmax(birth)frompet)
--每年各出生了几只宠物
selectyear(birth),count(*)frompetgroupbyyear(birth)
--鸟和猫的性别比例
selectspecies,sex,count(*)
wherespeciesin('
groupbyspecies,sex
--各种宠物年龄的和
selectspecies,sum(truncate(datediff(now(),birth)/365,0))asSumAge
--数量大于1的宠物种类
selectspecies,count(*)asc
havingc>
=2
--基本双表关联
selecta.name,a.species,a.sex,b.date,b.type,b.remark
frompeta,eventb
wherea.name=b.name
--查询宠物产仔时的年龄
selecta.name,a.species,
truncate(datediff(b.date,a.birth)/365,0)asage
wherea.name=b.nameandb.type='
litter'
--90年代出生的狗的事件列表
selecta.name,birth,species,sex,date,type,remark
wherea.name=b.nameandbirthbetween'
andspecies='
--活着的宠物按发生的事件类型分组,看各种事件发生的次数
selecttype,count(*)
frompeta,eventb
wherea.name=b.nameanda.deathisnull
groupbytype
--记录的事件数量超过1条的宠物信息
selecta.name,species,sex,count(*)
groupbyb.name
havingcount(*)>
--列出发生了两件事情的宠物的事件记录信息
selecta.name,type,date,remark,b.species,b.sex,b.owner
fromeventa,petb
wherea.name=b.nameand
b.namein
(
selectname
fromevent
groupbyname
havingcount(*)=2
)
--插入语句
insertintopet(name,species,birth)
values('
KKK'
snake'
2007-01-01'
);
insertintopet
KK'
Diane'
f'
null,null);
insertintopetsetname='
k'
owner='
Benny'
--更新语句
updatepetsetspecies='
sex='
birth=now()
wherename='
--将事件表中生日的日期,更新到pet表中相应宠物的birth字段
updatepeta
setbirth=(
selectdate
fromeventb
wherea.name=b.nameandb.type='
birthday'
wherea.namein(
selectname
fromevent
wheretype='
--删除语句
deletefrompetwherenamelike'
k%'
DDL(数据定义语言)语句
1,创建数据库createdatabase数据库名;
mysql>
createdatabasejavaworld;
QueryOK,1rowaffected
2,查看已存在数据库showdatabases;
showdatabases;
+--------------------+
|Database|
|information_schema|
|javaworld|
|mysql|
|test|
4rowsinset
3,选择要操作的数据库use数据库名;
usejavaworld;
Databasechanged
4,查看javaworld数据库中所有的表
showtables;
Emptyset
5,删除数据库dropdatabase数据库名;
dropdatabasejavaworld;
QueryOK,0rowsaffected
3rowsinset
6,创建表createtable表名(字段名(字段类型)约束);
createtableemp(enamevarchar(10),hiredatedate,saldecimal(10,2),deptnoint
(2));
7,查看表的描述desc表名;
descemp;
+----------+---------------+------+-----+---------+-------+
|Field|Type|Null|Key|Default|Extra|
|ename|varchar(10)|YES||NULL||
|hiredate|date|YES||NULL||
|sal|decimal(10,2)|YES||NULL||
|deptno|int
(2)|YES||NULL||
8,查看创建表的SQL语句(引擎和字符集也可看到)
showcreatetable表名;
showcreatetableemp;
+-------+-----------------------------------------------------------------
|Table|CreateTable
|emp|CREATETABLE`emp`(
`ename`varchar(10)defaultNULL,
`hiredate`datedefaultNULL,
`sal`decimal(10,2)defaultNULL,
`deptno`int
(2)defaultNULL
)ENGINE=InnoDBDEFAULTCHARSET=gb2312|
1rowinset
9,删除表droptable表名;
droptableemp;
10,修改表
<
1>
修改表类型
如:
修改emp表的ename字段定义,将varchar(10)改为varchar(20)
altertableempmodifyenamevarchar(20);
Records:
0Duplicates:
0Warnings:
0
|ename|varchar(20)|YES||NULL||
2>
增加表字段
表emp上新增字段age,类型为int(3)
altertableempaddcolumnageint(3);
|age|int(3)|YES||NULL||
5rowsinset
3>
删除表字段
将字段age删除
altertableempdropcolumnage;
4>
字段改名
将ename改名为name,同时修改字段类型为varchar(10)
altertableempchangeenamenamevarchar(10);
|name|varchar(10)|YES||NULL||
5>
修改字段排列顺序
将birth加在ename后
altertableempaddbirthdateafterename;
|birth|date|YES||NULL||
修改字段age,将它放在最前面
altertableempmodifyageint(3)first;
6rowsinset
6>
更加表名
altertableemprenameemp1;
ERROR1146:
Table'
javaworld.emp'
doesn'
texist
+---------------------+
|Tables_in_javaworld|
|emp1|
DML(数据操纵语言)语句
1,插入记录
insertintoemp(ename,hiredate,sal,deptno)values('
zzzx1'
2000-01-01'
2000'
1);
QueryOK,1rowaffected
也可以不指定字段名,但values中值的顺序需和字段名排列顺序一致
insertintoempvalues('
lisa'
2003-02-01'
3000'
2);
或者只对部分字段插入值
insertintoemp(ename,sal)values('
dony'
1000'
查看表
se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 知识点 全集