SQL命令

1.create table——创建新表

create table Students (
                        Sno int constraint PK_Students_Sno primary key,
                        Sname nvarchar(20) not null,
                        age int constraint DK_Students_age default 20,
                        sex nvarchar(1) not null,
                        place nvarchar(30) not null);

sql中的数据类型:

integer(size),int(size),smallint(size),tinyint(size):仅容纳整数,在括号内规定数字的最大位数。

decimal(size,d),numeric(size,d):容纳带有小数的数字,"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

char(size):容纳固定长度的字符串(可容纳字母、数字以及特殊字符),在括号中规定字符串的长度。

varchar(size):容纳可变长度的字符串(可容纳字母、数字以及特殊的字符),在括号中规定字符串的最大长度。

date(yyyymmdd) :容纳日期。

nvarchar(n):包含n个字符的可变长度Unicode字符数据,长度在1到4000.

constraint 用于给约束命名,这里把Students表中的Sno列添加一个名为PK_Students_Sno的主键,给age列添加一个默认值。

在数据库中约束有6种:

①主键(primary key)约束:列非空,不重复。

②check约束:对一列数据进行限制。例如:check(age>20),age列的数据都要大于20.

③unique约束:列中的数据唯一,不重复,可以有null值,但null值只能有一个。

④默认约束:列的数据默认为一个值 default

⑤外键(foreign key)约束: constraint  外键名 foreign key(列名)reference 被引用表名(列名)

添加了外键的列中的值必须在所参考列中存在。

⑥not null

2.insert into——插入数据 

insert into Students(Sno,sname,sex,place)values(990027,'胡伟','男','湖南');

SQL命令

3.update——修改表中的数据

update 表名 set 列名=新值 where 列名 = 某值

update Students set age = 22 where Sno=990027;

4.delete——删除表中的数据

删除某一行:

delete from 表名 where 列名 = 值

删除整个表的数据,但不删除表,表的结构、属性和索引都是完整的:

delete from 表名 或 delete * from 表名 或 truncate  table  表名

5.alter table——添加、修改、删除列及列的属性

添加列:

alter table 表名 add 列名  列的数据类型;

添加列的主键:

alter table 表名 add  constraint 主键名 primary key(列名);

删除列:

alter table 表名 drop column 列名;

修改列的数据类型:

alter table 表名 alter column 列名 新数据类型;

6.drop——删除索引、表、数据库

删除表:

drop table 表名;

7.select——查询

select用与从表中查询数据,结果被存储在一个结果表中(结果集)

select 列名 from 表名;

查询表的所有列的数据:

select * from 表名;

8.distinct

如果某列有重复值,仅需要选取不同的值:

select distinct 列名 from 表名;

9.where

select  列名 from 表名 where 列名  运算符   值;

select  Sname from Students where age >20;

可以使用的运算符:

=   ,>,<  , >=,   >=,

<>  不等于(某些版本可以用:!=)

between....and...

like

10.关于SQL通配符:

%             替代一个或多个字符

_              仅替代一个字符

[charlist]    字符列中的任何单一字符

[^charlist] 或 [!charlist]  不在字符列中的任何单一字符

通配符必须和like运算符一起使用

11.like

用于在where子句中搜索列中的指定模式,搭配通配符。

使用%:

查询Students表中姓胡的学生的信息:

select * from Students where Sname like'胡%';

查询Students表中名字里含有“胡”字的学生的信息:

select * from Students where Sname like'%胡%';

使用_:

查询表中年龄值为第一个字符为3的学生的信息

select * from Students where age like '_3';

使用[chasrlist]:

查询表中姓胡、程的学生的信息:

select * from Students where Sname like '[胡程]%';

SQL命令

使用[^charlist]:

查询表中不姓胡、程的学生的信息:

select * from Students where Sname like '[^胡程]%';

SQL命令

12.between   and

select  列名 from 表名 where 列名 between  value1  and  value2;

不同数据库对between  and的操作是有差异的,有的会列出value1和value2之间的数据,但不包括value1和value2,有的数据库会列出value1和value2。

如果列出value1和value2范围之外的数据:

select  列名 from 表名 where 列名 not between  value1  and  value2;

13.in

查询年龄为23和24的学生的信息:

select  * from Studens where age in(23,24);

14.and&or

and 和or可在where子语句中把两个和多个条件结合起来,and要求连接的条件都成立,or要求连接的条件成立一个就行。

15.order by

用于根据指定的列对结果集排序,默认按照升序排序,降序使用desc关键字。

SQL函数

1.AVG():返回某数值列的平均值,null值不包括在计算中。

select AVG(列名) from table;

2.count(列名):返回指定列的值的数目,不包括null。

count(*):返回表中的记录数

count(distinct 列名):返回指定列不同值的数目

3.first():返回指定字段的第一条记录。

4.last():返回指定字段的最后一条记录。

5.Max();返回某一列的最大值,可用于文本列,获取字母排序的最大值

6.Min():返回某一列的最小值,可用于文本列,获取字母排序的最小值

7.sum():求某一列的总值。

8.having:由于where关键字无法与合计函数一起使用,需用having连接合计函数。

9.group by:用于结合合计函数,根据一个或多个列对结果集进行分组。

 

上一篇:7.SQL_数据查询语言DQL(更新中)


下一篇:MyBatis详细介绍