数据表的操作

修改表结构

--修改数据表
ALTER TABLE 表名

SQL代码的书写不考虑顺序,但是批量执行代码需要要考虑好先执行哪些,后执行哪些

在修改数据表结构时,必须要明确:修改的字段中是否存在数据,例如:如果需要更改一个字段的约束为非空约束,那么首先要保证该字段中已有的数据没有NULL值。

因此在做程序之前数据库分析,设计是至关重要

修改字段数据类型

ALTER TABLE 表名
ALTER COLUMN 字段名 目标数据类型

添加字段

ALTER TABLE 表名
ADD 字段名 数据类型 [字段的特征]

删除字段

SQL中删除语法使用DROP关键字,使用DROP关键字一定要谨慎,DROP掉的数据无法恢复

ALTER TABLE 表名
DROP COLUMN 字段名

修改字段特征(约束)

添加主键约束

ALTER TABLE 表名
ADD CONSTRAINT 主键名(PK_ID) PRIMARY KEY (字段名[ID])

添加唯一约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名(UQ_Tel) UNIQUE (字段名[TEL])

添加默认约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名(DF_Address) DEFAULT (默认值['地址不详']) FOR 字段名[ADDRESS]

添加检查约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名(CK_SEX) CHECK (检查的表达式[SEX IN ('男','女')])
--ADD CONSTRAINT CK_SEX CHECK (SEX='男' or SEX='女')

添加非空约束

ALTER TABLE 表名
ALTER COLUMN 字段名(ID) 字段数据类型(INT) NOT NULL

添加外键约束

注意:添加外键时,必须先设置引用表中的引用字段为主键

ALTER TABLE 表名
ADD CONSTRAINT 外键名(FK_SUBID) FOREIGN KEY (字段名[SubID]) REFERENCES 引用表名[Subject](引用字段名[subid])

数据的操作

添加单行数据

INSERT [INTO] 目标表名 [(字段)]  VALUES (字段对应的数据)
INSERT INTO Teacher([NAME],TEL,SUBID) VALUES ('张三',110,1) 

uploading.4e448015.gif转存失败重新上传取消

使用这种插入语法必须要注意:必须要明确这张表中具有非空约束的字段是哪 些

注意:

  1. 列名的个数必须和数据值对应

  2. 非数值类型的数据,必须放在单引号内

  3. 数据值的类型必须和定义的字段的数据类型保持一致

  4. 添加数据一定要注意数据表中的字段的各种约束问题,违反约束添加失败

  5. 这种添加数据的语法是只能添加一行数据

INSERT Teacher VALUES ('李四',1111111,2)

使用这种插入语法必须要注意:这张表里面的所有字段都必须为其提供对应的 数据值除过自增列之外,而且数据值的顺序必须保持和数据表字段的顺序一致

添加多行数据

INSERT INTO [SUBJECT]
SELECT '.NET' UNION
SELECT 'WEB' UNION
SELECT 'JAVA' UNION
SELECT 'Python'

uploading.4e448015.gif转存失败重新上传取消

简单查询数据

SELECT <字段名> FROM 表名 [WHERE <查询条件>]
SELECT ID,[NAME] FROM TEACHER

uploading.4e448015.gif转存失败重新上传取消

注意:

  1. 在查询表的语法中不提供查询条件,则默认是查询整张表

  2. 在查询表的语法中提供了表中已有的部分字段,则查询结果中只会出现语法中提供的字段对应的数据,而且顺序和语法中字段的顺序一致

  3. 如果想要查询整张表的数据,则直接将字段名替换成一个“*”即可

    SELECT * FROM TEACHER
--根据条件查询
SELECT * FROM TEACHER WHERE ID=10010

修改数据

UPDATE 表名 SET <字段名1=数据值1,字段名2=数据值2,……> [WHERE<条件>]
UPDATE TEACHER SET SUBID=6 WHERE ID=10002

注意:

修改语法中的条件可以不提供,如果不提供条件则默认将目标表中的指定的这个字段的所有数据全部进行修改

具体的修改方案可以根据实际情况的不同,去书写SQL语句

UPDATE TEACHER SET SUBID=6 WHERE ID=10002
UPDATE TEACHER SET SUBID=1,TEL=112233 WHERE ID=10000
​
UPDATE TEACHER SET SUBID=2 WHERE ID=10001
UPDATE TEACHER SET SUBID=3 WHERE ID=10009
​
UPDATE TEACHER SET SUBID=4 WHERE ID=10010 OR ID=10011

删除数据

DELETE FROM 表名 [WHERE 条件]
DELETE FROM TEACHER WHERE ID=10011

注意:

  1. 删除表中的数据不等于删除整张表所以删除不能用DROP

  2. 如果使用DELETE删除语法不提供删除条件则默认删除整张表中的数据

  3. 使用DELETE语法删除的数据如果有自增字段,那么被删除的自增数据不会再次被填充

还原数据表

TRUNCATE TABLE 表名
TRUNCATE TABLE TEACHER

注意:

  1. 清空数据表中的数据可以使用

    DELETE FROM 表名  或者
    TRUNCATE TABLE 表名

    DELETE整张表中的数据相当于将表中的数据直接全部删除,自增量属于表字段的特征不会被改变

    TRUNCATE还原整张表,相当于将表格式化清空,里面的所有数据被清除,表的所有字段特征属性还原,数据表恢复到创建数据时的状态

  2. 以上的两种清空数据表中的数据都不会影响数据表对象本身,而使用DROP删除表则是将数据库中的这个数据表对象直接 删除不可恢复

  3. TRUNCATE比DELETE执行速度快,TRUNCATE比DELETE使用的系统资源和事务日志资源更少

总结

使用数据库管理系统软件操作数据基本上划分为两种操作:添加数据和查询数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值