SQL Sever基本知识
SQL sever基本知识
一、SQL中表的基本操作命令
0x1 表的创建
create table tablename(col_name1 type,col_name2 type,...)
在数据库school下创建一个student表,包含字段有id,name,age,sex
1 2 |
Create table student(id int,name varchar(64),age int,sex varchar(10)); |
0x2 查看表结构
describe tablename;(describe ->desc)
查看数据库school下的student表结构。
1 2 |
Desc student; |
0x3 表的删除
drop table tablename;
删除数据库school下的student表。
1 2 |
Drop table student; |
0x4 插入数据
Insert into tablename(col_name1,col_name2,...) values (value1,value2,...);
如果插入的数据是字符型用单引号包裹。
在表student(前提是表存在)中插入一行数据集(1,’小明’,12,’男’)
1 2 |
Insert into student(id,name,age) values(1,’小明’,12,’男’); |
0x5 查看数据
Select col_name1,col_name2,... from tablename;
如果要查看所有字段(列),除了可以列出所有列名外,可以使用“*”代替。
Select *. from tablename where condition;
其中condition是查看的数据的条件语句
查看表student(前提是表存在表)的数据
1 2 |
Select * from student; |
0x6 修改数据
Update tablename set col_name1=new_value1,col_name2=new_value2,...where condition;
其中condition是修改数据的条件语句
修改表student(前提是表存在表)中id=1的数据,使name=’张三’
1 2 |
Update student set name=’张三’ where id = 1; |
0x7 删除数据
Delete from tablename where condition;
删除表student(前提是表存在表)中,id=1的数据
1 2 |
Delete from student where id=1; |
二、SQL 数据更新语句
0x1 SQL Server 用命令创建表
1 2 3 4 5 6 7 8 |
USE SPJ; CREATE TABLE S (SNO CHAR(2), SNAME VARCHAR(20) NULL, STATUS CHAR(4) NULL, CITY CHAR(10) NULL PRIMARY KEY(SNO)); |
0x2 通过 SQL 语句向表中插入数据
1 2 3 4 5 6 7 8 9 |
INSERT INTO S (SNO,SNAME,STATUS,CITY) VALUES ('S1','精益','20','天津'), ('S2','盛锡','30','北京'), ('S3','东方红','30','北京'), ('S4','丰泰盛','20','天津'), ('S5','为民','30','上海'); |
0x3 数据更新
①通过 SQL 语句插入数据
将( S2, J6, P4, 200)插入供应情况表 SPJ。
1 2 |
INSERT INTO SPJ VALUES('S2','P4','J6',200); |
②通过 SQL 语句修改数据
将 SPJ 表中所有元组的 QTY 值增加 100。
1 2 |
UPDATE SPJ SET QTY=QTY+100; |
将 P 表中全部蓝色零件的颜色修改为绿色。
1 2 |
UPDATE P SET COLOR='绿' WHERE COLOR='蓝'; |
③通过 SQL 语句删除数据
将 SPJ 表中 SNO 为 S2 且 PNO 为 P4 的元组删除
1 2 |
DELETE FROM SPJ WHERE SNO='S2' AND PNO='P4'; |
三、数据完整性的管理
0x1 添加实体完整性
a) 设置单个主键
将“Student”表中的“Sno”字段设为主键:
1 2 |
ALTER TABLE Student add constraint pk_Sno primary key(Sno); |
注意: 若未设置 Sno 非空, 则需要先添加域完整性。
1 2 |
ALTER TABLE Student ALTER COLUMN Sno CHAR(9) NOT NULL; |
b) 设置多个主键
将“SC”表的“Sno”和“Cno”设置为主键:
1 2 |
ALTER TABLE SC add constraint pk_SnoCno primary key(Sno,Cno); |
0x2 添加域完整性
a)将 Student 表中“Ssex”字段设置为只能取“男”,“女”两值:
1 2 |
ALTER TABLE Student ADD CONSTRAINT CK_Ssex CHECK(Ssex IN('男','女')); |
b)表 Student 添加一身份证号字段, 设置其惟一性。
1 2 |
ALTER TABLE Student ADD ID CHAR(18) UNIQUE(ID); |
c)设置 Student 表中“Sno”字段只能输入数字:
1 2 3 |
ALTER TABLE Student ADD CONSTRAINT CK_Sno CHECK(Sno LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'); |
d)设置男生的年龄必须大于 22, 女生的年龄必须大于 20:
1 2 3 |
ALTER TABLE Student ADD CONSTRAINT CK_age CHECK(Ssex='男' AND Sage>=22 OR Ssex='女' AND Sage>=20); |
e)表 Student 添加一身份证号字段, 设置其惟一性。
1 2 |
ALTER TABLE Student ADD ID CHAR(18) UNIQUE(ID); |
0x3 添加域完整性
将“Student”表和“SC”表中的“Sno”字段设为参照:
1 2 3 |
ALTER TABLE SC ADD CONSTRAINT FK_Sno FOREIGN KEY(Sno) REFERENCES Student(Sno); |
0x4 添加域完整性
对 SC 表, 取消外键 Sno 约束;
1 2 |
Alter table tablename drop constraint constraint_name; |