SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言
作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。
T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。
SQL的分类:
(1):数据定义语言,DDL
用来创建数据库和数据库中的各种对象
数据库中的对象包括:表、视图、索引、存储过程、触发器
DDL常用的命令包括:create、alter、drop
(2):数据操纵语言,DML
可以完成对数据库中数据的查询、更新、删除、插入的功能
DML常用的命令包括:select、update、delete、insert
(3)数据控制语言,DCL
DCL常用的命令包括:grant、revoke、deny
(4)数据类型
1、数字数据类型
a、整型数据类型:bigint、int、smallint、tinyint
b、浮点数据类型:float、real
c、固定精度数据类型:decimal、numeric
d、货币数据类型:money、smallmoney
将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串
2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext
区别char和varchar数据类型:
char数据类型是存放固定长度的字符
Varchar数据类型是存放动态长度的字符
char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格
1、insert 语句:
insert语句是属于SQL语言中的DML
作用:为表插入数据
你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能:
1、如果该字段有一个缺省值(默认值),该值会被使用。
2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。
3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信息:
The column in table mytable may not be null.
4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。
使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符串,你应该使用WRITETEXT语句。
语法:insert into 表名(列名1,列名2,…..) values(值1,值2,….)
注意:(列名1,列名2,…..)可以不写,这样的话,插入的values(值1,值2,….)中的值必须包含表中的所有列,不然会报错。
把INSERT 语句与SELECT 语句结合起来,可以添加多个记录。像这样:
代码:INSERT mytable (first_column,second_column)
SELECT another_first,another_second
FROM anothertable WHERE another_first=’Copy Me!’
这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me!’的记录才被拷贝。
2、update 语句它也是属于SQL语句中的DML, 可以修改表的数据,使用WHERE子句来选择更新特定的记录。
需要更新很长的字符串,应使用UPDATETEXT语句。如果你不提供WHERE子句,表中的所有记录都将被更新。
语法:update 表名 set 列名1=值1,列名2=值2,……..[where 条件….]
update student set sage=20 where sno=’s014’----修改一列
update student set sage=20,set ssex=’女’ where sno=’s014’
----修改多列逗号隔开
3、delete语句也是属于SQL语句中的DML
作用:可删除表中的一行或多行,在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句 中使用。删除应该表中的所有记录,应使用TRUNCATE TABLE语句。
语法:delete from 表名[where 条件….]
delete from student----删除表student中所有数据
delete from student where sno = ‘s014’----删除表student中编号是014的一行
delete from student where sno >= ‘s013’ --删除表student中编号大于等于013的行
4、建立索引
Create INDEX index_name ON table_name (column_name)
说明:对某个表格建立索引后,数据库会对相应列进行自然排序,以增加查询时的速度。
4、基本查询技术:
数据库中提供一种可以将表中的数据查询出来的技术,称为select查询
select查询技术的基本语法格式
select [列名1,列名2,…..] | from 表名1,表名2
[where 条件]
[group by分组的列名]
[having聚合函数比较操作]
[order by 排序的列名]
(1)查询语句中的“*”号代表将表中的列全部显示出来
select * from student
(2)如果只想在查询中显示某一列用:
select sno sname sage from student
注意:“*”和列名只能够二选一,不能够同时出现
(3)在查询的时候可以为表或者列定义别名
A:为列定义别名
select sno as 学号 ,sname as 姓名 from student
或:select ‘学号’=sno, ‘姓名’=sname from student
B:为表定义别名
select sno sname sage ssex from student a
好处:当出现多张表联系起来作查询的时候,如果多张表中含有相同的列名的时候,为表定义别名使得查询比较方便
例如:想查询课程是由哪些老师就是讲授的。
从课程course表和老师teacher表中查车tno列相同的数据
select cname, tname, from course a , teacher b
where a.tno = b.tno
(4)distinct 关键字
此关键字是为了去掉列中重复的值, 对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
select distinct sno from sc
(5)order by 排序(默认升序)
语法:order by 列名[desc | asc]
desc:代表降序排列
asc 代表升序排列
select *from student order by sname
如果不写排序关键字,默认的是升序
select *from student order by sname desc
(6)where关键字使用
Where作为查询筛选结果的一个过程(非常重要)
语法:where 条件1[or | and] [条件2]…
条件1可以包括以下内容:
Where 列名1 <expression> 列名2 | 数值
(7)top n限制返回的行数
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:
代码:SELECT TOP 2 * FROM `testtable`
代码:SELECT TOP 20 PERCENT * FROM `testtable`
条件表达式分类:
1、比较条件:
(>:大于 <:小于 >=:大于等于 =<:小于等于 <>:不等于 =:登于)
例如:学生年龄大于23岁的同学信息
select *from student where sage>23
2、逻辑条件
(and:与运算 or:或运算 not:非)
逻辑操作的用法:
Where 条件1<and | or | not>条件2
例如:查课程编号大于’c002’的课程由哪些老师讲授
sSelect *from teacher ,course = and sourseo > ‘c002’
例如:查选修了课程’c002’,或者成绩大于70的学生有哪些
select sname , sage , cno ,score from student a , sc b
where a.sno = b.sno and (cno=’c002’ or score>70)
例如:not关键字的使用:
select *from sc where score not between 70 and 80
3、in关键字
它是要求查询的结果在某几个值里面
select *from sc where score not in(70,90,80)
select *from course where cno in (‘c001’,’c002’,’c005’)
in还可以应用到子查询中
select *from sc where sno
in (select sno from student where sno >= ‘s002’)
4、like关键字
like是作为SQL模糊查询比较常用的一个技术,在like关键字使用中提出两个比较特殊的符号
%:0个或多个任意字符
_:任意一个字符
sql中delete用法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论