資料庫sql 學習

2021-02-07 tuanzili

sql 用於訪問和處理資料庫的標準計算機語言

rdbms 關係型資料庫管理系統

ANSI 美國國家標準化組織

SQL 語句對大小寫不敏感。

基礎部分

1.insert into 語句 用於向表格中插入新的行

    insert into 表名稱 (列1,列2,.) values (值1,值2,.)

    insert into user values("tuanzili","男")

2.update 語句 用於修改表中的數據

    update 表名稱 set 列名稱 = 新值 WHERE 列名稱 = 某值

    update user set sex='男' , name='tuanzili' where id= '1'

3.delete 語句 刪除表中的行

    delete from 表名稱 where 列名稱 = 值

    delete from user where name = 'tuanzili'

    刪除所有行

    delete from user = delete * from user

4.select 語句 查詢語句

    select 列名稱, 列名稱  from表名稱

    select *from 表名稱

    select name,sex from user

5.distinct 語句 去重複值

    select distinct 列名稱 from 表名稱

    select distinct name from user

6.where 子句 有條件的選取數據

    select 列名稱 from 表名稱 where 列 運算符 值

    運算符(>,>=,<>,<,<=,=)

    between  某個範圍

    like           搜索某種模式

    select * from user where sex='男'

    and & or 運算符 and和 or可在 where子語句中把兩個或多個條件結合起來。

    and 連接兩個條件成立則顯示

    or 連接的兩個條件一個滿足就顯示

   select * from persons where (a='tuanzili' or a='lidengcheng') and b='duzhuqiao'

7.order by 語句 對結果集進行排序(默認是升序asc排序,降序desc)

    order by 列名 排序關鍵字

    select a,b from t_user order by a desc, b asc

8.top 子句  規定返回的記錄數目,用於很多記錄的大型表,並非所有的資料庫都支持

    sql server 語法:select top 數目|百分比 列名 from 表名

    select top 5 *from user

    mysql 語法:select 列名 from 表名 limit 數量

    select * from user limit 5

    oracle語法:select 列名 from 表名 where ROWNUM <=  數量

    select * from user where ROWNUM <= 5

9.like 操作符 like操作符 用於where子句中搜索列中的指定模式

    select 列名 from 表名 where 列名 like 值

    select *from user where name like '%z%'

    提示:"%"可用於定義通配符(模式中缺少的字母)

10.通配符 搜索資料庫時可以使用sql通配符

    % 替代一個或多個字符

    _  僅替代一個字符

    [charlist]  字符列中的任何單一字符

    [^charlist] = [!charlist] 不在字符列中的任何單一字符

    select *from user where name like '[!ltn]'

    從user表中選取name不以'l','t','n'開頭的數據

11.in 操作符 in操作符允許我們在where子句中規定多個值

    select 列名 from 表名 where 列名 in (value1,value2,.)

    select * from user where name in ('tuanzili','lidengcheng')

12.bet ween 操作符 between操作符在where子句中使用,作用是選取介於兩個值之間的數據範圍

    值可以是數值、文本、日期

    select 列名 from 表名 where 列名 between value1(包含) and value2(不包含)

    select *from user where name between 'lidengcheng' and 'tuanzili'

    not between 顯示範圍之外的數據

13.alias 以為列名稱和表名稱指定別名

    表名的語法: select 列名 from 表名 as 表別名

    列名的語法: select 列名 as 列別名 from 表名

    select uo.orderId,u.name,u.sex from user as u, user_order 

    as uo where u.sex='男'

    and u.name='tuanzili'

重點:

13.join 用於兩個或多個表中的列的關係,從這些表中查詢數據

    join 和key 表通過key聯繫在一起主鍵(Primary Key) 是唯一的

    從兩個表中獲取數據

    where

    select user.name,user.sex,order.money fron user , 

    order where user.id=order.userId

    inner join

    內連接

    select user.name,user.sex,order.money from user inner join 

    order on user.id=order.userId order by user.name

    join 如果表中至少一個匹配,則返回行 (內連接)

    left join 即使右表沒有匹配,也返回左表的所有行 (左連接)

    right join 左表中沒有匹配,也返回右表的所有行   (右連接)

    full join  只要其中一個表存在匹配,就返回行 (全連接)

