資料庫sql代碼
create database [資料庫名];x0dx0auser [該資料庫名];x0dx0ax0dx0a--學生表x0dx0acreate table [學生表表名](x0dx0asId int primary key, --學生ID編號,主鍵x0dx0asName varchar(10) unique not null, --學生名字x0dx0a);x0dx0ax0dx0a--科目表x0dx0acreate table [科目表表名](x0dx0asjId int primary key, --科目ID編號,主鍵x0dx0asjName varchar(10) unique not null, --科目名稱x0dx0a);x0dx0ax0dx0a--成績表x0dx0acreate table [成績表表名]x0dx0arId int primary key, --成績ID編號,主鍵x0dx0asjId int references [科目表表名](sjId), --科目ID編號,繼承科目表的ID編號x0dx0asId int references [學生表表名](sId), --學生ID編號,繼承學生表的ID編號x0dx0aresult float not null --成績x0dx0a);x0dx0ax0dx0a--查詢語句x0dx0aselect r.rId,sj.sjId,sj.sjName,su.sId,su.sName,r.result x0dx0afrom [成績表表名] r,x0dx0ajoin [科目表表名] sj on sj.sjId=r.sjId,x0dx0ajoin [學生表表名] su on su.sId=r.sId;
2. 如何使用SQL代碼創建資料庫
我們一般都是運用圖形化工具創建資料庫,那麼如何運用SQL語言創建資料庫呢?下面我給大家分享一下。
工具/材料
SQL Server Managment
- 01
首先打開SQL Server Managment,登錄本地資料庫管理平台,如下圖所示
- 02
然後點擊頂部的新建查詢按鈕,如下圖所示
- 03
接下來在查詢編輯界面輸入create database語句,後面加上資料庫名稱,如下圖所示
- 04
最後我們就可以在資料庫列表中看到創建的資料庫了,如下圖所示
3. 求使用sql語句創建和刪除資料庫的代碼
1、使用create
database創建資料庫test
create
database
test
on
primary
(
name
=
'test',
filename='c:\program
files\microsoft
sql
server\mssql\data\test.mdf',
size=10240kb,
maxsize
=
unlimited,
filegrowth
=
10%)
log
on
(
name='test_log',
filename='c:\program
files\microsoft
sql
server\mssql\data\test_log.ldf',
size=1024kb,
maxsize
=
5120kb,
filegrowth
=
1024kb
)
go
2.
使用alter
database語句修改資料庫
例4-3將兩個數據文件和一個事務日誌文件添加到test資料庫中。
程序清單如下:
alter
database
test
add
file
(name
=
test1,
filename='c:\program
files\microsoft
sql
server\mssql\data\test1.ndf',
size
=
5mb,
maxsize
=
100mb,
filegrowth
=
5mb),
(name
=
test2,
filename='c:\program
files\microsoft
sql
server\mssql\data\test2.ndf',
size
=
3mb,
maxsize
=
10mb,
filegrowth
=
1mb)
go
alter
database
test
add
log
file
(
name
=
testlog1,
filename='c:\program
files\microsoft
sql
server\mssql\data\testlog1.ldf',
size
=
5mb,
maxsize
=
100mb,
filegrowth
=
5mb)
go
3、重命名test為demo
sp_renamedb
'test','demo'
4、刪除資料庫
drop
database
demo
4. sql代碼備份和還原資料庫
SQL語句備份和恢復
SQL Server:
備份命令:
BACKUP DATABASE test
TO disk = 'c:\test'
WITH FORMAT,
NAME = 'Full Backup of MyNwind'
解釋如下:
NAME = 'Full Backup of MyNwind' --這個是備注,隨便寫。
還原命令:
USE master
GO
RESTORE DATABASE test_wt
FROM disk = 'c:\test_wt'
GO
MySQL:
備份:
mysqlmp -u root -p database_name > d:\db.bak
恢復:
mysql -u root -p database_name < d:\db.bak
注意:在WIN下,路徑用path/filename.sql是不行的,那就用path\filename.sql
5. 如何使用SQL代碼創建資料庫
CREATEDATABASEdatabase_name[CONTAINMENT={NONE|PARTIAL}][ON[PRIMARY][,n][,[,n]][LOGON[,n]]][COLLATEcollation_name][WITH[,n]][;]::={FILESTREAM([,n])|DEFAULT_FULLTEXT_LANGUAGE={lcid|language_name|language_alias}|DEFAULT_LANGUAGE={lcid|language_name|language_alias}|NESTED_TRIGGERS={OFF|ON}|TRANSFORM_NOISE_WORDS={OFF|ON}|TWO_DIGIT_YEAR_CUTOFF=|DB_CHAINING{OFF|ON}|TRUSTWORTHY{OFF|ON}}::={NON_TRANSACTED_ACCESS={OFF|READ_ONLY|FULL}|DIRECTORY_NAME='directory_name'}_nameON[,n]FOR{{ATTACH[WITH[,n]]}|ATTACH_REBUILD_LOG}[;]::={(NAME=logical_file_name,FILENAME={'os_file_name'|'filestream_path'}[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])}::={FILEGROUPfilegroup_name[CONTAINSFILESTREAM][DEFAULT][,n]}::={|RESTRICTED_USER|FILESTREAM(DIRECTORY_NAME={'directory_name'|NULL})}::={ENABLE_BROKER|NEW_BROKER|ERROR_BROKER_CONVERSATIONS}_snapshot_nameON(NAME=logical_file_name,FILENAME='os_file_name')[,n]ASSNAPSHOTOFsource_database_name[;]database_name新資料庫的名稱。資料庫名稱在SQLServer的實例中必須唯一,並且必須符合標識符規則。除非沒有為日誌文件指定邏輯名稱,否則database_name最多可以包含128個字元。如果未指定邏輯日誌文件名稱,則SQLServer將通過向database_name追加後綴來為日誌生成logical_file_name和os_file_name。這會將database_name限制為123個字元,從而使生成的邏輯文件名稱不超過128個字元。如果未指定數據文件的名稱,則SQLServer使用database_name作為logical_file_name和os_file_name。默認路徑從注冊表中獲得。可以使用ManagementStudio中的「伺服器屬性」(「資料庫設置」頁)更改默認路徑。更改默認路徑要求重新啟動SQLServer。CONTAINMENT指定資料庫的包含狀態。NONE=非包含資料庫。PARTIAL=部分包含的資料庫。ON指定顯式定義用來存儲資料庫數據部分的磁碟文件(數據文件)。當後面是以逗號分隔的、用以定義主文件組的數據文件的項列表時,需要使用ON。主文件組的文件列表可後跟以逗號分隔的、用以定義用戶文件組及其文件的項列表(可選)。PRIMARY指定關聯的列表定義主文件。在主文件組的項中指定的第一個文件將成為主文件。一個資料庫只能有一個主文件。有關詳細信息,請參閱資料庫文件和文件組。如果沒有指定PRIMARY,那麼CREATEDATABASE語句中列出的第一個文件將成為主文件。LOGON指定顯式定義用來存儲資料庫日誌的磁碟文件(日誌文件)。LOGON後跟以逗號分隔的用以定義日誌文件的項列表。如果沒有指定LOGON,將自動創建一個日誌文件,其大小為該資料庫的所有數據文件大小總和的25%或512KB,取兩者之中的較大者。此文件放置於默認的日誌文件位置。有關此位置的信息,請參閱查看或更改數據文件和日誌文件的默認位置(SQLServerManagementStudio)。不能對資料庫快照指定LOGON。COLLATEcollation_name指定資料庫的默認排序規則。排序規則名稱既可以是Windows排序規則名稱,也可以是SQL排序規則名稱。如果沒有指定排序規則,則將SQLServer實例的默認排序規則分配為資料庫的排序規則。不能對資料庫快照指定排序規則名稱。不能使用FORATTACH或FORATTACH_REBUILD_LOG子句指定排序規則名稱。有關如何更改附加資料庫的排序規則的信息,請訪問此Microsoft網站。有關Windows和SQL排序規則名稱的詳細信息,請參閱COLLATE(Transact-SQL)。注意包含資料庫的排序方式不同於非包含資料庫。有關詳細信息,請參閱包含資料庫的排序規則。WITH僅在將CONTAINMENT設置為PARTIAL之後,才允許使用以下選項。如果將CONTAINMENT設置為NONE,將發生錯誤。NON_TRANSACTED_ACCESS={OFF|READ_ONLY|FULL}指定對資料庫的非事務性FILESTREAM訪問的級別。USEmaster;GOCREATEDATABASEmytest;GO--,size,size*1.0/128AS[SizeinMBs]FROMsys.master_filesWHEREname=N'mytest';GOUSEmaster;GOCREATEDATABASEmytest;GO--,size,size*1.0/128AS[SizeinMBs]FROMsys.master_filesWHEREname=N'mytest';GOB.創建指定數據和事務日誌文件的資料庫下面的示例將創建資料庫Sales。因為沒有使用關鍵字PRIMARY,第一個文件(Sales_dat)將成為主文件。因為在Sales_dat文件的SIZE參數中沒有指定MB或KB,將使用MB並按MB分配。Sales_log文件以MB為單位進行分配,因為SIZE參數中顯式聲明了MB後綴。USEmaster;GOCREATEDATABASESalesON(NAME=Sales_dat,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=Sales_log,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB);GOUSEmaster;GOCREATEDATABASESalesON(NAME=Sales_dat,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=Sales_log,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB);GOC.通過指定多個數據和事務日誌文件創建資料庫以下示例創建資料庫Archive,該資料庫具有三個100-MB數據文件和兩個100-MB事務日誌文件。主文件是列表中的第一個文件,並使用PRIMARY關鍵字顯式指定。事務日誌文件在LOGON關鍵字後指定。請注意用於FILENAME選項中各文件的擴展名:.mdf用於主數據文件,.ndf用於輔助數據文件,.ldf用於事務日誌文件。此示例將資料庫放置於D:驅動器上,而非master資料庫中。USEmaster;(NAME=Arch1,FILENAME='D:\SalesData\archdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='D:\SalesData\archdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='D:\SalesData\archdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='D:\SalesData\archlog1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='D:\SalesData\archlog2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20);GOUSEmaster;(NAME=Arch1,FILENAME='D:\SalesData\archdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='D:\SalesData\archdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='D:\SalesData\archdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='D:\SalesData\archlog1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='D:\SalesData\archlog2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20);GO
6. 15個MySQL常用基本SQL語句
在學習SQL語句之前,首先需要區分幾個概念,我們常說的資料庫是指資料庫軟體,例如MySQL、Oracle、SQL Server等,而本文提到的資料庫是指資料庫軟體中的一個個用於存儲數據的容器。
在MySQL中,資料庫稱為database,數據表稱為table,一個資料庫軟體中有多個資料庫(databases),每個資料庫中又可以有多個數據表(tables),最終,數據是存儲在數據表中。
資料庫和數據表之間的關系可以用下面這個圖來表示,對於一個資料庫來說,有多個數據表。
在正式開始寫SQL語句之前,需要說明兩點。
這里通過MySQL Workbench來寫SQL代碼,在Workbench中,執行一條SQL語句的方式有兩種。
了解了這之後,接下來介紹一些常見的命令,分兩部分:資料庫常用命令和數據表常用命令。
1、查看有哪些資料庫
2、創建資料庫
創建一個名為Testdb的資料庫。
3、創建資料庫並指定編碼格式
有些時候,為了防止中文亂碼,創建資料庫的時候需要指定編碼格式。
4、使用某個資料庫
使用mydb這個資料庫,或者進入mydb這個資料庫。
5、刪除資料庫
刪除Testdb這個資料庫。
1、查看有哪些數據表
進入某個資料庫之後,想查看有哪些數據表,SQL語句為:
mydb是一個新建的資料庫,所以自然是沒有數據表。
2、創建數據表
建表SQL語句格式為:
說明: 每個欄位以逗號分隔,最後一個欄位不加逗號。
例如,給定一個學員信息表,如下表所示。
根據以上表格,建表SQL語句如下。
以上語句中,primary key表示主鍵,意思是這個欄位作為記錄的唯一標識,就像每個人的身份證號,都是唯一確定的。
3、查看錶結構
查看錶結構的SQL命令為:
執行該命令會顯示表stuinfo的基本結構,例如有哪些欄位,每個欄位是什麼類型,誰是主鍵等。
4、修改數據表
修改數據表通過drop子句進行,比如,建完表後,想增加一個欄位,SQL語句的格式為:
想在指定位置增加一個欄位,例如,在某個欄位後增加一個欄位,SQL語句的格式為:
如果在某個欄位之前增加欄位,用before即可。
例如,在欄位age後增加一個欄位major(專業),SQL語句為:
執行這個命令,再通過describe查看錶結構,會發現表中多了一個欄位major。
如果要刪除major這個欄位,通過drop子句,SQL語句為:
5、重命名表
重命名表通過alter+rename來實現,SQL語句格式為:
這里為了不影響之前創建的表,我們創建一個新表,SQL語句如下。
以上創建一個名為stuInfoTest的表,現在想將它的名稱改成stuinfotest1,SQL語句為:
6、刪除數據表
刪除數據表通過drop進行,SQL語句格式為:
例如,刪除數據表stuinfotest1,SQL語句為:
7、插入記錄
此時的表stuinfo是空的,沒有數據,我們要向表中插入記錄。
插入記錄通過insert into進行,SQL語句格式為:
例如,向表stuinfo插入一條記錄,SQL語句為:
注意:上方是一條SQL語句,為了可讀性換行,記住一條SQL語句默認以分號結尾。
如果需要一次性插入多條記錄,SQL語句格式為:
例如,向表stuinfo再插入兩條記錄,SQL語句為:
注意:如果設置了主鍵,插入記錄的主鍵欄位是不能重復的,也就是不能插入重復的記錄。
作業:大家可以按照上述方法將上面的學員信息表中的所有記錄都插入表stuinfo中。
8、查詢記錄
有了數據之後,就可以查詢記錄了,查詢記錄通過select子句進行。
例如,想查詢表stuinfo中的所有記錄,SQL語句為:
執行之後,就可以看到表stuinfo中的所有記錄了。
如果想查詢符合某個條件的記錄,就要用到where子句了,SQL格式為:
例如,想查詢stuid為20161001的記錄,SQL語句為:
9、刪除記錄
刪除記錄通過delete子句進行,SQL語句格式為:
例如,想刪除stuid為20161002的記錄,SQL語句為:
10、修改記錄
修改記錄通過update子句進行,update就是更新的意思,SQL語句格式為:
例如,想將學號(stuid)為20161001的記錄的姓名(stuname)更新為Jack,SQL語句為:
以上,就是MySQL中的基本SQL語句。
零基礎如何學習數據分析?查看下方專欄。