當前位置:首頁 » 編程語言 » sql基礎訓練
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql基礎訓練

發布時間: 2022-08-28 05:55:22

sql server2008基礎語法具體怎麼多去練習啊

第一步:點擊資料庫下的「可編程性」,選擇「存儲過程」,點擊滑鼠右鍵,選擇「新建存儲過程」
第二步:在create PROCEDURE 後 輸入存儲過程的名字,緊跟著的就是定義存儲過程的參數,接下來就可以去編寫自己所需要組裝的存儲過程語句了
第三步: 編譯存儲過程,在工具欄上按下執行按鈕,如果沒有錯誤,就編寫成功了。
第四步:調用:在sqlserver的語句查詢框中,輸入exec 存儲過程名 參數,執行就可以了。
基本語法格式如下:中括弧帶的是可選項
create proc | procere pro_name
[{@參數數據類型} [=默認值] [output],
{@參數數據類型} [=默認值] [output],
....
]
as
begin
SQL_statements
--業務處理
end

㈡ WINDOWS系統下怎樣練習sql語句

安裝SQL server,就行了,這個是微軟平台的軟體,而且數據語句非常強大,很多公司都在用,可以買本書,或者直接在網上看視頻就行了

㈢ 能熟練運用SQL需要知道哪些基本的知識

熟練運用SQL?
如果是維護資料庫伺服器,注意備份管理、空間管理、優化管理
如果是使用資料庫,首先是熟悉語句select,然後update\insert

㈣ 急求SQL資料庫練習題

樓上的--理論很多不太使用:ㄨinsert -增加語句用法 insert into(Name,Sec)values("張三","李四") --這個語句1.習題:插入學員信息 Name,Sex,Age,Address (地址可為null) 要有自動標識列。 2.實現一次插入多行。3.把原有表中的某個欄位 移到新表中 提示:select <欄位> into newtable from <原表> ㄨdelecte --刪除語句delecte from <表> [where<條件>]例題:上表中 --刪除 年齡是66和地址為null 信息 (年齡與地址自己添加) ㄨupdate--更新語句update set <條件> where[限制條件]例題:把年齡大於50歲的 更新為49歲 其餘條件自己加 ㄨselect --查詢語句select <欄位1>,<欄位2> from <表> where [條件]例題:從表1、表2中查找相同欄位並且 把相同欄位存放到新的表中這里子查詢就不多說了。這些題很基礎你試一試。

㈤ 如何七周成為數據分析師:SQL,從入門到熟練

數據分析師職位要求 :

1、計算機、統計學、數學等相關專業本科及以上學歷;

2、具有深厚的統計學、數據挖掘知識,熟悉數據倉庫和數據挖掘的相關技術,能夠熟練地使用SQL;

3、三年以上具有海量數據挖掘、分析相關項目實施的工作經驗,參與過較完整的數據採集、整理、分析和建模工作;

4、對商業和業務邏輯敏感,熟悉傳統行業數據挖掘背景、了解市場特點及用戶需求,有互聯網相關行業背景,有網站用戶行為研究和文本挖掘經驗尤佳;

5、具備良好的邏輯分析能力、組織溝通能力和團隊精神;

6、富有創新精神,充滿激情,樂於接受挑戰。

1、態度嚴謹負責

嚴謹負責是數據分析師的必備素質之一,只有本著嚴謹負責的態度,才能保證數據的客觀、准確。在企業里,數據分析師可以說是企業的醫生,他們通過對企業運營數據的分析,為企業尋找症結及問題。一名合格的數據分析師,應具有嚴謹、負責的態度,保持中立立場,客觀評價企業發展過程中存在的問題,為決策層提供有效的參考依據;不應受其他因素影響而更改數據,隱瞞企業存在的問題,這樣做對企業發展是非常不利的,甚至會造成嚴重的後果。而且,對數據分析師自身來說,也是前途盡毀,從此以後所做的數據分析結果都將受到質疑,因為你已經不再是可信賴的人,在同事、領導、客戶面前已經失去了信任。所以,作為一名數據分析師就必須持有嚴謹負責的態度,這也是最基本的職業道德。

2、好奇心強烈

好奇心人皆有之,但是作為數據分析師,這份好奇心就應該更強烈,要積極主動地發現和挖掘隱藏在數據內部的真相。在數據分析師的腦子里,應該充滿著無數個「為什麼」,為什麼是這樣的結果,為什麼不是那樣的結果,導致這個結果的原因是什麼,為什麼結果不是預期的那樣等等。這一系列問題都要在進行數據分析時提出來,並且通過數據分析,給自己一個滿意的答案。越是優秀的數據分析師,好奇心也越不容易滿足,回答了一個問題,又會拋出一個新的問題,繼續研究下去。只有擁有了這樣一種刨根問底的精神,才會對數據和結論保持敏感,繼而順藤摸瓜,找出數據背後的真相。

