第零章:Mac用户看这里:

mac终端写MySQL和windows基本相同,除了配置环境变量和启动有些许不同以外。

先配置环境变量,在终端输入vim ~/.zshrc

按字母键a进入编辑模式,输入alias mysql-/usr/local/mysql/bin/mysql

按esc,输入:wq保存退出。

输入:source ~/.zshrc

就好了。


第一章:基础命令

1、登陆数据库:

mysql -uroot -p88888888

-u后面是用户名,-p后面是密码,我的用户名是root,密码是88888888

MySQL编程基础 mysql sql编程_MySQL编程基础

 

2、列举所有schema:

show databases;

MySQL编程基础 mysql sql编程_数据_02

相当于Workbench的这个界面,但是命令行查询会把隐藏的也展示出来。

MySQL编程基础 mysql sql编程_MySQL编程基础_03

 

3、选择需要访问的SCHEMA,

use game_object;

 

4、查看当前选择SCHEMA的表格,

show tables;

MySQL编程基础 mysql sql编程_数据库_04

MySQL编程基础 mysql sql编程_mysql_05

 

5、创建新的SCHEMA,

create database game_testdb;

再show一下,

MySQL编程基础 mysql sql编程_数据库_06

 

6、删除SCHEMA,

drop database game_testdb;

MySQL编程基础 mysql sql编程_数据_07


第二章:SQL命令

1、创建一张表

create table tablename(id int not null auto_increment,username varchar(45),password varchar(45),primary key(id));

在创建表之前,我们先创建一个新的数据库SCHEMA,存储我们这一章的内容。

MySQL编程基础 mysql sql编程_数据库_08

在remoo_test中创建一张表。

格式:

create table tablename(
    id int not null auto_increment,
    username varchar(45),
    password varchar(45),
    primary key(id)
);

 

MySQL编程基础 mysql sql编程_数据库_09

MySQL编程基础 mysql sql编程_数据库_10

 

 2、查看表结构

desc tablename; 

MySQL编程基础 mysql sql编程_mysql_11

 

3、删除表

drop table tablename;

辛辛苦苦打出来的表格,我就不删了哈。

 

4、给表插入数据

insert into mytable(username,password) values('remoo','1234');

 

MySQL编程基础 mysql sql编程_数据库_12

 

 5、查看表内所有数据

select * from mytable;

之后我们会带条件的查询,这个是最后学习的内容。

MySQL编程基础 mysql sql编程_数据库_13

 

6、更新数据

我们再插入多点数据先,

MySQL编程基础 mysql sql编程_数据_14

无条件修改:全部修改了!!!

  update mytable set username = 'rem',password = '888';

 

MySQL编程基础 mysql sql编程_mysql_15

有条件修改:使用关键字where即可

update mytable set username = 'remoo' where id=1;

MySQL编程基础 mysql sql编程_mysql_16

 

7、删除数据

有条件的删除:(没条件就相当于全给你删了)

delete from mytable where id=2;

MySQL编程基础 mysql sql编程_数据库_17

 

8、查询(重点)

我们之前学习了select * from mytable;

也就是查看表内所有数据,现在我们来学一些新的。

select的标准语句:

select column_name from table_name where filter_condition order by column_list limit rom_limit

select column_name 
    from table_name 
    where filter_condition 
    order by column_list 
    limit rom_limit

现在我们有这么多数据:

MySQL编程基础 mysql sql编程_mysql_18

1-limit关键字

列举前n个数据:

select * from mytable limit n;

使用limit 关键字后面跟上数字即可。

例子:列举前5个。即n=5

MySQL编程基础 mysql sql编程_数据_19

limit还可以这样用:

select * from mytable limit n1,n2;

n1表示去掉前n1条数据,往后读取n2条。

例子:去除了第一条,往后读4条。

MySQL编程基础 mysql sql编程_数据库_20

这个命令在实际开发中被用来制作分页的,一个页面展示多少内容,就limit一下,节省服务器开销。

2-*

这个*号表示所有,这里指所有的Column,比如我只想查询mytable里的username列表:

select username from mytable;

MySQL编程基础 mysql sql编程_数据_21

3-where关键字

select id,username from mytable where id>3;

MySQL编程基础 mysql sql编程_数据库_22

图片已经很清楚了~~

4-order by 排序关键字

select id,username from mytable order by id;

意思是按照id从小到大排序。

MySQL编程基础 mysql sql编程_数据库_23

如果想反序,就在id后面加入desc关键字。

select id,username from mytable order by id desc;

MySQL编程基础 mysql sql编程_MySQL编程基础_24

还可以使用多个参数,

select id,username from mytable order by username,password;

意思是,但username相同的时候,再对password排序。

请大家自行测试。

5-as关键字

可以修改表头标题,不加也可以。

select username as 名字 from mytable;

等效于:

select username 名字 from mytable;

MySQL编程基础 mysql sql编程_MySQL编程基础_25

6-函数逻辑运算

最全的官方文档在这里。https://dev.mysql.com/doc/refman/8.0/en/functions.html

这里举一些常用的,有兴趣大家自己组合玩耍一下。

select 1+1;

select now();

select curtime();

select pi();

select sqrt(64);

MySQL编程基础 mysql sql编程_数据库_26

select round()

select floor()

select ceiling()

对字符串做加法select concat(first_name,last_name) Name from actor;

MySQL编程基础 mysql sql编程_MySQL编程基础_27

字符串替换 select replace('remoremoo','e','111');

MySQL编程基础 mysql sql编程_MySQL编程基础_28

日期格式化 select date_format(payment_date,'%y/%m/%d') from payment limit 5;

MySQL编程基础 mysql sql编程_mysql_29

可以尽情发挥。https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

MySQL编程基础 mysql sql编程_mysql_30

7-distinct去重关键词

去重前:select first_name from actor order by first_name limit 10;

MySQL编程基础 mysql sql编程_数据库_31

去重后:select distinct first_name from actor order by first_name limit 10;

MySQL编程基础 mysql sql编程_mysql_32

8-and

表示同时满足条件。

请自行测试。

9-or

表示只要一个满足条件。

请自行测试。

and的优先级比or高。

10-判断是否为空(null)

is null

is not null

11-not 逻辑取反

请自行测试。

12-in()

select first_name from actor where first_name in ('AL','BELA');

包含就输出。

MySQL编程基础 mysql sql编程_数据_33

13-between

select * from actor where actor_id between 2 and 5;

MySQL编程基础 mysql sql编程_数据_34

14-like

模糊查询。%代表任意数量字母!!

_代表一个字母!!

select * from actor where first_name like 'NI%';

MySQL编程基础 mysql sql编程_数据_35

select * from actor where first_name like 'NIC_';

MySQL编程基础 mysql sql编程_MySQL编程基础_36