一、登录Mysql
安装Mysql,配置好环境变量,打开命令窗口(Windows),使用命令Mysql -u username -p 回车,输入密码登录
二、操作数据库
1.查看数据库 show databases;
2.创建数据库 create database db_name
查看创建的好的数据库的定义 show create database db_name
再次查看数据库是否新增test_db数据库
3.使用数据库 use db_name;
代表使用test_db,之后就可以对该数据进行表的操作了,如show tables 等
4.删除数据库 drop database db_name;
再次查看数据库
test_db数据库已删除
5.数据库引擎查看 show engines;
不同的表可以使用不同的合适的引擎,从而提高性能。
6.查看默认的存储引擎
show variables like '%engine';
三、操作数据表
创建数据库 create database test_db;
使用数据库 use test_db;
1.创建表
CREATE TABLE table_name(
字段1 数据类型[列级别约束条件][默认值],
字段2 数据类型[列级别约束条件][默认值],
......
[表级别约束条件]
)
1.1简单的员工表
CREATE TABLE tb_emp1
(
id INT(11),
NAME VARCHAR(25),
deptid INT(11),
salary FLOAT
);
1.2使用主键
a.单字段主键
CREATE TABLE tb_emp2
(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
deptid INT(11),
salary FLOAT
);
CREATE TABLE tb_emp3
(
id INT(11) ,
NAME VARCHAR(25),
deptid INT(11),
salary FLOAT,
PRIMARY KEY(id)
);
上面的都是在id列上设置了主键
b.多字段联合主键
CREATE TABLE tb_emp4
(
NAME VARCHAR(25),
deptid INT(11),
salary FLOAT,
PRIMARY KEY(NAME,deptid)
);
name和deptid组合在一起为表tb_emp4的联合主键,name和deptid都相同的两条数据则只能存在一条。
1.3 使用外键约束
外键是用来在两个表的数据之间建立连接,它可以是一个或多个列,一个表可以有一个或多个外键。
外键的对应是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于两一个表中主键的值,
定义外键后,不允许删除在另一个表中具有关联关系的行。
主表:对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表
从表:对于两个具有关联关系的表而言,相关联字段中外键所在的表即是 从表
语法:
[CONSTRAINT 外键名] FOREIGN KEY(字段名,..) REFERENCES <主表名>(主键列,..)
例子:
CREATE TABLE tb_dept1(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22),
location VARCHAR(50)
);
CREATE TABLE tb_emp5
(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
deptid INT(11),
salary FLOAT,
CONSTRAINT fk_emp_demp1 FOREIGN KEY(deptid) REFERENCES tb_dept1(id)
);
1.4 非空约束
非空约束指的是字段值不能为空,必须要有值
字段值 数据类型 not null
CREATE TABLE tb_emp6(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) NOT NULL,
deptid INT(11),
salary FLOAT
);
1.5 唯一性约束
唯一性约束指的是要求该列唯一,允许为空,唯一性约束确保一列或几列不出现重复的值
字段值 数据类型 unique
CREATE TABLE tb_dept2(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) UNIQUE,
location VARCHAR(50)
);
最后指派,效果和上面一样:
[CONSTRAINT <约束名>] UNIQUE(字段名)
CREATE TABLE tb_dept3(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) ,
location VARCHAR(50),
CONSTRAINT sth UNIQUE(NAME)
);
UNIQUE 和 PRIMARY KEY 的区别,表中可以多列为UNIQUE,允许存在NULL值,但是只能声明一个PRIMARY KEY,不允许NULL值
1.6 默认约束
某列在不设置值的情况下自动默认一个值
字段名 数据类型 default 默认值
CREATE TABLE tb_emp7(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) NOT NULL,
deptid INT(11) DEFAULT 11,
salary FLOAT
);
1.7 主键自动增加
字段名 数据类型 AUTO_INCREMENT
CREATE TABLE tb_emp8(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(22) NOT NULL,
deptid INT(11),
salary FLOAT
);
每次插入值的时候id会从1开始自动增加
2.查看数据表的结构
2.1 查看表的基本结构
DESCRIBE 表名;
或者
DESC 表名;
2.2 查看表的创建语句
SHOW CREATE TABLE <表名\G>
有没有\G的区别,\G看着清晰点
3.修改数据表
3.1修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>
3.2 修改字段的数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
3.3 修改字段名
ALTER TABLE <表名> CHANGE <旧字段名><新字段名><新数据类型>
3.4添加字段
ALTER TABLE <表名> ADD <新字段名><数据类型> [约束条件][FIRST | AFTER 已存在的字段名]
ALTER TABLE tb_emp1 ADD managerId;
ALTER TABLE tb_emp1 ADD column1 VARCHAR(10) NOT NULL;
ALTER TABLE tb_emp1 ADD fistCol VARCHAR(12) FIRST;
ALTER TABLE tb_emp1 ADD secName VARCHAR(30) AFTER e_name;
3.5 删除字段
ALTER TABLE <表名> DROP <字段名>
ALTER TABLE tb_emp1 DROP column1;
3.6 修改字段的位置
ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST | AFTER <字段2>
ALTER TABLE tb_emp1 MODIFY managerId INT(12) FIRST;
ALTER TABLE tb_emp1 MODIFY deptid INT(11) AFTER salary;
3.7 更改表的存储引擎
ALTER TABLE <表名> ENGINE=<更改后的引擎名>
ALTER TABLE tb_emp1 ENGINE=MYISAM
3.8 删除表的外键约束
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
create table tb_emp9(
id int primary key auto_increment,
name varchar(30),
salary float,
deptId int(11),
constraint fk_emp9_dept1 foreign key (deptId) references tb_dept1(id)
);
alter table tb_emp9 drop foreign key fk_emp9_dept1;
4.删除数据表
4.1 删除没有被关联的表
DROP TABLE [IF EXISTS] 表1,表2,表3...
4.2 删除被其他表关联的主表
删除语句和上面的一样,但是需要先将外键约束删掉之后再删除主表即可。