3、邏輯思維清晰

除了一顆探索真相的好奇心,數據分析師還需要具備縝密的思維和清晰的邏輯推理能力。我記得有位大師說過:結構為王。何謂結構,結構就是我們常說的邏輯,不論說話還是寫文章,都要有條理,有目的,不可眉毛鬍子一把抓,不分主次。

通常從事數據分析時所面對的商業問題都是較為復雜的,我們要考慮錯綜復雜的成因,分析所面對的各種復雜的環境因素,並在若干發展可能性中選擇一個最優的方向。這就需要我們對事實有足夠的了解,同時也需要我們能真正理清問題的整體以及局部的結構,在深度思考後,理清結構中相互的邏輯關系,只有這樣才能真正客觀地、科學地找到商業問題的答案。

4、擅長模仿

在做數據分析時,有自己的想法固然重要,但是「前車之鑒」也是非常有必要學習的,它能幫助數據分析師迅速地成長,因此,模仿是快速提高學習成果的有效方法。這里說的模仿主要是參考他人優秀的分析思路和方法,而並不是說直接「照搬」。成功的模仿需要領會他人方法精髓,理解其分析原理,透過表面達到實質。萬變不離其宗,要善於將這些精華轉化為自己的知識,否則,只能是「一直在模仿,從未超越過」。

5、勇於創新

通過模仿可以借鑒他人的成功經驗,但模仿的時間不宜太長,並且建議每次模仿後都要進行總結,提出可以改進的地方,甚至要有所創新。創新是一個優秀數據分析師應具備的精神,只有不斷的創新,才能提高自己的分析水平,使自己站在更高的角度來分析問題,為整個研究領域乃至社會帶來更多的價值。現在的分析方法和研究課題千變萬化,墨守成規是無法很好地解決所面臨的新問題的。

㈥ 求一份openGauss常用SQL示例 做個簡單的入門練手測試~

如下羅列了一些創建、增、刪、改、查相關,請參考(涉及的具體語法及參數自行查閱官方文檔):
--1.CREATE USER
--創建用戶jim,登錄密碼為xxxxxxxxx。
openGauss=# CREATE USER jim PASSWORD 'xxxxxxxxx';

--下面語句與上面的等價。
openGauss=# CREATE USER kim IDENTIFIED BY 'xxxxxxxxx';

--如果創建有「創建資料庫」許可權的用戶,則需要加CREATEDB關鍵字。
openGauss=# CREATE USER dim CREATEDB PASSWORD 'xxxxxxxxx';

--將用戶jim的登錄密碼由xxxxxxxxx修改為Abcd@123。
openGauss=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'xxxxxxxxx';

--為用戶jim追加CREATEROLE許可權。
openGauss=# ALTER USER jim CREATEROLE;

--將enable_seqscan的值設置為on, 設置成功後,在下一會話中生效。
openGauss=# ALTER USER jim SET enable_seqscan TO on;

--重置jim的enable_seqscan參數。
openGauss=# ALTER USER jim RESET enable_seqscan;

--鎖定jim帳戶。
openGauss=# ALTER USER jim ACCOUNT LOCK;

--刪除用戶。
openGauss=# DROP USER kim CASCADE;
openGauss=# DROP USER jim CASCADE;
openGauss=# DROP USER dim CASCADE;

--2.創建和管理資料庫

--使用如下命令創建一個新的資料庫db_tpcc。
openGauss=# CREATE DATABASE db_tpcc;

註:
•資料庫名稱遵循SQL標識符的一般規則。當前角色自動成為此新資料庫的所有者。
•如果一個資料庫系統用於承載相互獨立的用戶和項目,建議把它們放在不同的資料庫里。
•如果項目或者用戶是相互關聯的,並且可以相互使用對方的資源,則應該把它們放在同一個資料庫里,但可以規劃在不同的模式中。模式只是一個純粹的邏輯結構,某個模式的訪問許可權由許可權系統模塊控制。
•創建資料庫時,若資料庫名稱長度超過63位元組,server端會對資料庫名稱進行截斷,保留前63個位元組,因此建議資料庫名稱長度不要超過63個位元組。

--查看資料庫
•使用\l元命令查看資料庫系統的資料庫列表。
openGauss=# \l

•使用如下命令通過系統表pg_database查詢資料庫列表。
openGauss=# SELECT datname FROM pg_database;

