数据库分为关系型数据库和非关系型数据库,作为前端,对于mongodb再熟悉不过了,mongodb就是非关系型数据库,除此之外还有常见的还有redis,这种数据库的特点就是以Key,value的形式存储的,关系型数据库就很多了,mysql,oracle,db2等,本片文章主要记录我在学习MySQL关于CRUD的命令行操作。
登录数据库
1
2
|
// 注意-p后面不要有空格
mysql -uroot -proot
|
创建数据库
- create database 数据库的名字;
- create database 数据库的名字 character set 字符集编码;
- create database 数据库的名字 character set 字符集编码 collate 比较规则;
注意要加分号
1
2
3
|
create database student;
create database student character set utf8;
create database student character set utf8 collate utf8_general_ci;
|
查看数据库
1
2
|
show databases;
show create database student; // 查看student数据库的定义语句
|
修改数据库
1
|
alter database student character set gbk;
|
删除数据库
其他数据库操作
1
2
|
use student; // 切换到student数据库
select database(); // 查看当前数据库
|
表的创建
- create table 表名(
列名 列的类型 约束,
);
1
2
3
4
5
6
|
create table employee (id int primary key auto_increment,
name varchar(20) not null,
birthday date,
job varchar(30),
salary double,
);
|
查看表
1
2
3
|
show tables; // 查看数据库内的所有表
show create table employee; // 查看employee的建表语句
desc employee; // 查看employee的表结构
|
修改表
- 添加列(add),修改列(modify),修改列名(cahnge),删除列(drop), 修改表明(rename),修改表的字符集(character set)
1
2
3
4
5
6
7
8
9
10
11
12
|
// 添加
alter table student add address int not null;
// 修改
alter table student modify address varchar(2);
// 修改列名
alter table student change address gender varchar(2);
// 删除
alter table student drop address;
// 改表名
rename table student to student2;
// 修改表的字符集
alter table student character set gbk;
|
删除表
表数据插入
- insert into 表名(列名1,列名2)values(值1,值2);
- insert into 表名 values(值1,值2); // 上面的简单写法
- insert into 表名values(值1,值2),(值1,值2),(值1,值2);// 批量插入
表数据删除
- delete from 表名 [where 条件]
- truncate table 表名: 先删除表,再重建表
delete与truncate的区别
- delete是将数据一条一条的删除,在数据量比较少的情况下效率高;
- truncate是先删除表,再重建表,由于更改了表结构,数据量大的情况下推荐;
表数据更新
- update 表名 set 列名=值, 列名=值 [where 条件]
表数据查询
通用格式:
- select [distinct(去重)] [*] [列名1,列名2] from 表名 where 条件 group by ..having 条件过滤 order by 排序
如果插入数据乱码,需要去mysql中的配置文件中my.ini57行将编码改为gbk