欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

04、MySql表的操纵(上)

程序员文章站 2022-03-10 19:09:44
表是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。 对表的操纵有创建表、查看表、修改表、删除表、向表中插入数据、修改表中的数据 1、创建表 CREATE TABLE table_name (column_name column_type 约束条件)[存储引擎 字符集]; 或者:C ......

是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。

对表的操纵有创建表、查看表、修改表、删除表、向表中插入数据、修改表中的数据

1、创建表

  create table table_name (column_name column_type 约束条件)[存储引擎 字符集];
  或者:create table if not exists table_name (column_name column_type[宽度]约束条件)[存储引擎 字符集]; 
  注意:宽度和条件可选。

  约束条件: 
    • 如果你不想字段为 null 可以设置字段的属性为 not null, 在操作数据库时如果输入该字段的数据为null ,就会报错。
    • auto_increment定义列为自增的属性,一般用于主键,数值会自动加1。
    • primary key关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
    • engine 设置存储引擎,charset 设置编码。

2、查看表

  show tables;       --查看当前数据库中的所有表

  desc table_name;    --查看表的结构

 

  show create table haha;         --查看表详细结构语句

  show table status like 'haha' \g    --列比较多,想看的清楚一点,可以以\g结尾

 

、修改表名

1、修改表名  

    rename table table_name to new_name;

    alter table table_name rename new_name;

  2、修改字段的数据类型

    alter table t1 modify gender char(11);     --只能改属性不能改名字
    alter table t1 change gender age int(12);  --既可以改名也可改属性(把gender改为age)

  3、修改字段gender顺序
    alter table t1 change gender gender int(12) first;         --把gender方在第一列
    alter table t1 change gender gender int(12) after id;      --把gender方在id后面

 

4、添加新字段

  alter table t1 add  age  int(10);

  alter table t1 add  (chinese int(10),english int(10));

 

5、删除字段

  alter table table_name drop 字段名;   --删除列

 

6、插入数据

 

insert into t1(id,name,math,china) values(1,"wing",80,90);  
insert into t1(id,name,math,china) values(2,"king",70,100),(3,"tom",50,70); 
insert into t1 set id=6,math=65; 
insert into t1 values(4,"xiaosan",50,100);                                              
insert into t1(id,math) values(5,70);

 

7、更新表中数据

  update table_name set name="mysql" where id=5; --把表中id=5的记录名字改为mysql

  delete from table_name where id=5; --删除id=5 的一条记录

  delete from table_name;  --删除表中所有数据

 

8、复制表1、复制表结构及数据到新表

1、create table 新表 select * from 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、extra(auto_increment)等属性。需要自己添加,而且容易搞错。

2、只复制表结构到新表
create table 新表 select * from 旧表
或create table 新表  like 旧表

3、复制旧表的数据到新表(假设两个表结构一样)
insert into 新表 select * from 旧表

4、复制旧表的数据到新表(假设两个表结构不一样)
insert into 新表(字段1,字段2,.......) select 字段1,字段2,...... from 旧表

5、show create table 旧表;
这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表

9、删除表

  drop table table_name;