失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据库入门(sql新建 修改 删除表和基本查询语句)

数据库入门(sql新建 修改 删除表和基本查询语句)

时间:2024-07-19 11:03:49

相关推荐

数据库入门(sql新建 修改 删除表和基本查询语句)

####引言

什么是数据库?-数据库就是可以以表的形式存取数据,并和别人共享的库。

RDBMS-关系型数据库管理系统

sql-结构性查询语言,是标准的关系型数据库语言

在讲sql语言之前首先需要在电脑上安装数据库

1.安装sql server和ssms(从14版本起ssms不再集成在sql server当中)

2.打开ssms连接到数据库

3.右键左侧栏数据库-新建数据库(填写名称并更改资料位置和日志位置 以及起始大小等)

4.(右键新建的数据库,选择新建查询,就可以自由地写代码了,可以用代码建表等等等)

新建完成的数据库展开后,第一项-数据库关系图-下面存放的是E-R图(tables与tables之间的关系)。

行的表示:row/record

列的表示:column/attribute

表里的每一个格子:字段:field/cell

关系型数据库的基本要素是二维表。二维表可以独立使用或通过使用join语句连接起来使用。

主键(primary key)和外键(foreign key)是用来连接二维表之前的重要工具。

primary key:在该表中它对应column的值唯一(不能为NULL)且不能修改或更新,且可以用多列来作为primary key(比如可以是学号+姓名)

foreign key:另外的表中的primary key,通过这样的方式来建立两张表之间的联系。

####表的新建、修改和删除

建表

例:建立学生表Students(Sno,Sname, Semail,Scredit,Sroom);Sno是表Students的主键,具有唯一性约束,Scredit具有约束“大于等于0”;

CREATE TABLE Students(Sno CHAR(8) NOT NULL UNIQUE,Sname CHAR(20) NOT NULL,Semail CHAR(50),Scredit FLOAT,Sroom CHAR(20),CONSTRAINT PK_Students PRIMARY KEY(Sno),CONSTRAINT CK_Students_Scredit CHECK(Scredit>=0))

当然规定主键也可以直接这样写:Sno CHAR(8) PRIMARY KEY,

规定约束条件也可以直接:CHECK(Scredit>=0)

用CONSTRAINT(自定义约束名称)是为了方便取消约束时使用它。

作为别的表的外键:

CREATE TABLE Reports(Sno CHAR(8) NOT NULL,Tno CHAR(8) NOT NULL,Cno CHAR(8) NOT NULL,CONSTRAINT PK_Reports PRIMARY KEY(Sno,Tno,Cno),CONSTRAINT FK_Reports_Sno FOREIGN KEY(Sno) REFERENCES Students,

**修改表** 1.添加列Ssex ``` ALTER TABLE Students ADD Ssex CHAR(2) ```

2.修改列Ssex的数据长度改为4

ALTER TABLE StudentsALTER COLUMN Ssex CHAR(4)

3.取消Scredit“大于等于0”约束

ALTER TABLE StudentsDROP CONSTRAINT CK_Students_Scredit

4.删除表中的某列Sroom

ALTER TABLE StudentsDROP COLUMN Sroom

**删除表**:`DROP TABLE <表名>`

####基本查询语句

SELECT<table fields list>//选出表格中的列FROM<table names list>//选择某表格WHERE<row constraints specification>//对字段进行限制或范围的限定GROUP BY<grouping specification>//用于集合运算HAVING<grouping selection specification>//对集合运算的结果进行限定ORDER BY<order rules specification>//在选了多列时用于选定以某列进行排序(排序方式)

其中select…from…语句是必须的

use [数据库]

go

select * from []

是指想要数据库中某表的所有信息

select Top 100 * from []指选中前100行的信息

从左侧栏直接拖某张表进入写代码的地方,就会有它的名字显示,不用自己打

order by XXX **desc/asc**,XX2//XX2是指当XXX相同时,按XX2的正序排序

desc:descending order 倒序排列

asc:ascending order:正序排列

默认为正序排列

order by后面也可以跟数字 比如说order by 2 指的是select后面跟着的第二个列

为Students表创建按Sno降序排列的索引:CREATE INDEX XSNO ON Students(Sno desc)

创建表Students的按Sname升序排列的唯一性索引:CREATE UNIQUE INDEX XSNA ON Students(Sname ASC)

删除Students表Sno的降序索引:DROP INDEX Students.XSNO

isnull:

select XXX,isnull(Column name,’’) as XXX 就可以将该列中的null全部替换为’’,as可以将该列的名字替换为XXX(就算不想改也要写 不然表中会显示没有列名)

select XXX,XX2*24 as XX3,round(XX2*24,1) as XX3

这里的round是用来控制小数点保留位数。而呈现的记录应该是三列,一列是XXX,另外两列都叫XX3(不会被覆盖,XX2会不在里面),当然,XXX和XX2都需要是表里的列

如果觉得《数据库入门(sql新建 修改 删除表和基本查询语句)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。