sql的左连接和右连接区别

1、意思不一样
左连接:只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来。
右连接:右连接是只要右边表中有记录,数据就能检索出来。
2、用法不一样
右连接与左连接相反,左连接A LEFT JOIN B,连接查询的数据,在A中必须有,在B中可以有可以没有。内连接A INNER JOIN B ,在A中也有,在B中也有的数据才能查询出来。
3、空值不一样
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。
右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

1
2
select * from student s left join class c on s.classId = c.classId
select * from student s right join class c on s.classId = c.classId

常用函数

AVG() 平均值
COUNT() 条数
FIRST() 第一个数据
LAST() 最后个数据
MAX() 最大值
MIN() 最小值
SUM() 总和
UCASE() 转换成大写
LCASE() 转换成小写
MID() 从文本字段中提取字符

name的1开始长度4
1
2
SELECT substr(name,1,4) AS ShortTitle
FROM Websites;

LEN() 返回字符串长度
ROUND() 四舍五入
NOW() 当前时间
FORMAT() 时间格式化

1
2
SELECT name, url, DATE_FORMAT(Now(),'%Y-%m-%d') AS date
FROM Websites;
1
2
CAST(your_column_name AS DECIMAL(10, 2))
ROUND(your_column_name, 2)
空值显示另一个
1
2
3
4
5
6
--oracle
COALESCE(nickname, name)
--mysql
IFNULL(nickname, name)
--SQLServer
ISNULL(nickname, name)

一、安装

操作系统ubuntu22

先确认是否安装过mysql。

1
$ dpkg -l | grep mysql #检测是否安装mysql

安装mysql

1
2
$ sudo apt-get install mysql-server
$ mysql --version #查看版本

mysql -uroot -p 进不去

默认密码不知道,MySql 从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空,先暂停mysql,用mysqld_safe启动,给authentication_string赋值,再修改密码

1
2
3
4
5
6
7
8
$ sudo /etc/init.d/mysql stop
$ sudo mkdir /var/run/mysqld
$ sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&
$ mysql -uroot -p
mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;

重启服务

1
2
$ sudo killall -u mysql
$ sudo /etc/init.d/mysql start

二、在数据库插入数据

查看数据库

1
2
3
mysql> SHOW DATABASES;
mysql> CREATE DATABASE test_db;
mysql> use test_db;

创建表

1
2
3
4
5
6
7
create table tb_tmp01
(
id INT(11),
name VARCHAR(25)
);

show tables;

插入数据

1
2
insert tb_tmp01(id,name) value('01','小明');
select * from tb_tmp01;

三、备份

1
2
$ mysqldump -uroot -p123456 --all-databases >/home/fanyun/下载/all.sql
$ mysqldump -uroot -p123456 --databases test_db >/home/fanyun/下载/test_db.sql

四、恢复

1
$ mysql -uroot -p123456 test_db < test_db.sql

采用备份磁盘文件

1
2
$ tar -cvf sql.tar /usr/local/mysql/data #压缩
$ tar -xvf sql.tar #解包

cp复制 rm删除 mv移动 mkdir创建文件夹 history查看历史命令记录

ps 查看进程

1
ps -ef | grep 进程关键字

chmod 权限管理

1
2
3
chmod 777 file
chmod +x file
chmod u+x file
who 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所有用户, 相当于 ugo
0%