第零章: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
2、列举所有schema:
show databases;
相当于Workbench的这个界面,但是命令行查询会把隐藏的也展示出来。
3、选择需要访问的SCHEMA,
use game_object;
4、查看当前选择SCHEMA的表格,
show tables;
5、创建新的SCHEMA,
create database game_testdb;
再show一下,
6、删除SCHEMA,
drop database game_testdb;
第二章:SQL命令
1、创建一张表
create table tablename(id int not null auto_increment,username varchar(45),password varchar(45),primary key(id));
在创建表之前,我们先创建一个新的数据库SCHEMA,存储我们这一章的内容。
在remoo_test中创建一张表。
格式:
create table tablename(
id int not null auto_increment,
username varchar(45),
password varchar(45),
primary key(id)
);
2、查看表结构
desc tablename;
3、删除表
drop table tablename;
辛辛苦苦打出来的表格,我就不删了哈。
4、给表插入数据
insert into mytable(username,password) values('remoo','1234');
5、查看表内所有数据
select * from mytable;
之后我们会带条件的查询,这个是最后学习的内容。
6、更新数据
我们再插入多点数据先,
无条件修改:全部修改了!!!
update mytable set username = 'rem',password = '888';
有条件修改:使用关键字where即可
update mytable set username = 'remoo' where id=1;
7、删除数据
有条件的删除:(没条件就相当于全给你删了)
delete from mytable where id=2;
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
现在我们有这么多数据:
1-limit关键字
列举前n个数据:
select * from mytable limit n;
使用limit 关键字后面跟上数字即可。
例子:列举前5个。即n=5
limit还可以这样用:
select * from mytable limit n1,n2;
n1表示去掉前n1条数据,往后读取n2条。
例子:去除了第一条,往后读4条。
这个命令在实际开发中被用来制作分页的,一个页面展示多少内容,就limit一下,节省服务器开销。
2-*
这个*号表示所有,这里指所有的Column,比如我只想查询mytable里的username列表:
select username from mytable;
3-where关键字
select id,username from mytable where id>3;
图片已经很清楚了~~
4-order by 排序关键字
select id,username from mytable order by id;
意思是按照id从小到大排序。
如果想反序,就在id后面加入desc关键字。
select id,username from mytable order by id desc;
还可以使用多个参数,
select id,username from mytable order by username,password;
意思是,但username相同的时候,再对password排序。
请大家自行测试。
5-as关键字
可以修改表头标题,不加也可以。
select username as 名字 from mytable;
等效于:
select username 名字 from mytable;
6-函数逻辑运算
最全的官方文档在这里。https://dev.mysql.com/doc/refman/8.0/en/functions.html
这里举一些常用的,有兴趣大家自己组合玩耍一下。
select 1+1;
select now();
select curtime();
select pi();
select sqrt(64);
select round()
select floor()
select ceiling()
对字符串做加法select concat(first_name,last_name) Name from actor;
字符串替换 select replace('remoremoo','e','111');
日期格式化 select date_format(payment_date,'%y/%m/%d') from payment limit 5;
可以尽情发挥。https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
7-distinct去重关键词
去重前:select first_name from actor order by first_name limit 10;
去重后:select distinct first_name from actor order by first_name limit 10;
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');
包含就输出。
13-between
select * from actor where actor_id between 2 and 5;
14-like
模糊查询。%代表任意数量字母!!
_代表一个字母!!
select * from actor where first_name like 'NI%';
select * from actor where first_name like 'NIC_';