【MySQL】从入门到精通8-SQL数据库编程

Posted on 2022-05-18 15:22  罗芭Remoo  阅读(183)  评论(0编辑  收藏  举报

上期:【MySQL】从入门到精通7-设计多对多数据库

第零章: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_';