表中数据的操作
- 向指定表中插入数据 ---- 在没有声明目标列的时候是默认的所有列都插数据
(1) 单行插入数据
Insert into [库名.]表名 values (列值 1,列值 2,…,列值 n)
---- 该方法后面的列值个数必须与表的列数一致,不能多,不能少。
Insert into [库名.]表名 (要插入数据的列 1,要插入数据的列2,…要插入数据的列 n) values (列值 1, 列值 2,…,列值 n)
---- 该方法后面的列值个数必须和声明要插入的列的个数一致.
注意:列值的顺序,需要和表中列的顺序或声明的列的顺序一致.
(2) 批量多行插入数据
Insert into [ 库 名 .] 表 名 values ( 列 值 1, 列 值 2,…, 列 值n),(列值 1, 列值 2,…,列值 n);
2. 修改表中的数据
Update [库名.]表名 set 列 1 = 新值 1;
这种方法是直接修改一列的数据故不能使用在唯一约束列或主键列.如果是更新成 null 状态,那么列属性不能是主键或非空约束,这种方法一般情况下不会用到.
Update [库名.]表名 set 列 1 = 新值 1 where 条件表达式;
这种方法是修改某个或某几个值,需要用到 where 条件语句.这种方法较为常用.
3. where 条件表达式
比较运算符<小于 >大于 <=小于等于 >=大于等于 !=不等于 <>不等于(不推荐)
逻辑运算符 and 和 or 或 not 非
And 两边的条件都必须满足才成立
Or 两边的条件满足任意一个才成立
Not 不怎么样才成立
4. 删除指定表中的数据
第一种:
Delete from [库名.]表名; 这种用法不会对表结构造成影响,但是会讲表中的数据全部删除.一般这种不常用
第二种:
Delete from [库名.]表名 where 条件表达式; 这种是删除指定的数据行,较为常见
第三种:
Truncate [库名.]表名; 这种方法是表中数据全部删除,但是删除速度比 delete 快
删除的关键字至今为止我们已经学习了三种 , 分别是:
drop,delete,truncate 那么他们有什么区别呢?
1. drop:可以删除数据库,表(包含表数据和结构),列,约束
2. Delete:可以删除指定的数据行,不会删除表的结构,可以和 where 条件语句搭配使用
3. Truncate:可以删除表中的数据,不会删除表的结构,删除速度比 delete 快,不会删除表.
表的修改(补充)
1. 为指定表更改名字
Alter table [库名.]表名 rename to 新表名;
Rename 就是重命名的意思
To 就是到的意思
Rename table [库名.]旧表名 to 新表名;
2. 为指定表添加主键约束
Alter table [库名.]表名 add primary key(本表主键列名);
注意:primary key 后面必须要声明哪一列是主键列.
3. 为指定的表删除主键约束
Alter table [库名.]表名 drop primary key;
注意:
1.删除主键约束时,primary key 后面不需要写明主键列.
2.如果要删除的主键正被其他表引用着,会报错!!
4.添加非空约束
Alter table [库名.]表名 modify 列名 数据类型[(长度)] not null;
Modify 的用法抽象的可以理解成重定义,但是在进行数据
类型或长度重定义的时候一定要注意改后的类型或长度是否与原有数据匹配.
5.修改表中的某个列名
Alter table [库名.]表名 change 旧列名 新列名 数据类型[(长度)];
Change 也有改变的意思.
这个语法也可以用来重定义数据类型和长度,但是容易和 modify弄混,建议记法上单纯一点.
6.将指定表中的指定列,设置为外键
Alter table [库名.]表名 add constraint 约束名 foreign key(本表外键列名) references 被引用表名(被引用列名);
注意:被引用的列的约束类型,需要主键约束或唯一约束
7. 删除指定表中的外键
比较特殊,需要两步
第一步:删除外键约束
Alter table [库名.]表名 drop foreign key 约束名;
第二步:删除外键的索引
Drop index 索引名 on [库名.]表名;