在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
1.一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。
2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
❷ SQL資料庫語句
/*--------------------------------------------------
--SQL Server 2012 & T-SQL Lesson 3 - BasicQueries
----------------------------------------------------*/
--Topic 1
SELECT <table fields list>
FROM <table names list>
WHERE <row constraints specification>
GROUP BY <grouping specification>
HAVING <grouping selection specification>
ORDER BY <order rules specification>
--Topic 2
use [AdventureWorks2012]
go
select Top 100 * from [Proction].[Proct]
SELECT *
FROM SALES.SALESORDERDETAIL
--Topic 3
select * from [Proction].[Proct]
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by listprice desc --desc=descending order ; asc=ascending order
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by listprice desc,Name
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by 2
--Topic 4
select ProctID, Name, ProctNumber, isnull(Color,''), isnull(Size,''), ListPrice
from Proction.Proct
--Topic 5
select ProctID, Name, ProctNumber,
isnull(Color,'') as Color, isnull(Size,'') as Size123, --using an alias
ListPrice
from Proction.Proct
select ProctID, Name as ProctName, --using an alias
'The list price for ' + ProctNumber + ' is $ ' + convert(varchar,ListPrice) +'.' ,--using the concatenation to join character end-to-end.
'The list price for ' + ProctNumber + ' is $ ' + convert(varchar,ListPrice) +'.' as [Description] --using brackets to let SQL server conside the strin as a column name
from Proction.Proct
--Topic 6
select BusinessEntityID,rate from [HumanResources].[EmployeePayHistory]
select BusinessEntityID
,rate*40*52 as AnnualSalary
,round(rate*40*52,1) as AnnualSalary
,round(rate*40*52,0) as AnnualSalary
from [HumanResources].[EmployeePayHistory]
select BusinessEntityID
,(rate+5)*40*52 as AnnualSalary
from [HumanResources].[EmployeePayHistory]
--Topic 7
select * from [Sales].[SalesOrderHeader]
select * from [Sales].[SalesOrderHeader]
where SalesPersonID=275
select * from [Sales].[SalesOrderHeader]
where SalesOrderNumber='so43670'
select * from [Sales].[SalesOrderHeader]
where TotalDue>5000
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 --Comparison conditions: =,>,<,>=,<=,<>
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 and Orderdate between '2005-08-01' and '1/1/2006'
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 and Orderdate >= '2005-08-01' and Orderdate < '1/1/2006'
select * from [Proction].[Proct]
where name ='Mountain-100 Silver, 38'
--Topic 8
select * from [Proction].[Proct]
where name like'Mountain'
select * from [Proction].[Proct]
where name like'%Mountain%' --Wildcard % matches any zero or more characters
select * from [Proction].[Proct]
where name like'mountain%' -- "_" matches any single character
select * from [Proction].[Proct]
where name like'_ountain%'
--Topic 9
select * from [Proction].[Proct]
where color in ('red','white','black')
select * from [Proction].[Proct]
where size in ('60','61','62')
select * from [Proction].[Proct]
where class not in ('H') -- same as using: <> 'H'
--Topic 10
select * from [Proction].[Proct]
where size is null
select * from [Proction].[Proct]
where size is not null
--Topic 11
select * from [Proction].[Proct]
where color ='white'or color ='black'
select * from [Proction].[Proct]
where color ='white'and color ='black'
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where (SalesPersonID=275 or SalesPersonID=278) and TotalDue>5000
--Topic 12
select count(SalesPersonID)
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select distinct(SalesPersonID)
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select count(distinct(SalesPersonID))
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
--Topic 13
select
Avg(TotalDue) as AverageTotalSales --aggregate functions
from [Sales].[SalesOrderHeader]
select
Avg(TotalDue) as AverageTotalSales
,Min(TotalDue) as MinimumTotalSales
,Max(TotalDue) as MaximumTotalSales
,Sum(TotalDue) as SummaryTotalSales
from [Sales].[SalesOrderHeader]
select SalesPersonID,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
--Error Message: Column 'Sales.SalesOrderHeader.SalesPersonID' is invalid in the select list
--because it is not contained in either an aggregate function or the GROUP BY clause.
select SalesPersonID,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID
order by SalesPersonID
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID,OrderDate --Remember to put all un-aggregated columns after "group by"!!!
order by SalesPersonID
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID,OrderDate
having Max(TotalDue)>150000
order by SalesPersonID
----The classical T-SQL query!!!
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null and OrderDate >='2007/1/1'
group by SalesPersonID,OrderDate
having Max(TotalDue)>150000
order by OrderDate desc
❸ sql 資料庫
sql的資料庫怎麼才能放到WIN 7的IIS上
====>
不需要...
將資料庫伺服器的遠程服務開啟,使用tcp/ip協議,保持網路通暢就可以了
❹ SQL資料庫
在SQL中能設置一列為只讀?這我怎麼都不知道?
我知道的是在DCL(數據控制)中對於不同的用戶可以設置不同的許可權,比如說授權某一個用戶只讀某一個資料庫時,那麼該用戶對些資料庫只能是讀無法進行插入或是更新操作,也就是說只讀資料庫的select許可權授予該用戶,即可達到只讀的情況!
當然,我們可以授予某用戶在某一列上有select許可權,就可能就是你說的那種情況!但如果是這樣的情況下,無法更改其數據,包括插入與更新,在SQL資料庫中許可權授予也是存在一定的安全機制的,用戶本身沒有許可權時,不能給其他用戶授予自己不具備的許可權,否則會造成該用戶擁有這樣的許可權.比如某用戶建立一個用戶,而該用戶若能授予自己所創建的用戶以刪除許可權,然後再以創建的用戶登陸,再授予上級用戶以刪除許可權,這樣該用戶就可能具備刪除許可權.所以如果該用戶在某一表,列或者庫中具備的是只讀時,除非使用許可權更高的用戶去授予該用戶許可權,否則使用自己打開的鏈接中是無法實現的,任何語句都不行的!
不知道你所謂的只讀是什麼意思,但在SQL中,許可權的機制不是表,而是用戶,在系統表中,用戶對某一庫表的有什麼樣的許可權都有一個系統表的,除非你能拿到更高級的用戶許可權,否則不可能有任何辦法!
❺ SQL資料庫是什麼
SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。
SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為"基本表"(base table);存儲模式(內模式)稱為"存儲文件"(stored file);子模式(外模式)稱為"視圖"(view);元組稱為"行"(row);屬性稱為"列"(column)。
(5)sql庫擴展閱讀:
SQL資料庫的優點:
1、易用性高:
適合分布式組織的可伸縮性、用於決策支持的數據倉庫功能、與許多其他伺服器軟體緊密關聯的集成性、良好的性價比等。
2.為數據管理與分析帶來了靈活性:
允許單位在快速變化的環境中從容響應,從而獲得競爭優勢。從數據管理和分析角度看,將原始數據轉化為商業智能和充分利用Web帶來的機會非常重要。作為一個完備的資料庫和數據分析包,SQLServer為快速開發新一代企業級商業應用程序、為企業贏得核心競爭優勢打開了勝利之門。
❻ sql資料庫的基本操作
命令行
1、顯示當前資料庫伺服器中的資料庫列表:mysql> SHOW DATABASES;
2、建立資料庫:mysql> CREATE DATABASE 庫名;
3、建立數據表:mysql> USE 庫名;mysql> CREATE TABLE 表名 (欄位名 VARCHAR(20), 欄位名 CHAR(1));
4、刪除資料庫:mysql> DROP DATABASE 庫名;
5、刪除數據表:mysql> DROP TABLE 表名;
6、將表中記錄清空:mysql> DELETE FROM 表名;
7、往表中插入記錄:mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數據:mysql-> UPDATE 表名 SET 欄位名1='a',欄位名2='b' WHERE 欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql> load data local infile "d:/mysql.txt" into table 表名;
10、導入.sql文件命令:mysql> USE 資料庫名;mysql> source d:/mysql.sql;
11、命令行修改root密碼:mysql> update mysql.user set password=password('新密碼') where user='root';mysql> flush privileges;
12.修改密碼的三種方法:mysql>update user set password=password('123456') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('123456');mysql>grant usage on *.* to 'joy_pen' identified by '123456';
1、創建資料庫
命令:create database <資料庫名> 例如:建立一個名為xhkdb的資料庫mysql> create database xhkdb;
2、顯示所有的資料庫
命令:show databases (注意:最後有個s)mysql> show databases;
3、刪除資料庫
命令:drop database <資料庫名> 例如:刪除名為 xhkdb的資料庫mysql> drop database xhkdb;
4、連接資料庫
命令: use <資料庫名> 例如:如果xhkdb資料庫存在,嘗試存取它:mysql> use xhkdb; 屏幕提示:Database changed
5、當前選擇(連接)的資料庫mysql> select database();
6、當前資料庫包含的表信息:mysql> show tables; (注意:最後有個s)
三、表操作,操作之前應連接某個資料庫
1、建表
命令:create table <表名> ( <欄位名1> <類型1> [,..<欄位名n> <類型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ''0'',
> degree double(16,2));
2、獲取表結構
命令: desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表 mysql> drop table MyClass;
4、插入數據
命令:insert into <表名> [( <欄位名1>[,..<欄位名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績為96.45, 編號為2 的名為Joan 的成績為82.99,編號為3 的名為Wang 的成績為96.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢表中的數據
1)、查詢所有行
命令: select <欄位1,欄位2,...> from < 表名 > where < 表達式 >
例如:查看錶 MyClass 中所有數據 mysql> select * from MyClass;
2)、查詢前幾行數據
例如:查看錶 MyClass 中前2行數據
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數據:update 表名 set 欄位=新值,… where 條件
mysql> update MyClass set name=''Mary'' where id=1;
8、在表中增加欄位:
命令:alter table 表名 add 欄位 類型 其他;
例如:在表MyClass中添加了一個欄位passtest,類型為int(4),默認值為0
mysql> alter table MyClass add passtest int(4) default ''0''
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新欄位內容
update 表名 set 欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名,''舊內容'',''新內容'');
❼ SQL資料庫語句大全
SQL資料庫語句大全:
1、選擇:select * from table1 where 范圍
2、插入:insert into table1(field1,field2) values(value1,value2)
3、刪除:delete from table1 where 范圍
4、更新:update table1 set field1=value1 where 范圍
5、排序:select * from table1 order by field1,field2 [desc]
6、總數:select count as totalcount from table1
7、求和:select sum(field1) as sumvalue from table1
❽ sql資料庫語句
那個涉及到資料庫備份的知識,
在將某個表的數據插入到另一表之中,必須確保兩個表的結構完全一侄,然後直接一條sql語句搞定,