14.inner join 和join 是相同的,在表中存在至少一個匹配時inner join 返回行

    返回表2裡面有表1的id的數據

    select 列名 from 表1 inner join 表2 on 表1.列 = 表2.列

    select user.name,user.sex,order.money from user inner join order on     user.id=order.userId

    order by user.name

    返回表order裡面user_id在user表id相同的數據

15.left join 稱為left outer join從左表(表1)返回所有的行,

即使右表(表2)中沒有匹配的行。開發中經常用到

    select 列名 from 表1 left join 表2  on  表1.列 = 表2.列

    select user.name,user.sex,order.money from user

    left join order on user.id=order.userId order by user.name

16.right join 稱為right outer join從右表(表2)返回所有的行,

即使左表(表1)中沒有匹配的行

    select 列名 from 表1 left join 表2  on  表1.列 = 表2.列

    select user.name,user.sex,order.money from user

    left join order on user.id=order.userId

17.full join 稱為full outer join 只要某個表中存在匹配,就返回行

    select 列名 from 表1 full join 表2  on  表1.列 = 表2.列

    select user.name,user.sex,order.money from user full

    join order on user.id=order.userId

高級部分

18.union 操作符 用於合併兩個或多個select語句的結果集

    union 內部的語句必須擁有相同數量的列,

    列也必須擁有相似的數據類型,列的順序必須相同

    select 列名 from 表1  union select 相同列名相同數據類型 from 表2

    允許重複值使用union all

19.select into 語句 可用於創建表的備份復件

    select into 從一個表中選取數據,插入另一個表中

    常用於創建表的備份復件或者用於對記錄進行存檔

    select 列名 into new表  [IN externaldatabase]  from old表

    in 子句可用於向另一資料庫中拷貝表

    select user.age,user.sex into user in backup_mdb  

    from user inner join order on user.id=order.userId

   

