MySQL数据库的基本操作

创建数据库

create database jiang;        //创建数据库
show databases;  //查看所有数据库名称
use jiang;      //选中数据库
drop database jiang;   //删除数据库

数据库的存储引擎

存储引擎的概念是MySQL的特点,而且是一种插入式的存储引擎概念。这决定了MySQL 数据库中的表可以用不同的方式存储。用户可以根据自己的不同要求,选择不同的存储方式、是否进行事务处理等。

showengines \G     //mysql支持的所有的engine
show variables like '%engine%';     //查看当前库的engine
  • innodb存储引擎

    最常用,支持事务,回滚,自增,外键

    表结构存在.frm文件中

    数据和索引存在表空间中

    读写效率稍差,占用空间大

  • myisam

        表结构存在.frm文件中

        .myd存储数据

        .myi存储索引

        快速,占空间小,不支持事务和并发

  • memory

MEMORY存储引擎默认使用哈希(HASH)索引。其速度要比使用B型树(BTREE)索引快。如果读者希望使用B型树索引,可以在创建索引时选择使用。

创建数据库表

CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],

属性名 数据类型 [完整性约束条件],

......

属性名 数据类型

);

create table example(id int,name varchar(20), sex boolean);

//主键
CREATE TABLEexample1(stu_id INT PRIMARY KEY,

                                     stu_name VARCHAR(20),

                                     stu_sexBOOLEAN,

                                     );

//多字段主键
CREATE TABLEexample2(stu_id INT,

                                     course_idINT,

                                     grade FLOAT,

                                     PRIMARY KEY(stu_id, course_id)

                                     );

外键

CONSTRAINT 外键别名 FOREIGN KEY (属性1.1, 属性1.2,…, 属性1.n)REFERENCES表名(属性2.1, 属性2.2,…, 属性2.n)

CREATE TABLEexample3(stu_id INT, course_idINT, CONSTRAINTc_fk FOREIGN KEY (stu_id, course_id)  REFERENCESexample2(stu_id, course_id));

设置表的非空约束

属性名 数据类型 NOT NULL

CREATE TABLEexample4(id INT NOT NULL PRIMARYKEY,

                                     name VARCHAR(20)NOT NULL,

                                     stu_id INT,

                                     CONSTRAINTd_fk FOREIGN KEY(stu_id),

                                               REFERENCESexample1(stu_id)

                                     );

设置表的唯一性约束

属性名 数据类型 UNIQUE

CREATE TABLEexample5(id INTPRIMARY KEY,

                                     stu_id INT UNIQUE,

                                     name VARCHAR(20) NOT NULL

                                     );

设置表的属性值自动增加

属性名 数据类型 AUTO_INCREMENT

CREATE TABLEexample6(id INT PRIMARY KEY AUTO_INCREMENT,

                                     stu_id INTUNIQUE,

                                     name VARCHAR(20)NOT NULL

                                     );

设置表的属性的默认值

属性名 数据类型 DEFAULT 默认值

CREATE TABLEexample7(id INT PRIMARY KEY AUTO_INCREMENT,

                                     stu_id INTUNIQUE,

                                     name VARCHAR(20)NOT NULL.

                                     english VARCHAR(20)DEFAULT ‘zero’,

                                     computer   FLOAT DEFAULT 0

                                     );

查看表结构

describe example;
desc example;

//查看表详细结构语句SHOW CREATE TABLE
SHOW CREATE TABLE 表名;
SHOW CREATE TABLE example\G

修改表

  • 修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;

ALTER TABLE example0 RENAME TO user;
  • 修改字段的数据类型
ALTER TABLE 表名 MODIFY 属性名数据类型;

ALTER TABLE user MODIFY name VARCHAR(30);
  • 修改字段名
//只修改字段名
ALTER TABLE 表名 CHANGE 旧属性名新属性名 新数据类型;
alter table example change stuname name varchar(22);

//增加字段
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST|AFTER属性名2];
alter table example add phone varchar(23);
alter table example add phone varchar(23) not null;

//表的第一个位置增加字段
alter table example add phone varchar(23) first;

//指定位置增加
alter table example add phone varchar(23) after age;

//删除字段
ALTER TABLE 表名 DROP 属性名;
alter table example drop phone;

更改表的存储引擎

ALTER TABLE 表名ENGINE=INNODB|MYISAM|MEMOERY;

SHOW CREATE TABLE user\G;

ALTER TABLE user ENGINE=MyISAM;

删除表的外键约束

ALTER TABLE表名 DROP FOREIGN KEY 外键别名 ;

SHOW CREATE TABLE example3\G;

ALTER TABLE example3 DROP FOREIGN KEY c_fk;

SHOW CREATE TABLE example3\G;

删除表

  • 删除没有被关联的普通表

DROP TABLE example5;
  • 删除被其他表关联的父表

DROP TABLE example1; -- 报错

SHOW TABLE example4\G;

ALTER TABLE example4 DROP FOREIGN KEY d_fk;

SHOW TABLE example4\G;

DROP TABLE example1;

DESC example1;

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页