--修改資料庫
用戶可以使用如下命令修改資料庫屬性(比如:owner、名稱和默認的配置屬性)。
•使用以下命令為資料庫設置默認的模式搜索路徑。
openGauss=# ALTER DATABASE db_tpcc SET search_path TO pa_catalog,public;

--使用如下命令為資料庫重新命名。
openGauss=# ALTER DATABASE db_tpcc RENAME TO human_tpcds;

--刪除資料庫
用戶可以使用DROP DATABASE命令刪除資料庫。這個命令刪除了資料庫中的系統目錄,並且刪除了磁碟上帶有數據的資料庫目錄。用戶必須是資料庫的owner或者系統管理員才能刪除資料庫。當有人連接資料庫時,刪除操作會失敗。刪除資料庫時請先連接到其他的資料庫。
使用如下命令刪除資料庫:
openGauss=# DROP DATABASE human_tpcds;

--3.CREATE TABLE
--表是建立在資料庫中的,在不同的資料庫中可以存放相同的表。甚至可以通過使用模式在同一個資料庫中創建相同名稱的表。創建表前請先規劃存儲模型。
openGauss=# CREATE TABLE customer_t1
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);

當結果顯示為如下信息,則表示創建成功。
CREATE TABLE

其中c_customer_sk 、c_customer_id、c_first_name和c_last_name是表的欄位名,integer、char(5)、char(6)和char(8)分別是這四欄位名稱的類型。

--4.向表中插入數據
--向表中插入數據前,意味著表已創建成功。
向表customer_t1中插入一行:
數據值是按照這些欄位在表中出現的順序列出的,並且用逗號分隔。通常數據值是文本(常量),但也允許使用標量表達式。
openGauss=# INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', 'Grace');

如果用戶已經知道表中欄位的順序,也可無需列出表中的欄位。例如以下命令與上面的命令效果相同。
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello', 'Grace');

如果用戶不知道所有欄位的數值,可以忽略其中的一些。沒有數值的欄位將被填充為欄位的預設值。例如:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_first_name) VALUES (3769, 'Grace');
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello');

用戶也可以對獨立的欄位或者整個行明確預設值:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', DEFAULT);
openGauss=# INSERT INTO customer_t1 DEFAULT VALUES;

如果需要在表中插入多行,請使用以下命令:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES
(6885, 'maps', 'Joes'),
(4321, 'tpcds', 'Lily'),
(9527, 'world', 'James');
如果需要向表中插入多條數據,除此命令外,也可以多次執行插入一行數據命令實現。但是建議使用此命令可以提升效率。

如果從指定表插入數據到當前表,例如在資料庫中創建了一個表customer_t1的備份表customer_t2,現在需要將表customer_t1中的數據插入到表customer_t2中,則可以執行如下命令。
openGauss=# CREATE TABLE customer_t2
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);

openGauss=# INSERT INTO customer_t2 SELECT * FROM customer_t1;

從指定表插入數據到當前表時,若指定表與當前表對應的欄位數據類型之間不存在隱式轉換,則這兩種數據類型必須相同。

刪除備份表
openGauss=# DROP TABLE customer_t2 CASCADE;
在刪除表的時候,若當前需刪除的表與其他表有依賴關系,需先刪除關聯的表,然後再刪除當前表。

--5.更新表中數據
修改已經存儲在資料庫中數據的行為叫做更新。用戶可以更新單獨一行,所有行或者指定的部分行。還可以獨立更新每個欄位,而其他欄位則不受影響。

使用UPDATE命令更新現有行,需要提供以下三種信息:
•表的名稱和要更新的欄位名
•欄位的新值
•要更新哪些行

SQL通常不會為數據行提供唯一標識,因此無法直接聲明需要更新哪一行。但是可以通過聲明一個被更新的行必須滿足的條件。只有在表裡存在主鍵的時候,才可以通過主鍵指定一個獨立的行。

建立表和插入數據的步驟請參考創建表和向表中插入數據。

需要將表customer_t1中c_customer_sk為9527的地域重新定義為9876:
openGauss=# UPDATE customer_t1 SET c_customer_sk = 9876 WHERE c_customer_sk = 9527;

這里的表名稱也可以使用模式名修飾,否則會從默認的模式路徑找到這個表。SET後面緊跟欄位和新的欄位值。新的欄位值不僅可以是常量,也可以是變數表達式。

比如,把所有c_customer_sk的值增加100:
openGauss=# UPDATE customer_t1 SET c_customer_sk = c_customer_sk + 100;

在這里省略了WHERE子句,表示表中的所有行都要被更新。如果出現了WHERE子句,那麼只有匹配其條件的行才會被更新。

