当前位置:Gxlcms > 数据库问题 > SQL语句

SQL语句

时间:2021-07-01 10:21:17 帮助过:36人阅读

1DDL(数据定义语言)

1)创建数据表

--创建数据表

create table Test(

    Id int primary key,

    Age varchar(20)

)

--创建数据表

create table T_Person1(

Id int primary key,

Name varchar(50),

Age int null

)

--创建表,添加外键

Create table T_Students(

StudentNo char(4),

CourseNo char(4),

Score int,

Primary key(StudentNo),

Foreign key(CourseNo) References T_Course(CourseNo)

);

 

2)修改表结构

--修改表结构,添加字段

Alter table T_Person add NickName nvarchar(50) null;

 

--修改表结构,删除字段

Alter table T_Person Drop NickName;

 

3)删除数据表

--删除数据表

Drop table T_Person;

 

--删除数据表

drop table test

4)创建索引

Create [Unique] Index <索引名> on <基本表名>(<列明序列>);

 

2DML(数据操纵语言)

1)插入语句

insert into T_Person1(Id,Name,Age) values(1,‘Vicky‘,20)

--插入一条据数,字段和值必须前后对应

insert into T_Preson1(Id,Name,Age) values(2,‘Tom‘,19)

insert into T_Person1(Id,Name,Age) values(4,‘Jim‘,19)

insert into T_Person1(Id,Name,Age) values(5,‘Green‘,20)

insert into T_Person1(Id,Name,Age) values(6,‘Hanmeimei‘,21)

insert into T_Person1(Id,Name,Age) values(7,‘Lilei‘,22)

insert into T_Person1(Id,Name,Age) values(8,‘Sky‘,23)

 

insert into T_Person1(Id,Name,Age) values(newid(),‘Tom‘,19)

 

2)更新语句

--修改列,把所有的age字段改为30

update T_Person1 set age=30

 

--把所有的Age字段和Name字段设置为...

update T_Person1 set Age=50,Name=‘Lucy‘

 

 

update T_Person1 set Name=‘Frankie‘ where Age=30

 

update T_Person1 set Name=N中文字符 where Age=20

--中文字符前面最好加上N,以防出现乱码

 

update T_Person1 set Name=N成年人 where Age=30 or Age=50

 

3)删除语句

delete from T_Person;

--删除表中全部数据

 

delete from T_Person1 where Name=‘Tom‘;

--根据条件删除数据

 

4)查询语句

查询语句非常强大,几乎可以查任意东西!

-----------------

---- 数据检索 -----

-----------------

--查询不与任何表关联的数据.

SELECT 1+1; --简单运算
select
1+2 as 结果

 

SELECT newid();--查询一个GUID字符创

 

select GETDATE() as 日期 --查询日期

 

--可以查询SQLServer版本

select @@VERSION as SQLServer版本

 

--一次查询多个

select 1+1 结果, GETDATE() as 日期, @@VERSION as 版本, NEWID() as 编号

 

 

--简单的数据查询.HelloWorld级别

SELECT * FROM T_Employee;

 

--只查询需要的列.

SELECT FNumber FROM T_Employee;

 

--给列取别名.As关键字

SELECT FNumber AS 编号, FName AS 姓名 FROM T_Employee;

 

--使用 WHERE 查询符合条件的记录.

SELECT FName FROM T_Employee WHERE FSalary<5000;

 

--对表记录进行排序,默认排序规则是ASC

SELECT * FROM T_Employee ORDER BY FAge ASC,FSalary DESC;

 

--ORDER BY 子句要放在 WHERE 子句之后.

SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC;

 

--WHERE 中可以使用的逻辑运算符:orandnot<>=>=<=!=<>.

 

--模糊匹配,首字母未知.

SELECT * FROM T_Employee WHERE FName LIKE ‘_arry‘;

 

--模糊匹配,前后多个字符未知.

SELECT * FROM T_Employee WHERE FName LIKE ‘%n%‘;

 

--NULL 表示"不知道",有 NULL 参与的运算结果一般都为 NULL.

 

--查询数据是否为 NULL,不能用 = != <>,要用IS关键字

SELECT * FROM T_Employee WHERE FName IS NULL;

SELECT * FROM T_Employee WHERE FName IS NOT NULL;

 

--查询在某个范围内的数据,IN 表示包含于,IN后面是一个集合

SELECT * FROM T_Employee WHERE FAge IN (23, 25, 28);

 

--下面两条查询语句等价。

SELECT * FROM T_Employee WHERE FAge>=23 AND FAge<=30;

SELECT * FROM T_Employee WHERE FAge BETWEEN 23 AND 30;

 

----创建一张Employee表,以下几个Demo中会用的这张表中的数据

----SQL管理器中执行下面的SQL语句,在T_Employee表中进行练习

create table T_Employee(FNumber varchar(20),

FName varchar(20),

FAge int,

FSalary Numeric(10,2),

primary key (FNumber)

)

 

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘DEV001‘,‘Tom‘,25,8300)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘DEV002‘,‘Jerry‘,28,2300.83)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘SALES001‘,‘Lucy‘,25,5000)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘SALES002‘,‘Lily‘,25,6200)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘SALES003‘,‘Vicky‘,25,1200)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘HR001‘,‘James‘,23,2200.88)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘HR002‘,‘Tom‘,25,5100.36)

insert into T_Employee(FNumber,FName,FAge,FSalary) values(‘IT001‘,‘Tom‘,28,3900)

insert into T_Employee(FNumber,FAge,FSalary) values(‘IT002‘,25,3800)

 

--开始对T_Employee表进行各种操作

--检索所有字段

select * from T_Employee

 

--只检索特定字段

select FName,FAge from T_Employee

 

--带过滤条件的检索

select * from T_Employee

where FSalary<5000

 

--可更改显示列名的关键字asas—起别名

select FName as 姓名,FAge as

人气教程排行