数据库MYSQL入门教程(2)——数据库操作指令


第一部分:固定格式指令

此处MYSQL指令用大写表示,而在实际运用中并不区分大小写。

1.登陆MYSQL指令:

mysql -h (host_name) -u (user_name) -p
括号内的内容为自行填写的内容,在连接本地服务器且是默认设置的情况下,可以省略,-h这部分内容,而在user_name括号内填写root即可
mysql -u root -p
使用上述语句,填写密码后即可登陆。

2.退出MYSQL

exit

3.创建数据库

CREATE DATABASE test;

4.选择数据库

USE test;

5.删除数据表(假设存在这个数据表)

DROP TABLE table_test;

6.查看表结构(假设存在这个数据表)

DESCRIBE TABLE score;

7.查看所有数据库

SHOW DATABASES;

8.查看库中所有数据表

SHOW TABLES;
到目前为止,都是些无个人特征的指令,无需记忆,只要在需要使用时查询即可。

第二部分:非固定格式指令

1.创建数据表

首先,我们来阅读一段代码,这段代码用于在选定的数据库中创建一个存放学生成绩的数据表。
CREATE TABLE score
(
student_id INT UNSIGNED NOT NULL ,
event_id INT UNSIGNED NOT NULL,
score INT UNSIGNED NOT NULL,
PRIMARY KEY (event_id,student_id),
FOREIGN KEY(event_id) REFERENCES grade_event(event_id),
FOREIGN KEY (student_id) REFERENCES student(student_id)
) ENGINE=InnoDB;

为了读懂这个程序,接下来我们一行行来阅读。
第一行的CREATE TABLE score,是创建数据表的最简单形式,即创建一个空表,若你想这么做,只需要输入
CREATE TABLE score;

第三行有那么几个成分,1.student_id 2.int unsigned 3.not null 
第一个成分代表该列的表头,名为student_id,即代表该表的第一列存放的是学生学号;第二个成分代表该列的数据类型,在学习笔记3中我会详细解释,此处代表学生学号为无符号整形类;第三个成分代表该列的数据情况,在这个位置有三个选择(1.not null 2. null 3.不填),not null代表该列数据不能为空,null和不填都代表了该列数据可填可不填。

第五行又是一个特殊指令,primary key使括号内的两个成分组成该表中的唯一特征,举一个例子,1号学生在1号考试中会有一个成绩,1号学生可以在2号考试中也有一个成绩 ,但1号同学不会在1号考试中不会有两个成绩,这可能有些绕口,还请你自己多进行试验。

第六行是foreign key子句,这句话用来定义约束条件,比如第六行就是定义的event_id的约束条件,references表明这个event_id与哪一个表(此处为grade_event)的哪一列(此处为event_id)进行对应,此处用来确保在grade_event表中创建了一个event_id后,才能在score表中登记event_id,保证表中不会出现虚假信息。

第七行的末尾是显示的表明存储引擎是InnoDB,尽管在新版本中默认引擎就是InnoDB,但还是想在此指出可以由这种方式更换存储引擎。
为了各位能够试验上述代码,请在运行上述代码前,先运行以下代码,同时请各位测试下是否能读懂这些代码了呢。
CREATE TABLE student
(
name VARCHAR(20) NOT NULL,
sex ENUM('F','M') NOT NULL,
student_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (student_id)
) ENGINE=InnoDB;

CREATE TABLE grade_event
(
date DATE NOT NULL,
category ENUM('T','Q')NOT NULL,
event_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (event_id)
) ENGINE=InnoDB;
需要指出的是,auto_increment为一特殊指令,表示该列数据在不赋予值的情况下会自动在已有的数字上+1
运行后效果如果所示:



2.插入数据

在MYSQL中有两种插入数据的形式

INSERT INTO student VALUES('Kyle','M',NULL);
INSERT into student(name,sex) VALUES ('Kyle','M');

你可以选用任意一种方式,但必须注意他们的区别,第一种插入方式必须填写每一列需要填入的值,而第二种方式可以的选择想要填写的任意列。
此外,MYSQL提供各位批量插入数据的方式,即
INSERT into student(name,sex) VALUES ('Kyle','M'),('Nathan','M');


3.查询数据

查询数据在MYSQL中是一个非常关键的功能,怎么读取储存的数据决定了你对数据库的理解程度。

首先笔者像指出最简单的一条查询指令:

SELECT *FROM student;

学会这句话,各位就可以获取存储在表中的数据了。

接下来,笔者想展示一个复杂形式:

SELECT student.student_id,student.name,score.score 
FROM grade_event INNER JOIN score INNER JOIN student 
ON grade_event.event_id=score.event_id 
AND score.student_id=student.student_id 
ORDER BY student.student_id;

通过以上这个形式,我们可以将三个表的形式结合到一个表中进行输出。
首先,student.student_id用来确定是哪个表中的哪个信息(这里是student表中的student_id信息)
其次,INNER JOIN表示将两个不同的表联系起来表示,ON表示依据什么关系将两个表联系起来,此处是依据event_id这个变量进行联系,即event_id相同的一行属于同一个人
最后,ORDER BY表示依据什么规律进行排序,此处表示根据student_id从大到小进行排序。

在尝试以上这句查询形式前,请先添加以下指令:

insert into score values(1,1,95);

接下来,请再看一种形式

SELECT name FROM student where student_id=1;

这句话使用了一个新的成分,where,用where可以限定查询的条件,后面可以跟各种逻辑形式。


以上形式都非必须,请各位自行搭配用来获取最理想的效果。

4.更新数据

MYSQL提供了更新数据的功能,使用该指令可以直接覆盖数据表中的原值,必须注意的是该指令必须搭配where来使用,避免造成致命性问题(更新了整张表)

UPDATE student SET name='Evan' WHERE student_id=1;



5.删除表中数据

注意事项和更新数据类似,用法如下

DELETE FROM student WHERE student_id=2;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值