mysql中外连接、内连接以及left
mysql中外连接、内连接以及left join和right join各有什么用?
join和right join各有什么用?
mysql连接分成:内连接、左外连接left join和右外连接right join!由于连接的记录,可能是一方不存在的!(两条记录中,可能某条不存在)
内连接:只有两个表相匹配的行才能在结果集中出现。
也就是说,当某个表中多出一条记录的时候,这条记录与另一个表不能相互匹配的时候,不匹配的记录就不会出现在结果中!
外连接:左外连接、右外连接注意好左外与右外的区别:区别在于,那个表的记录(指的是连接失败的记录),会最终出现在连接结果内?什么是左表和右表?
join关键字前面的(左边的)左表,join关键字后边的(右边的)右表!
左外:如果出现左表记录连接不上右表记录的,左表记录会出现正在最终的连接结果内!而右表记录相应设置成NULL。
右外:如果出现右表记录连接不上左表记录的,右表记录会出现正在最终的连接结果内!而左表记录相应设置成NULL。 总结:内连接,外连接差别不大,只是外连接会将没有连接成功的记录,也出现最终的连接的结果内,而内连接,连接的结果只有连接成功的(两条记录都存在的)因此,可以交换表的位置,达到使用left与right join 混用的的目的!问题:统计每个班级内,学生的数量!,在班级列表内:班级名,教室,学生数量注意,外连接应该有条件!
mysql连接命令?
如下命令表示使用root用户(mysql的root用户,非系统root用户)连接到mysql数据库,-u表示指定用户,-p表示将会提示输入密码,-u与root用户名之间的空格可省略。
mysql -u root -p
如下命令表示使用root用户连接数据库,并且直接以明文的方式指定密码,注意,下例中的密码为123123,密码与-p选项之间不能存在空格。
mysql -u root -p123123
在连接mysql时,可以直接指定将要登录的具体的数据库,使用-D指定数据库名称,如下命令表示连接mysql数据库后直接使用test数据库。
mysql -u root -D test -p123123
在本地连接到mysql时,可以指定通过哪个套接字文件连接到数据库,通过-S指定套接字位置。
mysql -u root -p -S
在连接到mysql时,可以指定要连接到远程的哪一台主机的mysql上,也可以指定端口,-h指定mysql主机,-P大写,指定mysql服务对应的端口,连接的前提是已经授权当前客户端的IP地址能够连接到数据库。Linux就该这么学
mysql -u root -p -h 192.168.1.103 -P 3306
连接数据库的同时执行对应命令,并且返回命令对应的结果,并不会进入mysql提示符。
示例如下,表示连接数据库的同时,执行-e选项后面跟随的sql语句,并且返回语句执行的结果。
mysql -u root -p123123 -e #39use mysql select user,host,password from user#39
mysql -uroot -p123123 -e #39create database if not exists testdb show databases#39
连接数据库的常用选项
–hosthost_name, -h host_name:服务端地址;
–useruser_name, -u user_name:用户名;
–portport_num, -P port_num:服务端端口;
–socketpath, -S path
–databasedb_name, -D db_name:
–compress, -C:数据压缩传输
–executestatement, -e statement:非交互模式执行SQL语句;
–vertical, -E:查询结果纵向显示;
–protocol{TCP|SOCKET|PIPE|MEMORY