数据库MySQL使用

在MySQL中,如果某一列实际上是一个文本(VARCHAR或CHAR)类型,那么将会按照字符串的字典顺序排序(这会导致如989之前的情况),如果希望按照数字大小进行排序,就需要将该列转换为数字类型。为了进行这种转换和排序,您可以使用CAST()CONVERT()函数将字符串转换为整数(如果某列包含的都是整数字符串的话),然后使用ORDER BY子句进行排序。但是,如果该列中包含非数字字符,转换可能会失败。在这种情况下,您可能需要在转换之前清理数据,或者使用条件逻辑来处理可能的错误。

以下是一个例子,展示了将一列文本转换为整数,并按降序排序:

SELECT ID, 姓名, 学院 
FROM 寝室长名单 
WHERE 1=1 
ORDER BY CAST(ID AS UNSIGNED) DESC;

在 SQL 中,当使用 = 运算符来比较两个值时,它不会执行通配符匹配。= 运算符是用于精确匹配的。如果想在 MySQL 中使用通配符匹配字符串,应该使用 LIKE 运算符,并且使用 % 作为通配符(代表任意数量的字符,包括零个字符)或者使用 _(代表单个字符)。注意, * 在 SQL 的 LIKE 运算符中并不是通配符。

limit可以限制输出条数,例如limit 10,输入前10条记录。

例如,如果想在 “寝室长名单” 表中查找名字以 “王” 开头的所有记录,应该这样写:

SELECT *  
FROM 寝室长名单  
WHERE 姓名 LIKE '王%';

要查看所有的数据库名,应该这样做:

  1. 打开MySQL命令行客户端。
  2. 使用mysql -u 用户名 -p命令登录(替换用户名为MySQL用户名),然后输入密码。
  3. 输入SHOW DATABASES;(注意末尾的分号),然后按下回车。

MySQL将返回一个包含所有数据库名的列表。

同样,如果要查看一个数据库里面包含的表:

show tables;

JOIN 中 on 与 where 的区别

  • left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
  • right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
  • inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
  • full join : 外连接,返回两个表中的行:left join + right join。
  • cross join : 结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

关键字 on

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。

在使用 left join 时,on 和 where 条件的区别如下:

  • 1、 on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
  • 2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

假设有两张表:

表1:tab1

idsize
110
220
330

表2:tab2

sizename
10AAA
20BBB
20CCC

两条 SQL:

select * from tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name='AAA'

select * from tab1 left join tab2 on (tab1.size = tab2.size and tab2.name='AAA')

其实以上结果的关键原因就是 left join、right join、full join 的特殊性,不管 on 上的条件是否为真都会返回 left 或 right 表中的记录,full 则具有 left 和 right 的特性的并集。 而 inner join没这个特殊性,则条件放在 on 中和 where 中,返回的结果集是相同的。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
颜文字
Emoji
小恐龙
花花
上一篇
下一篇