<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

      電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
      搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 編程學習 >> 數(shù)據(jù)庫語言 >> 正文

      SQL語言入門(非常詳細)零基礎(chǔ)入門到精通,收藏這一篇就夠了_sql語言的概念

      作者:佚名    文章來源:網(wǎng)站整理    點擊數(shù):    更新時間:2024/10/1

      SQL數(shù)據(jù)庫 

      一、SQL 概述

      1、什么是 SQL

      SQL 指結(jié)構(gòu)化查詢語言,全稱是 Structured Query Language。

      SQL 讓您可以訪問和處理數(shù)據(jù)庫,包括數(shù)據(jù)插入、查詢、更新和刪除。

      SQL 在1986年成為 ANSI(American National Standards Institute 美國國家標準化組織)的一項標準,在 1987 年成為國際標準化組織(ISO)標準。

      2、SQL語言的版本歷史

      在1970年代初,由IBM公司San Jose,California研究實驗室的埃德加·科德發(fā)表將數(shù)據(jù)組成表格的應(yīng)用原則(Codd’s Relational Algebra)。1974年,同一實驗室的D.D.Chamberlin和R.F. Boyce對Codd’s Relational Algebra在研制關(guān)系數(shù)據(jù)庫管理系統(tǒng)System R中,研制出一套規(guī)范語言-SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名為SQL。

      1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫系統(tǒng)中也實現(xiàn)了SQL。

      1986年10月,美國ANSI采用SQL作為關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標準語言(ANSI X3. 135-1986),后為國際標準化組織(ISO)采納為國際標準。

      1989年,美國ANSI采納在ANSI X3.135-1989報告中定義的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的SQL標準語言,稱為ANSI SQL 89, 該標準替代ANSI X3.135-1986版本。該標準為下列組織所采納:

      國際標準化組織(ISO),為ISO 9075-1989報告“Database Language SQL With Integrity Enhancement”

      美國聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127

      目前,所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)支持某些形式的SQL, 大部分數(shù)據(jù)庫打算遵守ANSI SQL89標準。

      3、SQL語句基礎(chǔ)語法規(guī)范

      SQL(Structured Query Language)是用于管理關(guān)系型數(shù)據(jù)庫的標準語言。它的基本語法規(guī)范包括以下幾個關(guān)鍵部分:

      1. SELECT 語句:這是最基本的SQL語句,用于從數(shù)據(jù)庫中選擇數(shù)據(jù)。格式通常是 `SELECT column_name(s) FROM table_name WHERE condition`,其中 `column_name(s)` 是要查詢的列,`table_name` 是數(shù)據(jù)表名,`condition` 是篩選條件。

      2. INSERT INTO 語句:用于向表中插入新記錄,格式為 `INSERT INTO table_name (column1, column2,…) VALUES (value1, value2,…)`。

      3. UPDATE 語句:用來更新表中的數(shù)據(jù),格式為 `UPDATE table_name SET column = new_value WHERE condition`。

      4. DELETE FROM 語句:刪除表中滿足特定條件的行,例如 `DELETE FROM table_name WHERE condition`。

      5. CREATE TABLE 語句:用于創(chuàng)建新的表,定義列名、數(shù)據(jù)類型等信息。

      6. JOIN 語句:連接兩個或多個表,如 INNER JOIN, LEFT JOIN, RIGHT JOIN 等,用于獲取多個表之間的關(guān)聯(lián)數(shù)據(jù)。

      7. WHERE 子句:用于指定查詢條件,過濾返回的結(jié)果。

      8. GROUP BY 和 HAVING 子句:用于對查詢結(jié)果進行分組和過濾聚合。

      9. ORDER BY 子句:按照指定列對查詢結(jié)果進行排序。

      10. COMMIT 和 ROLLBACK 命令:前者提交事務(wù),后者回滾事務(wù)以撤銷更改。

      二、SQL 分類:DDL、DML、DCL、DQL

      01、DDL(Data Definition Languages)語句: 即數(shù)據(jù)庫定義語句,用來創(chuàng)建數(shù)據(jù)庫中的表、索引、視圖、存儲過程、觸發(fā)器等對象。SQLServer DLL語法是指SQL Server 數(shù)據(jù)庫定義域發(fā)的語法規(guī)則集合,主要包括創(chuàng)建、修改和刪除數(shù)據(jù)庫對象的語句。

      常用的語句關(guān)鍵字有:

      【create table 創(chuàng)建表】、【alter table 修改表】、【drop table 刪除表】、【truncate table 刪除表中所有行】、【create index 創(chuàng)建索引】、【drop index 刪除索引】、【comment 注釋】、【rename table 修改表名】

      02、DML(Data Manipulation Language)語句: 指的是用于管理數(shù)據(jù)庫中數(shù)據(jù)的操作,用來查詢(Select)、添加(Insert)、更新(Update)、刪除(Delete)等

      03、DCL(Data Control Language)語句: 即數(shù)據(jù)控制語句,用于授權(quán)/撤銷數(shù)據(jù)庫及其字段的權(quán)限。

      常用的語句關(guān)鍵字有:

      grant授權(quán)

      revoke取消授權(quán)

      04、DQL:(Data QueryLanguage)語句: 數(shù)據(jù)查詢語言

      常用的語句關(guān)鍵字有:

      selet 獲取

      where、group by、having、ofder by等過濾條件

      事務(wù)控制語言

      SAVEPOINT 設(shè)置保存點

      ROLLBACK 回滾

      SET TRANSACTION

      三、DDL(Data Definition Language):數(shù)據(jù)定義語言

      1、基本操作

      1.1操作數(shù)據(jù)庫:創(chuàng)建庫CREATE DATABASE,刪除庫DROP DATABASE,修改庫ALTER DATABASE。

      CREATE DATABASE TestDB;
      DROP DATABASE TestDB;
      ALTER DATABASE TestDB COLLATE Chinese_PRC_CI_AS;
      

      1.2 數(shù)據(jù)類型:數(shù)字型(int,tinyint,decimal,float等)、日期和時間類型(Date,TIME等)、字符串類型(char,varchar等)。

      CREATE TABLE NumTable (
          id INT,
          smallNum TINYINT,
          money DECIMAL(10, 2),
          size FLOAT
      );
      CREATE TABLE DateTable (
          date_column DATE,
          time_column TIME
      );
      CREATE TABLE StringTable (
          fixed_length_name CHAR(50),
          variable_length_address VARCHAR(255)
      );
      

      1.3 操作表:創(chuàng)建表CREATE TABLE,刪除表DROP TABLE,修改表ALTER TABLE,重命名表 RENAME TABLE。、

      CREATE TABLE EmployeeTable (
          ID int,
          Name varchar(255),
          Age int
      );
      DROP TABLE EmployeeTable;
      ALTER TABLE EmployeeTable ADD Email varchar(255);
      ALTER TABLE EmployeeTable MODIFY COLUMN Age smallint;
      ALTER TABLE EmployeeTable DROP COLUMN Age;
      RENAME TABLE EmployeeTable TO StaffTable;
      

      四、DML(Data Manipulation Language):數(shù)據(jù)操作語言

      4.1 插入數(shù)據(jù):利用INSERT INTO語句添加一條或多條記錄。

      INSERT INTO employees (id, name, department_id) VALUES (1, 'Li Ming', 101);    
      (向employees表中插入一條新的員工記錄,id為1, 名字是'Li Ming', 部門id是101)
      INSERT INTO employees (name, department_id) VALUES ('Wang Gang', 102);      
      (向employees表中插入一條新的員工記錄, id將自動生成,名字是'Wang Gang', 部門id是102)
      INSERT INTO employees VALUES (3, 'Zhang San', 103);            
      (向employees表中插入一條新的員工記錄,id為3, 名字是'Zhang San', 部門id是103)
      

      4.2 修改數(shù)據(jù):用UPDATE語句可以修改表中的數(shù)據(jù)。

      UPDATE employees SET department_id = 201 WHERE name = 'Li Ming';             
      (修改名為'Li Ming'的員工的部門id為201)
      UPDATE employees SET name = 'Liu Yan' WHERE id = 2;               
      (修改id為2的員工的名字為'Liu Yan')
      UPDATE employees SET name = 'Zhu Rongji', department_id = 202 WHERE id = 3;                  
      (修改id為3的員工的名字為'Zhu Rongji'和部門id為202)
      

      4.3 刪除數(shù)據(jù):DELETE FROM語句用于在表中刪除一條或者多條記錄。

      DELETE FROM employees WHERE id = 1;                
      (刪除id為1的員工記錄)
      DELETE FROM employees WHERE name = 'Wang Gang';                   
      (刪除名字為'Wang Gang'的員工記錄)
      DELETE FROM employees WHERE department_id = 202;                 
      (刪除部門id為202的所有員工記錄)
      

      五、DCL(Data Control Language):數(shù)據(jù)控制語言

      5.1 創(chuàng)建用戶:使用CREATE USER語句創(chuàng)建新的數(shù)據(jù)庫用戶。

      CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
      (在"localhost"上創(chuàng)建一個名為"newuser"的新用戶,密碼是"password"。)
      

      5.2 給用戶授權(quán):使用GRANT語句為用戶分配訪問權(quán)限。

      GRANT SELECT, INSERT, DELETE ON database_name.table_name TO 'username'@'localhost';
      (在localhost上給"username"用戶賦予運database_name數(shù)據(jù)庫中table_name表的SELECT,INSERT和DELETE權(quán)限。)
      

      5.3 撤銷授權(quán):使用REVOKE語句撤銷用戶的訪問權(quán)限。

      REVOKE INSERT ON database_name.table_name FROM 'username'@'localhost';
      (在localhost上撤銷"username"用戶對database_name數(shù)據(jù)庫中table_name表的INSERT權(quán)限。)
      

      5.4 查看用戶權(quán)限:使用SHOW GRANTS語句查看用戶當前的權(quán)限列表。

      SHOW GRANTS FOR 'username'@'localhost';
      (顯示"localhost"上"username"用戶的所有權(quán)限。)
      

      5.5 刪除用戶:用DROP USER語句來刪除一個用戶。

      DROP USER 'username'@'localhost';
      (刪除"localhost"上名為"username"的用戶。)
      

      5.6 修改用戶密碼(以root身份):通過ALTER USER語句可以修改用戶的密碼。

      ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
      (修改在"localhost"上username用戶的密碼為"newpassword"。)
      

      六、DQL(Data Query Language):數(shù)據(jù)查詢語言

      6.1 基礎(chǔ)查詢:利用SELECT 語句可以查詢數(shù)據(jù)庫中的數(shù)據(jù)。

      SELECT * 
      FROM Employee;  
      (查詢Employees表中的所有記錄)
      SELECT FirstName, LastName 
      FROM Employee;  
      (查詢Employee表中的FirstName和LastName字段所有記錄)
      

      6.2 條件查詢:通過使用WHERE子句來設(shè)定查詢條件。

      SELECT * 
      FROM Employee 
      WHERE Salary > 5000; 
      (查詢Employee表中Salary大于5000的所有記錄)
      SELECT FirstName, LastName 
      FROM Employee 
      WHERE Age <= 30; 
      (查詢Employee表中年齡小于等于30的員工的firstName和lastName字段記錄)
      SELECT * 
      FROM Employee 
      WHERE Salary > 5000 
      AND Age <= 30; 
      (查詢Employee表中Salary大于5000且年齡小于等于30的所有記錄)
      SELECT * 
      FROM Employee 
      WHERE Salary > 5000 
      OR Age <= 30; 
      (查詢Employee表中Salary大于5000或年齡小于等于30的所有記錄)
      

      6.3 模糊查詢:使用LIKE子句,配合通配符%和_進行模糊查詢。

      SELECT * 
      FROM Employee 
      WHERE FirstName LIKE 'John%'; 
      (查詢Employee表中FirstName以John開頭的所有記錄)
      SELECT * 
      FROM Employee 
      WHERE FirstName LIKE '%John%'; 
      (查詢Employee表中FirstName包含John的所有記錄)
      SELECT FirstName, LastName 
      FROM Employee 
      WHERE LastName LIKE '%son_'; 
      (查詢Employee表中LastName以son+一個任意字符結(jié)束的所有記錄)
      

      6.4 字段控制查詢:運用DISTINCT關(guān)鍵字進行去重查詢。

      SELECT DISTINCT City 
      FROM Employee; 
      (查詢Employee表中,City字段去重之后的所有城市記錄)
      SELECT DISTINCT Age, Salary 
      FROM Employee 
      WHERE Age<50; 
      (查詢Employee表中,Age小于50歲的員工的Age和Salary字段組合記錄,并進行去重處理)
      

      6.5 排序:用ORDER BY子句按照一個或多個列進行排序。

      單列排序:

      SELECT * 
      FROM Employee 
      ORDER BY Salary; 
      (按'工資'列的升序返回Employee表中的所有行。)
      

      多列排序:

      SELECT * 
      FROM Employee 
      ORDER BY Salary, Age DESC;
      (首先根據(jù)'工資'列的升序?qū)mployee表中的行進行排序,然后在工資相同的情況下,根據(jù)'Age'列的降序進行排序。)
      

      6.6 聚合函數(shù):包括COUNT,SUM,MAX,MIN,AVG等函數(shù)。

      COUNT:

      SELECT COUNT(*) 
      FROM Employee;
      (返回Employee表的總行數(shù)。)
      

      SUM:

      SELECT SUM(Salary) 
      FROM Employee;
      (返回Employee表中所有員工的薪水總和。)
      

      MAX:

      SELECT MAX(Age)` `FROM Employee;``(返回Employee表中員工的最大年齡。)
      

      MIN:

      SELECT MIN(Age)` `FROM Employee;``(返回Employee表中員工的最小年齡。)
      

      AVG:

      SELECT AVG(Salary)` `FROM Employee;``(返回Employee表中員工的平均薪水。)
      

      6.7 分組查詢:GROUP BY子句是用于結(jié)合聚合函數(shù),依據(jù)一個或多個列進行分組。

      按單列分組:

      SELECT Department, COUNT(*)` `FROM Employee` `GROUP BY Department;``(返回每個部門的員工數(shù)量。)
      

      按多列分組:

      SELECT Department, JobTitle, AVG(Salary)` `FROM Employee` `GROUP BY Department, JobTitle;``(返回每個部門及職位下員工的平均薪水。)
      

      分組后過濾:

      SELECT Department, JobTitle, AVG(Salary)` `FROM Employee` `GROUP BY Department, JobTitle``HAVING AVG(Salary) > 5000;``(返回每個部門及職位下員工的平均薪水大于5000的部分。)
      

      6.8 LIMIT:用來限定查詢結(jié)果的起始行,以及總行數(shù)。

      簡單LIMIT:

      SELECT *` `FROM Employee` `ORDER BY Salary DESC` `LIMIT 10;``(返回前10個工資最高的員工。)
      

      帶偏移量的LIMIT:

      SELECT *` `FROM Employee` `ORDER BY Salary DESC` `LIMIT 10 OFFSET 5;``(返回工資排名第6到第15的10個員工。)
      

      6.9 多表連接查詢:

      內(nèi)連接:INNER JOIN

      SELECT Orders.OrderID, Customers.CustomerName``FROM Orders``INNER JOIN Customers``ON Orders.CustomerID = Customers.CustomerID;
      

      左連接:LEFT JOIN

      SELECT Customers.CustomerName, Orders.OrderID``FROM Customers``LEFT JOIN Orders``ON Customers.CustomerID = Orders.CustomerID;
      

      右連接:RIGHT JOIN

      SELECT Orders.OrderID, Customers.CustomerName``FROM Orders``RIGHT JOIN Customers``ON Orders.CustomerID = Customers.CustomerID;
      

      全外連接:FULL JOIN

      SELECT Customers.CustomerName, Orders.OrderID``FROM Customers``FULL JOIN Orders``ON Customers.CustomerID = Orders.CustomerID;
      

      笛卡爾積:CROSS JOIN

      SELECT Products.ProductName, Suppliers.SupplierName``FROM Products``CROSS JOIN Suppliers;
      
      Tags:SQL,基礎(chǔ)入門,數(shù)據(jù)庫  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊。 昵稱:注冊  登錄
      [ 查看全部 ] 網(wǎng)友評論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产成人综合亚洲一区| 亚洲综合色丁香婷婷六月图片| 五月综合色婷婷影院在线观看| 亚洲色图综合网站| 色综合久久88色综合天天 | 久久精品水蜜桃av综合天堂| 狠狠人妻久久久久久综合蜜桃 | 色综合色综合久久综合频道| 亚洲综合亚洲综合网成人| 99久久婷婷免费国产综合精品 | 久久综合亚洲色hezyo| 狠狠色婷婷综合天天久久丁香| 日日AV色欲香天天综合网| 狠狠色噜狠狠狠狠色综合久| 久久综合伊人77777麻豆| 久久综合九色综合97手机观看| 噜噜综合亚洲AV中文无码| 狠狠色丁香久久婷婷综合五月 | 国产亚洲综合视频| 亚洲精品第一国产综合境外资源| 狠狠亚洲婷婷综合色香五月排名| 亚洲国产综合久久天堂| 一本久道久久综合狠狠躁| 一本久久知道综合久久| 色综合天天做天天爱| 国产成人综合一区精品| 色综合久久最新中文字幕| 国产91久久综合| 亚洲精品第一国产综合境外资源 | 色九月亚洲综合网| 久久婷婷五夜综合色频| 九色综合狠狠综合久久| 一本久久a久久精品综合香蕉| 色婷婷综合久久久中文字幕| 伊人久久综合精品无码AV专区| 亚洲国产精品综合久久网络| 亚洲综合图片小说区热久久| 伊伊人成亚洲综合人网7777| 六月丁香激情综合成人| 亚洲av综合av一区二区三区| 亚洲综合激情六月婷婷在线观看 |