在SET子句中的等號是一個賦值,而在WHERE子句中的等號是比較。WHERE條件不一定是相等測試,許多其他的操作符也可以使用。

用戶可以在一個UPDATE命令中更新更多的欄位,方法是在SET子句中列出更多賦值,比如:
openGauss=# UPDATE customer_t1 SET c_customer_id = 'Admin', c_first_name = 'Local' WHERE c_customer_sk = 4421;

批量更新或刪除數據後,會在數據文件中產生大量的刪除標記,查詢過程中標記刪除的數據也是需要掃描的。故多次批量更新/刪除後,標記刪除的數據量過大會嚴重影響查詢的性能。建議在批量更新/刪除業務會反復執行的場景下,定期執行VACUUM FULL以保持查詢性能。

--6.查看數據
使用系統表pg_tables查詢資料庫所有表的信息。
openGauss=# SELECT * FROM pg_tables;

使用gsql的\d+命令查詢表的屬性。
openGauss=# \d+ customer_t1;

執行如下命令查詢表customer_t1的數據量。
openGauss=# SELECT count(*) FROM customer_t1;

執行如下命令查詢表customer_t1的所有數據。
openGauss=# SELECT * FROM customer_t1;

執行如下命令只查詢欄位c_customer_sk的數據。
openGauss=# SELECT c_customer_sk FROM customer_t1;

執行如下命令過濾欄位c_customer_sk的重復數據。
openGauss=# SELECT DISTINCT( c_customer_sk ) FROM customer_t1;

執行如下命令查詢欄位c_customer_sk為3869的所有數據。
openGauss=# SELECT * FROM customer_t1 WHERE c_customer_sk = 3869;

執行如下命令按照欄位c_customer_sk進行排序。
openGauss=# SELECT * FROM customer_t1 ORDER BY c_customer_sk;

--7.刪除表中數據
在使用表的過程中,可能會需要刪除已過期的數據,刪除數據必須從表中整行的刪除。

SQL不能直接訪問獨立的行,只能通過聲明被刪除行匹配的條件進行。如果表中有一個主鍵,用戶可以指定準確的行。用戶可以刪除匹配條件的一組行或者一次刪除表中的所有行。

使用DELETE命令刪除行,如果刪除表customer_t1中所有c_customer_sk為3869的記錄:
openGauss=# DELETE FROM customer_t1 WHERE c_customer_sk = 3869;

如果執行如下命令之一,會刪除表中所有的行。
openGauss=# DELETE FROM customer_t1;

openGauss=# TRUNCATE TABLE customer_t1;
全表刪除的場景下,建議使用truncate,不建議使用delete。

刪除創建的表:
openGauss=# DROP TABLE customer_t1;

㈦ 急求SQL資料庫的實訓總結,以及在實訓中碰到的問題和體會

都差不多吧!我也寫過一次,給你吧,希望能夠幫到你

這個星期是我們SQL Server 資料庫管理課的實訓,經過一個星期的實訓,讓我領會到了許多平時課堂上所沒有接受的課外知識,很讓人受益匪淺,懂得如何去運用,而進行的一次分析設計綜合的訓練。而本次實訓的目的是讓我們掌握資料庫系統的原理、技術。將理論與實際相結合,應用現有的資料庫管理系統軟體,規范、科學地完成一個設計與實現。

這次我們實訓的內容是從資料庫、數據表的創建和修改開始的,表是建立關系資料庫的基本結構,用來存儲數據具有已定義的屬性,在表的操作過程中,有查看錶信息、查看錶屬性、修改表中的數據、刪除表中的數據及修改表和刪除表的操作。從實訓中讓我更明白一些知識,表是數據最重要的一個數據對象,表的創建好壞直接關繫到數資料庫的成敗,表的內容是越具體越好,但是也不能太繁瑣,以後在實際應用中多使用表,對表的規劃和理解就會越深刻。我們實訓的另一個內容是資料庫的約束、視圖、查詢。從中我們了解到查詢語句的基本結構,和簡單SELECT語句的使用,多表連接查詢。而在視圖的操作中,也了解到了視圖是常見的資料庫對象,是提供查看和存取數據的另一種途徑,對查詢執行的大部分操作,使用視圖一樣可以完成。使用視圖不僅可以簡化數據操作,還可以提高資料庫的安全性,不僅可以檢索數據,也可以通過視圖向基表中添加、修改和刪除數據。存儲過程、觸發器也是我們實訓的內容之一, 在操作中有建立存儲過程,執行存儲過程,及查看和修改存儲過程,這些都是非常基礎的東西,但對用戶卻是非常重要的呢,只有熟悉了T_SQL語言,才能更好的掌握更多的東西。我們還學習了,SQL管理、數據的導入、導出、備份和還原。有SQL Server 安全訪問控制;登錄賬戶的管理;資料庫角色的管理;用戶許可權管理。維護資料庫的安全是確保資料庫正常運行的重要工作。數據的備份是對SQL Server數據事務日誌進行拷貝,資料庫備份記錄了在進行備份操作的資料庫中所有數據的狀態。而數據的備份還分為資料庫完整備份、差異備份、事務日誌備份、文件及文件組備份。做數據備份就是為了以後的資料庫恢復用。在實訓內容上我們還做了倉庫管理資料庫,其中的要求包含了許多資料庫的對象,綜合了我們所學的許多知識,讓我們更努力的把所學到的東西運用上去。