相關焦點

  • SQL 資料庫語句
    database-name2、說明:刪除資料庫drop database dbname3、說明:備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
  • 資料庫常用的sql語句匯總(2)
    資料庫相關查所有資料庫 show databases;創建資料庫 create database db1;查看資料庫show create database db1;創建資料庫指定字符集 create database db1 character set utf8/gbk刪除資料庫 drop database db1;使用資料庫 use db1;
  • SQL資料庫常見故障及解決方法
    SQL資料庫被廣泛運用於中小型企業,作為數據存儲的倉庫。但是由於一些故障原因,會造成sql資料庫損壞,數據丟失。
  • 資料庫sql語句的基礎使用,學習資料庫的關鍵一步
    創建資料庫create database 資料庫名;create database 資料庫名 character set 字符集;查看某個資料庫的定義的信息:show create database 資料庫名;刪除資料庫drop database 資料庫名稱;切換資料庫:use
  • 免費在線 SQL 資料庫環境,學習測試兩不誤!
    另外,複製網頁地址可以分享本次測試的數據和結果,以上截圖的地址為:http://sqlfiddle.com/#!9/a6c585/1。DB Fiddle DB Fiddle 提供了 MySQL、PostgreSQL 以及 SQLite 資料庫的最新版本,使用時無需註冊,同時也提供了付費版本。
  • 如何學習SQL語言
    為了幫助剛畢業找工作,或者想轉行成為數據分析師工作的朋友,我會用下面內容教會你怎樣用最快速、最容易理解的方式學會資料庫和SQL,並使用SQL進行數據分析:1.入門2.簡單查詢3.匯總分析4.複雜查詢5.多表查詢6.求職面試題7.檢驗SQL的學習效果第1部分:入門學習以下內容:1)了解資料庫的基本概念
  • 資料庫SQL開發需要關注的6種優化手段
    sql語句指令由於語法簡潔、操作高效備受了很多用戶的喜愛。可是,sql語句指令的速率備受不一樣的資料庫查詢功能的限制,特別是在計算時間層面,加上語言的高效率都不代表優化方案會更容易,因此每一個資料庫查詢都需要根據具體情況做特殊調節。
  • sql替換資料庫欄位中的字符
    某些時候我們要修改資料庫欄位中的部分字符串,如果內容少時一個一個替換,內容多時,就不能一個一個的替換了,因為這樣不僅耗時還容易出錯。下面就用sql批量進行替換。替換shopping_hw表中欄位hw_pic,內容「*common」替換為「+play」.
  • 資料庫SQL腳本優化
    語句儘可能簡單點,一個大的sql要是在滿足業務需求的情況下可以分解為多個小sql是最好的。因為一個sql只能在一個cpu運算。(前兩天就有一個超大的sql,最後通過分解成三個小的sql,通過中間表傳遞實現最終需求)6、or改寫成in,因為or的效率是n級別的,in的效率是log(n)級別的,in的個數儘量不要太多,最好控制在200以內7、避免在where條件列上不乾淨,比如說SELECT id WHERE age + 1 = 10,或者對age
  • BeetlSQL 3.1.4 發布,Java 資料庫訪問工具
    <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql>> <version>3.1.3-RELEASE</version></dependency>BeetlSQL的目標是提供開發高效,維護高效,運行高效的資料庫訪問框架
  • 面試被問:JDBC底層是如何連接資料庫的?|sql|mysql|數據源|java|...
    資料庫驅動  加載MySql的驅動類 :  Class.forName(  "com.mysql.jdbc.Driver"  );  我們安裝好資料庫之後,我們的應用程式也是不能直接使用資料庫的,必須要通過相應的資料庫驅動程序,通過驅動程序去和資料庫打交道。
  • 5個免費的在線 SQL 資料庫環境,簡直太方便了!
    另外,複製網頁地址可以分享本次測試的數據和結果,以上截圖的地址為:http://sqlfiddle.com/#!9/a6c585/1。地址:http://sqlfiddle.com/DB FiddleDB Fiddle 提供了 MySQL、PostgreSQL 以及 SQLite 資料庫的最新版本,使用時無需註冊,同時也提供了付費版本。
  • SQL Server與Access資料庫sql語法十大差異
    本文總結了SQL Server與Access資料庫sql語法的十大差異。
  • 常用的sql語句集合(適合資料庫初級人員)
    一、基礎1、創建資料庫CREATE DATABASE database-name2、刪除資料庫drop database dbname3、備份sql server--- 創建備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack
  • php5.3以上版本連接sqlserver資料庫方法 sqlsrv擴展安裝
    sqlserver2008及以上版本,微軟廢棄了對php自帶擴展的支持,php5.3以上版本默認不再支持原有的sqlserver連接方式,需要安裝微軟官方提供的驅動以及sqlsrv、pdo_sqlsrv擴展。
  • Access中查詢SQL資料庫中文字符的問題處理
    用access連結sql server中的表,建立選擇查詢時,無法查找中文數據,在這裡採用了傳遞查詢來解決這個問題。
  • 資料庫sql語句 (提升篇)
    select * into b from a where 1<>1(僅用於SQlServer)法二:select top 0 * into b from a2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、說明:跨資料庫之間表的拷貝
  • 【資料庫】MySQL常見SQL語句
    databasename - 資料庫名,tablename-表名,如果要授予該用戶對所有資料庫和表的相應操作權限則可用表示, 如.(對所有資料庫所有表相應權限),datebasename.(對指定資料庫所有表相應權限)。
  • SQL資料庫知識匯總
    ,列n from 表名 [where 條件];查詢所有列:select * from from 表名 [where 條件];SQL 中最重要的 DDL 語句:CREATE DATABASE - 創建新資料庫ALTER DATABASE - 修改資料庫CREATE TABLE - 創建新表
  • 5 個免費的在線 SQL 資料庫環境
    另外,複製網頁地址可以分享本次測試的數據和結果,以上截圖的地址為:http://sqlfiddle.com/#!9/a6c585/1。DB FiddleDB Fiddle 提供了 MySQL、PostgreSQL 以及 SQLite 資料庫的最新版本,使用時無需註冊,同時也提供了付費版本。