学习了MySQL,想写成笔记给自己也算是分享给大家,精心整理希望成为初学者带来帮助。
先解释一下关于数据库,看下图:
而对于MySQL,是一个关系型数据库,简单的理解来说就是存储数据的地方,比如你的csdn账号密码以及其他的信息,MySQL是最好的关系型数据库管理软件。它和PHP是黄金搭档(LAMP/WAMP)。
令我最惊喜和意外的是kali linux里面竟然装的是MariaDB,他完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。这个的创始人也是mysql的创使人,之前将mysql10亿美刀卖给了sun,后来sun被Oracle收购。数据库是以他女儿的名字为命名, 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。而且从MySQL迁移到MariaDB也是非常简单的:
1、数据和表定义文件(.frm)是二进制兼容的
2、所有客户端API、协议和结构都是完全一致的
3、所有文件名、二进制、路径、端口等都是一致的
4、所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
5、mysql-client包在MariaDB服务器中也能够正常运行
6、共享的客户端库与MySQL也是二进制兼容的
也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
好了开始正题,我使用的是kali Linux 系统,你也可以使用Windows对应的MySQL软件,在Oracle的官网就可以下载,不过是英文的,得仔细找找。如果是Linux就更好了。
(1)启动MySQL:service mysql start,使用的端口是3306
(2)查看存在的数据库:show databases;(注意后面的复数形式)
查看后决定使用哪一个,可以是之前使用过的,也可是自己再创建一个新的数据库。我就创建一个新的数据库吧!
(3)创建数据库 create database test2;
(4)使用数据库: use test2;
(5)再使用show tables;命令显示表,表位于数据库下,主要来规范数据库的格式属性,可以使用旧的表,也可以创建新的表。
由于是新的表,我就创建新的表格。
命令: create table student(
sno char(4) not null primary key,
sname char(4),
age int,
sex char(4),
class char(8),
dpart char(10)
);
每一个属性后面跟着数据类型,比如姓名、班级等用文字描述的记得用char(字长),年龄、学号、工号等用int描述,不用跟字长,默认是11位。
我在这里创建一个学生表student,属性包括学生的学号、姓名、性别、年龄、班级、部门。sno char(4) not null primary key, 表示将sno设定为约束条件,不能为空,什么是约束?上百度:主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。反正记着将最重要的设定为约束,如学号,电话号码,工号等。
(6)插入数据:insert into student values('201901','阿仔',22,'男','⑦班','网络部');
也可以一次插入多个数据, insert into student values('201902','Jack',22,'男','5班','网络 部'),
('201903','Rose',23,'女','3班','通信部'),
('201904','Maria',21,'女','6班',' 软件部');
(7)查看表的所有数据:select * from student;
(8)查看局部数据:select sname from student;
你也可以换成其他的条件。sno、age等。
(9)表字段的添加和修改,比如添加一个grade的字段:
使用add添加新的数据字段:alter table student add grade int;
记得数据类型后面加上字长,int不用加,默认11位。
(10)drop删除字段: alter table student drop grade;
(11)change修改字段:记得后面得加上数据类型,比如将age改成nianling。
change是修改字段名的同时加上数据类型 modify是修改数据类型
命令:alter table student change age(旧字段) nianling(新字段) int;
(12)modify修改字段的数据类型
alter table student modify sno int;
(13)使用 rename to 修改表名。
(14)修改字段的位置
将sname放在第一位:alter table st modify sname char(4) first;
(15)将sname放在最后一位
使用after也能放在别的具体的字段的后面。
(16)使用count查看总记录数:select count(*) from student;
(17)我建立了一张grade成绩表。各属性如下:
你可以按照上面的方法建立表,当做练习,然后插入数据。
查看如下:
(18)使用sum等关键字查询
(19)排序查询
(20)条件查询
到这里,基础的操作就算是完成了,查询还包括嵌套、连接等查询,等你掌握了基础的MySQL命令,再去学习这些比较复杂的查询方式。加油吧!