MySQL数据表添加和修改

    xiaoxiao2023-11-08  145

    数据表添加和修改

    修改表结构

    重命名数据表名称

    alter table 旧表名 rename 新表名; 示例: mysql> ALTER TABLE student RENAME student0;

    重命名字段名称

    alter table 数据表名 change 旧字段名 新字段名 字段定义; 示例: mysql> alter table student0 change stuNo studentNo int;

    修改字段类型

    -- 类似于重命名字段 alter table 数据表名 change 旧字段名 旧字段名 字段定义; 示例: mysql> alter table student0 change studentNo studentno varchar(20);

    增加和删除字段

    -- 类似于重命名字段 alter table 数据表名 add 旧字段名 字段定义; 示例: mysql> alter table student0 add sss 字段定义; -- 删除字段 alter table 数据表名 drop 字段名; 示例: alter table student0 drop sss;

    删除表结构

    drop table 数据表名1,数据表名...; drop table if exists 数据表名1,数据表名...; 示例: drop table student1,student2;

    查看警告信

    show warnings;

    数据添加

    -- 添加全部字段数据, 按照字段从左到右的顺序添加,不能为空。 insert into 表名 values(字段值); 示例: mysql> insert into student values( -> 1013,'李文才','男',3,13500000015,'上海卢湾区','limei@bdqn.cn',45032319861 2311000); -- 添加个别字段,也是按照顺序添加,可以跳过不设置的字段 insert into 表名(字段名1,字段名2...) values(字段值1,字段值2...); 示例: mysql> insert into student(name,gender,identityCard) values('老王','女','4322241 97809052456'); -- 同时添加多条数据 insert into 表名(字段名) values(字段值1),(字段值2),(字段值...); 示例: mysql> insert into student(stuNo,name) values(1200,'超人'),(1201,'蝙蝠侠'),(1202 ,'灭霸'); -- 添加多条数据 insert into 表名(字段名) select '海王' union select '海王老婆' union ……; 示例: mysql> insert into student(name) -> select '海王' union -> select '海王老婆';

    数据修改

    -- 全部修改 update 表名 set 字段名 = 字段值; 示例: mysql> update student set number = 2222; -- 条件修改 update 表名 set 字段名1 = 字段值1,字段名2 = 字段值2,... where 条件字段名1 = 条件字段值1,条件字段名2 = 条件字段值2...; 示例: mysql> update student set loginPwd = 10,sex = '女' where gradeID = 2 and phone = 2; -- 数值类型运算 update 表名 set 字段名 = 字段名 + 1 where 条件字段名 = 条件字段值;

    删除数据

    delete from 表名 where 条件字段名1 = 条件字段值1 and/or 条件字段名2 = 条件字段值2; 示例: mysql> delete from student where gradeID = 2 or gradeID = 3; Query OK, 2 rows affected (0.00 sec)

    全表数据删除

    truncate table 表名; 示例: mysql> truncate table student;

    表复制

    -- 将另一张表的对应字段内容添加到新表中 create table 新表名( select 字段名1,字段名2 from 旧表名 ); 示例: mysql> create table student3( -> select stuno,name from student); -- 将旧表字段添加到新表中 create table 新表名 like 旧表名; 示例: mysql> create table student5 like student; -- 完全复制表 create table 新表名 select * from 旧表名; 示例: mysql> create table student6 select * from student; -- 将另一张表的对应字段内容添加到对应表中,前提是字段名要相同 insert into 要添加的表 select 另一张表的字段名1,另一张表的字段名2... from 另一张表; 示例: mysql> insert into student4 select stuno,name from student; -- 将另一张表的全部字段内容添加到对应表中,两个表字段必须一致 insert into 要添加的表 select * from 另一张表; 示例: mysql> insert into student5 select * from student; 可以拷贝一个表中其中的一些字段: CREATE TABLE newadmin AS ( SELECT username, password FROM admin ) 可以将新建的表的字段改名: CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin ) 可以拷贝一部分数据: CREATE TABLE newadmin AS ( SELECT * FROM admin WHERE LEFT(username,1) = 's' ) 可以在创建表的同时定义表中的字段信息: CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin )

    主键和外键<面试题>

    主键:能够唯一标识信息表中的一条数据的字段/字段组

    ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段名);

    ALTER TABLE 表名 ADD CONSTRAINT 主键 PRIMARY KEY 表名(字段名);

    外键<面试题>

    外键:在一张表中的某个字段引用的数据来自另一张表的某个字段的信息。

    主表:它的主键一般是需要被从表引用

    从表:在其中拥有外键 可以引用主表的主键信息

    实现物理外键 :通过SQL语句将外键绑定好 ,可以保证数据一致性。

    ALTER TABLE 从表 ADD CONSTRAINT 键名 FOREIGN KEY (从表字段名) REFERENCES 主表(主表字段名);

    为了能够方便我们进行数据表操作 ,在实际项目中一般不设置物理外键,而设置逻辑外键

    <面试题>DELETE TRUNCATE的区别

    相同点: 都可以进行数据删除(全表删除);

    不同点:DEKETE 可以进行条件删除 TRUNCATE只能进行全表删除

    DELETE 会保留自增序列,TRUNCATE除了表结构,其他数据全部清空,不会保留自增序列

    不同点(先了解):TRUNCATE 会结束事务 而DELETE不会影响到事务。

    <面试题>DELETE TRUNCATE的区别

    相同点:都可以进行数据删除(全表删除)

    不同点:DELETE可以进行条件删除 TRUNCATE只能进行全表删除

    不同点:DELETE会保留自增序列 TRUNCATE除了表结构 其他数据全部清空 不会保留自增序列

    不同点(先了解):TRUNCATE会结束事务 而DELETE不会影响到事务

    主键、外键和索引的区别?

    主键外键索引定义:唯一标识一条记录,不能有重复的,不允许为空表的外键是另一表的主键, 外键可以有重复, 可以是空值唯一,可以有一个空值作用:用来保证数据完整性用来和其他表建立联系用的是提高查询排序的速度个数:主键只能有一个一个表可以有多个外键一个表可以有多个索引
    最新回复(0)