Mysql常见的表操作和数据操作



Mysql数据库的表操作:
创建表
1、创建表的语法形式
CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
......
属性名 数据类型
);
完整性约束条件表:
PRIMARYKEY                 主键
FOREIGNKEY                 外键
NOTNULL                     不能为空
UNIQUE                        唯一索引
AUTO_INCREMENT              自动增加
DEFAULT                        默认值
 
CREATE TABLE example0 (id INT,
                              name VARCHAR(20),
                              sex    BOOLEAN
                           );
2、设置表的主键
单字段主键
属性名数据类型 PRIMARY KEY
CREATE TABLE example1( stu_id  INT PRIMARY KEY,
                          stu_name  VARCHAR(20),
                           stu_sex BOOLEAN,
                    );

多字段主键
PRIMARY KEY(属性名1, 属性名2…属性名n)
CREATE TABLE example2(stu_id INT,
                           course_idINT,
                           gradeFLOAT,
                           PRIMARY KEY(stu_id, course_id)
                          );
3、设置表的外键
CONSTRAINT 外键别名 FOREIGN KEY (属性1.1, 属性1.2,…, 属性1.n)
         REFERENCES表名(属性2.1, 属性2.2,…, 属性2.n)
CREATE TABLE example3(stu_id INT,
                           course_idINT,
                           CONSTRAINTc_fk FOREIGN KEY (stu_id, course_id)
                           REFERENCESexample2(stu_id, course_id)
                    );
 4、设置表的非空约束
CREATE TABLE example4(id INT NOT NULL PRIMARYKEY,
                           name VARCHAR(20)NOT NULL,
                           stu_id INT,
                           CONSTRAINTd_fk FOREIGN KEY(stu_id),
                           REFERENCE Sexample1(stu_id)
                                     ); 
5、设置表的唯一性约束
属性名 数据类型 UNIQUE
CREATE TABLE example5(id INTPRIMARY KEY,
                           stu_id INT UNIQUE,
                           name VARCHAR(20) NOT NULL
                    ); 
6、设置表的属性值自动增加
属性名 数据类型 AUTO_INCREMENT
CREATE TABLE example6(id INT PRIMARY KEY AUTO_INCREMENT,
                           stu_id INTUNIQUE,
                           name VARCHAR(20)NOT NULL
                    );
7、设置表的属性的默认值
属性名 数据类型 DEFAULT 默认值
CREATE TABLE example7(id INT PRIMARY KEY AUTO_INCREMENT,
                           stu_id INTUNIQUE,
                           name VARCHAR(20) NOT NULL.
                           english VARCHAR(20) DEFAULT 'zero',
                           computer   FLOAT DEFAULT 0
                          ); 
2、查看表结构
1、查看表基本结构语句DESCRIBE
DESC 表名

2、查看表详细结构语句SHOW CREATE TABLE

SHOW CREATE TABLE 表名;
SHOW CREATE TABLE example example1\G;

3、修改表
1、修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
DESC example0;
ALTER TABLE example0 RENAME TO user; 
2、修改字段的数据类型
ALTER TABLE 表名 MODIFY 属性名数据类型;
DESC user;
ALTER TABLE user MODIFY name VARCHAR(30);
DESC user; 
3~6、字段及数据类型的增、删,改以及改变位置\
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST|AFTER属性名2];
ALTER TABLE 表名 DROP 属性名;
ALTER TABLE 表名 CHANGE 旧属性名新属性名 新数据类型; 
利用上面的语句可以增加,删除,修改字段。修改字段名,数据类型,和位置
 
7、更改表的存储引擎
ALTER TABLE 表名ENGINE=INNODB|MYISAM|MEMOERY;
SHOW CREATE TABLE user\G;
ALTER TABLE user ENGINE=MyISAM; 

8、删除表的外键约束
ALTER TABLE表名 DROP FOREIGN KEY 外键别名 ;
SHOW CREATE TABLE example3\G;
ALTER TABLE example3 DROP FOREIGN KEY c_fk;
SHOW CREATE TABLE example3\G; 
4、删除表
1、删除没有被关联的普通表
DROP TABLE 表名;
DESC example5;
DROP TABLE example5;
DESC example5;
 
2、删除被其他表关联的父表
删除外键后再删除表
DROP TABLE example1; -- 报错
SHOW TABLE example4\G;
ALTER TABLE example4 DROP FOREIGN KEY d_fk;
SHOW TABLE example4\G;
DROP TABLE example1;
DESC example1;



Mysql数据库对数据的增删改查

1、INSERT语句中不指定具体的字段名     
   insert into 表名 values (值1,值2…值n)

2、INSERT语句中列出所有字段
   insert into 表名 (属性1,属性2…属性n) values (值1,值2…值n)

3、为表的指定字段插入数据
insert into 表名 (属性1,属性2,属性3) values (值1,值2,值3) 

4、同时插入多条数据      
insert into 表名 (属性1,属性2…属性n) values (值1,值2…值n),
                (属性1,属性2…属性n) values (值1,值2…值n),
                ...
                (属性1,属性2…属性n) values (值1,值2…值n);
MySQL特有的

5、将查询结果插入到表中
insert into 表名 (属性1,属性2…属性n)
      select 属性列表 from 表名2where 条件表达式
use mysql;
create table user1(user char(16) not null);
insert into user1(user) select user from user;   

6、更新数据    
update 表名 set 属性1=值1,属性2=值2,…where 条件表达式;

7、删除数据    
  delete  from 表名  where 条件表达式;

猜你喜欢

转载自blog.csdn.net/weixin_41648325/article/details/80584746