CREATE DATABASE 数据库名称
CREATE TABLE 表名称 ( -- not null 设置非空 列名称1 数据类型 not null, 列名称2 数据类型, ....... --设置主键 constraint PK_Reader_ID primary key (Reader_id) )
1.设置外键约束
alter table 表A add constraint FK_B(外键缩写FK_...) foreign key (列名) references 表B(列名)
示例:
alter table Readers add foreign key(Type_id) references ReadersType(Type_id)
2.设置默认约束
alter table 表名 add constraint 约束名 default 默认值 for 列名
示例:
alter table Readers add constraint df_Type_id default 2 for Type_id
3.设置字段值的条件约束
alter table 表名 add 字段名 数据类型 constraint 约束名 check(约束条件)
示例:
alter table Books add BookNum Tinyint constraint CK_BookNum check(BookNum>=0)
1.插入全部字段名的值
insert into 表名 values(数据,数据,数据,.....)
示例:
insert into Readers values (2013010010,'张会悦',2,'医学系',null,'女','1994-02-20')
2.插入部分数据
insert into 表明 (列名,列名,..) values (数据,数据,...)
示例:
insert into stuinfo(sid,sname,sclass) values (3,'码仙3',1003);
3.插入多条数据
insert into 表名(列名,列名...) values (列值,列值,..),(列值,列值,..),(列值,列值,...),....
示例:
INSERT INTO items(name,city,price,number,picture) VALUES ('耐克运动鞋','广州',500,1000,'003.jpg'), ('耐克运动鞋2','广州2',500,1000,'002.jpg');
update 表名 set 列名=新的字面值 where 条件
注意:不添加条件会更改该列的全部值
示例:
update ReadersType set BorrowTerm=45 where Type_Name='其他'
删除数据
delete from 表名 where 条件
注意:不添加条件会删除整张表
示例:
delete from Books where Author='高玉祥'
1.查询全张表数据
select * from 表名
2.查询全表指定条件的数据
select * from 表名 where 条件
示例:
select * from Readers where Reader_id=20088702
3.查询显示指定列满足指定条件的数据
select 列名,列名,... from 表名 where 条件
示例:
select Book_Name,Author,publishedDate,price from Books where publisher='清华大学出版社'
4.模糊查询
select * from 表名 where 列名 like 数据
示例:
select * from Books where BooK_Name like '%数据库%'
5.查询数据并排序
desc:降序
asc:升序
select * from 表名 order by 列名 desc
示例:
select * from Books order by PublishedDate desc
select * from 表名 order by 列名 asc(不写默认升序)
示例:
select * from Books order by PublishedDate asc select * from Books order by PublishedDate
6.查询并显示前n行数据
select top n * from 表名 order by 列名 desc
示例:
--查询降序,并显示前三行数据 select top 3 * from Books order by PublishedDate desc
7.查询并更改列名显示
as 或者 空格 或者 =
select 列名 as 新列名,列名 as 新列名,...... from 表名
示例:
select BookNum as '图书总量' from Books
8.将查询的数据存入新表中
1.表不存在
select * into 新表名 from 表名 where 条件
示例:
select * into bookstsinghua from Books where publisher='清华大学出版社' select (字段1,字段2,...) into b from a
2.表存在
如果两表字段相同
--b表存在(两表结构一样) insert into b select * from a
若两表只是有部分(字段)相同,则
insert into b(col1,col2,col3,col4,...) select col1,col2,col3,col4,... from a where...
9.sum函数
sum(列名或者数据) 求和函数
将某张表的某列不同数据统计并显示
--将Readers表中的Department列不同系部的读者人数显示 select Department as 系部,sum(1) as '读者人数' from Readers group by Department --查询每年借出的图书数量。(按year(BorrowDate)分类) select datepart(yyyy,BorrowDate) as '年份',sum(1) as '图书数量' from Borrow group by datepart(yyyy,BorrowDate)
10.group by
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
11.跨表查询
同一数据库
方法1:
---Books,Borrow,Readers 三张表 Borrow.Book_Id=Books.Book_id and Borrow.Reader_Id=Readers.Reader_id 为主外键 select Books.BooK_Name as '图书名称',Books.Author as '作者',Books.PublishedDate as '出版日期',Readers.Reader_id as '读者编号',Borrow.BorrowDate as '借阅日期',Borrow.ReturnDate as '归还日期' from Books,Readers,Borrow where Author='李志鸿' and Borrow.Book_Id=Books.Book_id and Borrow.Reader_Id=Readers.Reader_id
方法2:
--使用join关键字连接两张表 一对多 SELECT * FROM student INNER JOIN class on student.stu_classes = class.id AND class.class_name = '1804' --使用join关键字连接两张表加中间表 多对多 SELECT * FROM teacher INNER JOIN cla_teacher ON cla_teacher.teacher_id = teacher.id INNER JOIN class ON class.id = cla_teacher.class_id and class.class_name = '1804'
12.UNION 和 UNION ALL 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。