0、本章学习目录大纲 - MySQL基础操作篇
初学耗时:2h
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
二、输入查询
2.1 查看当前mysql的版本号及当前时间。
2.2 mysql中sql语句不区分大小写。
2.3 可以进行简单的计算。
2.4 多条语句比较短,可以写在一行。
2.5 逗号分隔,分号结束。
2.6 sql语句写了一半,又不想执行。
三、创建和使用数据库
3.1 查看当前有哪些数据库。
3.2 创建数据库。
3.3 使用及切换数据库。
四、创建表及使用
4.1 查看当前数据库有哪些表。
4.2 创建一个表。
4.3 校验创建表语句是否和执行的一致。
4.4 查看表详情。
五、表中导入数据
5.1 准备数据。
5.2 导入数据方式①。
5.3 导入数据方式②。
六、数据检索部分
6.1 检索全部数据。
6.2 删除表中全部数据。
6.3 更新表中特定记录的数据。
6.4 查询特定的行。
6.5 检索特定的列。
6.6 排序。
6.7 日期计算。
6.8 null和not null值。
七、MySQL编码、目录及配置文件
7.1 编码mysql。
7.2 mysql的目录及配置文件。
-
1、A10系列全套网盘资源:
A10系列全套网盘资源
提取码:9ity
一、MySQL元数据
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
二、输入查询
2.1 ~ 查看当前mysql的版本号及当前时间。
SELECT VERSION(), CURRENT_DATE;
2.2 ~ mysql中sql语句不区分大小写。
SELECT VERSION(), CURRENT_DATE;
select version(), current_date;
SeLeCt vErSiOn(), current_DATE;
2.3 ~ 可以进行简单的计算。
SELECT SIN(PI()/4), (4+1)*5;
2.4 ~ 多条语句比较短,可以写在一行。
SELECT VERSION(); SELECT NOW();
2.5 ~ 逗号分隔,分号结束。
多个字段之间可以用逗号分隔,多行组成一条语句结束以分号结束。
SELECT
-> USER()
-> ,
-> CURRENT_DATE;
2.6 ~ sql语句写了一半,又不想执行。
mysql> select
-> user()
-> \c
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
三、创建和使用数据库
3.1 ~ 查看当前有哪些数据库。
show databaes;
3.2 ~ 创建数据库。
create database mydb;
3.3 ~ 使用及切换数据库。
use mydb;
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
四、创建表及使用
4.1 ~ 查看当前数据库有哪些表。
show tables;
4.2 ~ 创建一个表。
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
4.3 ~ 校验创建表语句是否和执行的一致。
show create table pet;
4.4 ~ 查看表详情。
desc pet;
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
五、表中导入数据
5.1 ~ 准备数据。
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
5.2 ~ 导入数据方式①。
将以上数据整理成SQL语句,insert into pet…
5.3 ~ 导入数据方式②。
5.2.1 . 创建一个pet.txt的文件。
注:每个字段中用tab键隔开,字段没有值的记录用\N代替
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird \N 1997-12-09 \N
Slim Benny snake m 1996-04-29
5.2.2 . 加载数据。
load data local infile '/root/data/pet.txt' into table pet;
5.2.3 . 校验是否加载进去。
select * from pet;
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
六、数据检索部分
6.1 ~ 检索全部数据。
select * from pet;
6.2 ~ 删除表中全部数据。
DELETE FROM pet;
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
6.3 ~ 更新表中特定记录的数据。
UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
6.4 ~ 查询特定的行。
6.4.1 . 字符串比较不区分大小写!
SELECT * FROM pet WHERE name = 'Bowser';
SELECT * FROM pet WHERE name = 'BowsEr';
SELECT * FROM pet WHERE name = 'BOWSER';
6.4.2 . 查找生日在1998年以后的特定查询。
SELECT * FROM pet WHERE birth >= '1998-1-1';
6.4.3 . 多条件查询(and | or)。
SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
6.4.4 . 优先执行括号中的逻辑。
SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
OR (species = 'dog' AND sex = 'f');
6.5 ~ 检索特定的列。
6.5.1 . 检索特定的列。
SELECT name, birth FROM pet;
6.5.2 . 查询不重复的字段要使用关键词DISTINCT。
SELECT DISTINCT owner FROM pet;
6.5.3 . 可以使用组合条件查询特定的列。
SELECT name, species, birth FROM pet
WHERE species = 'dog' OR species = 'cat';
6.6 ~ 排序。
6.6.1 . 根据某个字段进行排序(关键词:ORDER BY )。
SELECT name, birth FROM pet ORDER BY birth;
6.6.2 . 升降序排列(desc:降序;asc:升序)。
SELECT name, birth FROM pet ORDER BY birth desc;//降序排列
SELECT name, birth FROM pet ORDER BY birth asc ;//升序排列
6.6.3 . 多列排序。
根据species字段升序排列,根据birth字段降序排列。
…
注: ORDER BY species 中无asc,desc,默认为升序排列
SELECT name, species, birth FROM pet
ORDER BY species, birth DESC;
6.7 ~ 日期计算。
6.7.1 . 查询当前的日期。
select curdate() from pet;
6.7.2 . 获取当年的年。
select YEAR('2018-02-05') AS YEARS from pet;
6.7.3 . 获取当年的月。
select month('2018-02-05') AS YEARS from pet;
6.7.4 . 获取当年的日。
select day('2018-02-05') AS YEARS from pet;
6.7.5 . 查看宠物多少岁。
查看宠物多少岁,就可以使用计算日期的函数TIMESTAMPDIFF()。
SELECT name, birth, death, TIMESTAMPDIFF(YEAR,birth,death) AS age
FROM pet WHERE death IS NOT NULL ORDER BY age;
6.8 ~ null和not null值。
对一些字段类型要进行检查,判断某些字段是否为NULL,或者 not-NULL。
SELECT name, birth, death, TIMESTAMPDIFF(YEAR,birth,death) AS age
FROM pet WHERE death IS NOT NULL ORDER BY age;
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
七、MySQL编码、目录及配置文件
7.1 ~ 编码mysql。
7.1.1 . 查看mysql编码。
show variables like 'character%';
7.1.2 . 设置mysql编码。
vim /etc/my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode='NO_ENGINE_SUBSTITUTION'
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
7.1.3 . 重启mysql。
service mysqld restart;
service mysqld stop;
service mysqld start;
7.2 ~ mysql的目录及配置文件。
7.2.1 . /etc/my.cnf,主配置文件。
7.2.2 . /var/lib/mysql,数据库文件存放位置。
7.2.3 . /var/log/mysql,数据库的日志输出存放位置。
7.2.4 . 查看端口。
netstat -nltp
cat mysql.pid
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
^ 至此,MySQL基础操作篇完成。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
※ 世间诱惑何其多,坚定始终不动摇。
勿以恶小而为之,勿以善小而不为。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!