實訓課是在學習與探索中度過的,短暫的一星期實訓是結束了,但其中讓我們學到了許多知識,出現許多未知的為什麼,如倉庫管理資料庫的初步設置、數據備份與還原的步驟,如何建立視圖、觸發器等一系列的問題,正是在老師和同學的共同努力之下,我們才一步步把問題解決了,最終完成了不可能完成的任務。

㈧ 最近在學sql,請問有沒有一些操作的練習呢比如說一些多表查詢啊什麼的 感激不盡喔。。。

網上一般會有一些公用的資料庫可以下載,比如:國家代碼,IP地址庫,等等,你可以下載下來然後自己給自己設置題目來寫SQL語句就可以了。
我每次放URL都回答不了問題,就不放了,如果需要,使用Hi找我吧。

㈨ SQL數據查詢練習

--1.1創建新表 score
create table score
(
[學號] varchar(10)
,[課程號] varchar(10)
,[成績] float
)
--1.2插入新表的值
insert into score values(103,'3-245',86)
insert into score values(105,'3-245',75)
insert into score values(109,'3-245',68)
insert into score values(103,'3-105',92)
insert into score values(105,'3-105',88)
insert into score values(109,'3-105',76)
insert into score values(101,'3-105',64)
insert into score values(101,'3-105',64)
insert into score values(101,'6-166',85)
insert into score values(107,'6-166',79)
insert into score values(108,'6-166',81)

--1.3 按排列順序查看創建的表的內容
select* from score order by [課程號] asc,[成績] desc --這樣查看不舒服,可以修改下,如下面這句:
select [課程號],[成績],[學號] from score order by [課程號] asc,[成績] desc

--1.4
select y=sum([成績]) --查找3-105 的分數之和,問題6-166的總分也是這個道理
, x=count([課程號]) from score where [課程號]='3-105'--查找3-105的課程個數
--計算平均分
select [3-105平均分]=y/x from(select y=sum([成績])
, x=count([課程號]) from score where [課程號]='3-105')t

--1.5 查詢成績為定值的記錄
select * from score where [成績]='85' or [成績]='86' or [成績]='88'
--這里用and 的話沒法查出內容,
--1.6 成績在多少到多少的記錄
select * from score where [成績] between 60 and 79 order by [成績] desc

--1.7查詢每個學生的最高分
select * from score where [成績] in(select max([成績]) from score group by [學號])
--1.8課程最高分
select * from score where [成績] in(select max([成績]) from score group by [課程號])
--各門課程最高分大於90的就是在上面的內容上增加一個where 條件,自己嘗試下
select * from(select * from score where [成績] in(select max([成績]) from score group by [課程號]))t
where [成績]>=90
--注意資料庫別名的用法't'
--1.9弟九個問題跳過,扯蛋的問題
--2.0課程次數及排序
select [課程號],[課程次數]=count([課程號]) from score group by [課程號] order by 課程次數 desc
--注意資料庫自定義欄位的使用
--升序 asc ,降序 desc

--2.1最後一個問題你自己考慮考慮,方法基本都在前面幾個問題裡面可以找到。

㈩ 如何學好SQL只想熟練操作,請指教一些入門的竅門

  1. 首先理解關系型資料庫的概念

  2. 熟悉常用對象和他們的定義語法,如資料庫,表,視圖,存儲過程,觸發器,函數等

  3. 熟悉常用語句,如SELECT,INSERT,UPDATE等

  4. 熟悉常用邏輯判斷方法,如IF,CASE WHEN等

  5. 熟悉常用內置函數,如CONVERT,GETDATE等

  6. 做一部分練習題和應用題,網上或者書本里會有,掌握應用知識

  7. 結合Java,C#,PHP等語言做應用,了解他們與SQL之間結合使用的知識。

  8. 多練習,多提問,經驗豐富後找一些成熟的項目或商業版本學習。