本文参考资料:《MySQL从入门到精通》 ---明日科技编著
本博客主要内容:
数据库操作、存储引擎及数据类型、操作数据表、MySQL基础、表数据的增删改查。
(1)可以通过服务来开启MySQL服务;
(2)可以在管理员模式下的cmd里面使用 net start mysql / net stop mysql 来进行MySQL服务的开启与关闭;
开启MySQL服务之后,再进入MySQL的运行框
mysql -u root -p
注意这里,我用 mysql -root -p 之后,输入密码就是会报错,但是用上面就是正确的。具体原因暂时不懂。
报错为:Can't connect to MySQL server on 'localhost' (10061)
经过上述的服务器的开启、连接之后,我们现在可以操作数据了。
做完以上的准备工作,正式开始使用MySQL。
SHOW ENGINES;
从图中看出里面有我们熟悉的集中存储引擎:InnoDB、MyISAM、MEMORY。
为了让存储引擎的查询结果输出更加规整,我们用:
SHOW ENGINES\G; (注意是大写G。小写g与;的作用是一样的)
了解几个基本概念:
系统数据库:
information_schema:存储数据库对象的相关信息。
performation_schema:存储数据库服务器性能参数。
sakila:存储样例数据库。
test:存储数据库管理系统自动传概念的测试数据库。初始状态下库中没有任何表。
world:存储了3张表。分别保存城市、国家、国家使用的语言。
实际操作:
1.创建数据库的几种方法:
2.查看以"db_"开头的库:
SHOW DATABASE LIKE 'db_%';
3.选择数据库:
USE db_admin;
4.修改库的相关信息(不包含库名在内):
ALTER DATABASE db_admin
DEFAULT CHARACTER SET gbk
DEFAULT COLLATE gbk_chinese_ci;
5.删除库:
DROP DATABASE da_admin3;
6.带判存在的删库:
DROP DATABASE IF EXISTS db_admin4;
上面介绍了操作数据库的语句。下面我们来学习操作数据表的语句。
在建立数据表之前首先要有 建库-》use 库 的操作。
1.建表:
-> CREATE TABLE IF NOT EXISTS tb_admin(
-> id int auto_increment primary key,
-> user varchar(30) not null,
-> password varchar(30) not null,
-> create_time datetime);
2.查看表结构:
SHOW COLUMNS FROM tb_admin FROM db_admin;
DESC tb_admin;
3.修改表结构:
ALTER TABLE tb_admin ADD email VARCHAR(30) NOT NULL,
MODIFY user CARCHAR(30);
上面的语句其实是两个操作:
对tb_admin表进行添加新字段 --- ALTER TABLE xxx ADD xxxxx;
对tb_admin表进行修改某原有字段 --- ALTER TABLE xxx MODIFY xxxxx;
4.修改字段名:
ALTER TABLE db_admin .tb_admin
CHANGE COLUMN user username VARCHAR(30) NOT NULL;
5.删除字段:
ALTER TABLE tb_admin DROP email;
6.修改表名:
ALTER TABLE tb_admin RENAME AS tb_adminnew;
RENAME TABLE tb_adminnew TO tb_admin;
7.复制表(注意只是赋值表的结构,并没有复制表中的数据信息)
CREATE TABLE tb_newAdmin
LIKE tb_admin;
或者
CREATE TABLE tb_newAdmin
AS SELETE * FROM tb_admin;
再去查看tb_newAdmin表:
8.删除表:
DROP TABLE tb_admin;
或者
DROP TABLE IF EXISTS tb_admin;
插入数据主要用INSERT语句来实现。
INSERT语句有三种形式:
INSERT ...VALUES语句;
INSERT...SET语句;
INSERT...SELECT语句。
(最常用的语句是:INSERT...VALUES语句)
在编写SQL语句插入数据之前先看一下表结构:
4.1向表中插入一条完整的数据:
INSERT INTO tb_newadmin VALUES(1,'tom','123456','2018-11-18 15:20:26');
再次查看表内信息:
这样我们就 成功地向表中插入了一条数据。
4.2插入数据记录的一部分
INSERT INTO tb_newadmin(id,username,password) VALUES(2,'jeck','yyy');
注意!设为NOT NULL的属性都需要赋值,比如上面的password如果不赋值,则会报错。因为它是被要求非空的。
4.3插入多条记录
INSERT INTO tb_newadmin (username,password,create_time)
VALUES('FF','ff','2018-12-02 15:25:32')
,('Dival','dd','2017-02-06 10:02:25');
查看:
4.5 使用INSERT...SET语句插入数据
这种语法格式用于直接给表中的某些字段指定对应的值来实现插入指定数据,对于未指定的字段将采用默认值进行添加。
INSERT INTO tb_newadmin
SET username='ali',password='aa',create_time='2017-12-02 12:05:02';
注意!各个字段之间的赋值用逗号分隔开。
4.6将查询结果插入到另一个表中
这里我们将tb_newadmin表中的某些查询结果存入新建的tb_new表中。
首先新建tb_new表:
然后将tb_newadmin的个别字段插入到tb_new表中:
4.7修改数据
UPDATE tb_newadmin SET password='jj' WHERE username='jeck';
4.8删除数据
MySQL支持的删除数据的语句有:DELETE语句或TRUNCATE TABLE语句删除一行或多行语句。
DELETE FROM tb_newadmin WHERE username='jeck';
注意 !在实际操作中一般指定id来删除数据,为了避免某些字段值重复而造成删除错误的情况发生。
删除之后,这个表还在。但是表中的数据就不存在了。
要想删除这个表的话,利用DROP TABLE语句:
+、-、*、/、%、DIV、MOD
DIV:除法运算,返回商;
MOD:求余运算,返回余数。
(1)= "等于"用来判断数字、字符串和表达式是否相等。如果相等返回1,否则返回0。
注意:用=判断时,系统是根据字符的ASCII码进行判断的。
切记空指(NULL)不能用=来判断,如果用了的话,返回值会是NULL。
(2)<>和!= 用来判断数字、字符串、表达式是否不相等。如果不相等返回1,否则返回0。
注意:同样不能判断空值(NULL)。
(3)> 用来判断左边操作数是否大于右边操作数。如果大于返回1,否则返回0。
注意:空值返回NULL。
(4)IS NULL 用来判断操作数是否为空值。若为空值则返回1,否则返回0。
IS NOT NULL 与 IS NULL刚好相反。
(5)BETWEEN AND 用于判断数据是否在某个取值范围内。
在就返回1,不在返回0,空值返回NULL。
(6)IN 用于判断数据是否存在于某个集合中。在就返回1,不再返回0,空值返回NULL。
注意:集合的判断不是范围内的判断,而是要求数据要等与集合内的某个数。
(7)LIKE 用来匹配字符串。