sql 不等于空_SQL的简单查询
在上一節中我們們安裝了mysql以及navicat,并掌握了如何創建庫、創建表、修改表和插入、刪除以及更新數據。這一節我們將繼續學習SQL的簡單查詢語句。
一、基本的查詢語句
1、select子句和from子句
select <列名1>,<列名2>... from <表名>;select * from <表名>;(查看全部列)查詢語句的運行過程如圖2、為列名設定別名
select <列名1> as bieming, <列名2> as '別名';3、刪除重復數據
刪除單列重復數據: select distinct <列名> from student;刪除多列重復數據: select distinct <列名1>, <列名2> from student;注意,刪除多列重復數據是指刪除列1和列2都重復的數據
二、指定查詢條件
1、where子句
select <列名1>,<列名2>... 3 from <表名> 1 where (運算符); 2注意SQL語句的運行順序,select子句最后運行,其他子句按書寫順序運行
2、運算符——關系運算符
注意,運用關系運算符比較字符串時,是按照字典順序比較的,比如字符串'10'<'2',因為字符串10是以1開頭的,1比2小。在處理數據時,當發現“大的數據”反而排在“小的數據”的前面,這時就要注意該列數據的類型是以字符串形式存儲的。
——算術運算符
運用算術運算符時,注意:
1、括號中表達式優先于括號外的
e.g. (1+2)*3 sql會先運行1+2,再運行*32、與空值進行運算結果仍為空值
5+null=null null不能用于數值比較,null和null也不相等注意!根據我們的常規邏輯,集合a和集合!a構成全集,但是在sql中卻不然,如下所示
共8條數據這是一個成績表,其中有一行數據的成績為空值,現在我們想找出成績小于60的數據
沒有輸出結果再找出成績大于等于60的數據
只輸出了7條數據集合成績<60和集合>=60是構成全集的,但在兩個結果中,都沒有出現成績為null的數據,這是因為null并不能和數值60進行比較!
既然不能用=null來找出空值的話,那么如何查找出空值值呢?這時候空判斷運算符就可以上場了。
——空判斷運算符
——邏輯運算符
not與上面結果相同注意,and優先于or,例如,我想要找出性別為男,名字為猴子或馬云的數據
輸出了一條性別是女的數據結果正確betweenorinnot in——模糊查詢運算符
like+
找出姓猴的人找出名字最后一個字是猴的人找出名字包含猴的人兩個下劃線,找出叫王**的人三、注釋
單行注釋:--空格 多行注釋:/*...*/四、本節出現的ERROR
1、Error : Field '教師號' doesn't have a default value
問題描述:
我在teacher表了,加了age列
當我指定age列插入數據時,就開始報Error : Field '教師號' doesn't have a default value的錯誤,但我指定教師號列卻可以插入數據
問題解決:插入數據時,主鍵字段不能為空。
2、Invalid use of NULL value
問題描述:想要修改age列的非空設置
問題解決:age列的數據為null,與not null的設置沖突。
總結
以上是生活随笔為你收集整理的sql 不等于空_SQL的简单查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python设置坐标轴刻度值字体大小_p
- 下一篇: 拆分工作簿为多个文件_掌握这几行代码,快