[toc]
sqlwhat(sql是什麼?) structured query language:結構化查詢語⾔
why(為何要使用sql?) 難道僅僅使用sql server management studio運算元據庫? 應用程式如何與資料庫打交道?
when(何時使用?) 對sql server執⾏所有的操作都可以 程式中的增刪改查
how(怎麼使用?) ...
四大sql語句
資料定義語句ddl: create、alter、drop、truncate(表結構)
資料操作語句dml: insert、delete、update、select(資料)
資料控制語句dcl: 授權grant 收回許可權:revoke
事務控制語句tcl: 開啟事務:begin 提交:commit 回滾:rollback
資料庫操作
建立資料庫
sql語句:
create database 資料庫名;
create database stu_a;
-- 在建庫時指定字符集,避免中文資料亂碼的問題
create database stu_b default charset='utf8';
成功建立資料庫後,資料庫根目錄下會自動建立資料庫目錄。
顯示資料庫結構
sql語句:
show create database 資料庫名;
可以檢視資料庫的相關資訊(例如預設字符集等資訊)。
刪除資料庫
sql語句:
drop database 資料庫名;
mysql資料型別
mysql提供的資料型別包括數值型別(整數型別和小數型別)、字串型別、日期型別、復合型別(復合型別包括enum型別和set型別)以及⼆進製型別 。
decimal(length, precision)用於表示精度確定(小數點後數字的位數確定)的小數型別,length決定了該小數的最⼤位數,precision用於設定精度(小數點後數字的位數)。
例如: decimal(5,2)表示小數取值範圍:-999.99∼999.99 decimal(5,0)表示: -99999∼99999的整數。
char()與varchar(): 例如對於簡體中⽂字符集gbk的字串⽽⾔,varchar(255)表示可以儲存255個漢字,⽽每個漢字占用兩個位元組的儲存空間。假如這個字串沒有那麼多漢字,例如僅僅包含⼀個『中』字,那麼varchar(255)僅僅占用1個字元(兩個位元組)的儲存空間;⽽char(255)則必須占用255個字元長度的儲存空間,哪怕裡面只儲⼀個漢字。
表操作建立資料庫表
注意:在建立表之前,需要選擇當前操作的資料庫
use 資料庫名;
建立資料庫表sql語句:
use student;
create table stu(id int,name varchar(20));
create table stuinfo(
id int,
name char(20),
address char(50),
city char(50),
age int,
love char(50)
)default charset='utf8';
顯示表結構
sql語句:
desc 表名; -- 即可檢視指定表的結構
sql語句:
show create table 表名; -- 檢視指定表的詳細資訊
刪除表sql語句:
drop table 表名;
注意:刪除表後,mysql服務例項會自動刪除該錶結構定義的檔案,以及資料、索引資訊。該命令慎用!
刪除字段
alter table 表名 drop 欄位名
新增新字段
alter table 表名 add 新欄位名 新資料型別 [新約束條件]
修改欄位名
alter table 表名 change 舊欄位名 新欄位名 新資料型別
修改資料型別
alter table 表名 modify 欄位名 新資料型別
修改表名
rename table 舊表名 to 新錶名
資料的增、刪、改、查
表記錄的插入
sql語句:
insert into 表名(字段列表) values(值列表);
insert stu(id,name) values(1,'newdream');
insert stu values(2,'newdream1');
一次插入多條記錄
insert into 表名(字段列表) values (值列表1),(值列表2),...(值列表n);
insert into stu values(3,'new1'),(4,'new2'),(5,'new3');
使用insert...select插入結果
insert into 目標表名(字段列表1)
select(字段列表2) from 源表 where 條件表示式
insert into stu_bak(id,name)
select id,newname from stu where id>2;
注意:字段列表1與字段列表2的字段個數必須相同,且對應欄位的資料型別盡量保持一致。 如果果源表與目標表的表結構完全相同,「(字段列表1)」可以省略。
複製表結構及資料到新錶
create table 新錶 select * from 舊表;
只複製表結構到新錶
create table 新錶 select * from 舊表 where 1=2;
修改表記錄
update 表名 set 欄位名1=值1,欄位名2=值2,...,欄位名n=值n
[where 條件表示式]
update stu set newname='new5' where id=1;
where 子句指定了表中的哪些記錄需要修改。若省略了where子句,則表示修改表中的所有記錄。 set子句指定了要修改的字段以及該欄位修改後的值。
使用delete刪除表記錄
delete from 表名 where 條件表示式;
說明:如果沒有指定wheree⼦句,那麼該錶的所有記錄都將被刪除,但表結構依然存在。
使用truncate清空表記錄
truncate table 表名;
delete和truncate的區別
delete不加where條件是刪除所有資料 truncate不能夠加where條件 delete可以加where條件 truncate會重置auto_increment delete可以進⾏回滾操作
表記錄的查詢
select 字段列表 from 表名
where條件表示式
表記錄的查詢—給列取別名
可以為字段列表中的欄位名或表示式指定別名,中間使用as關鍵字分隔即可(as關鍵字可以省略)。多表查詢時,同名字段前必須新增表名字首,中間使用「.」分 隔。
select id as 』學⽣學號』,newname 『學⽣姓名』 from stu;
使用source命令
測試⼈員經常會和mysql打交道,備份和恢復應該是最常用的操作了,那麼通過直接執⾏sql⽂件⽆疑是最快捷的⽅式。 我們會把寫好的sql語句儲存成⼀個.sql⽂件進⾏備份;如果想在新的資料庫中執⾏時,可以使用source命令進⾏恢復; 例如:在d盤的new⽂件夾中儲存了dream.sql⽂件 (此⽅法只用在命令提示窗⼝)
第⼀步:可以先新建⼀個資料庫; 第⼆步:use 新的資料庫 第三步:source d:\www\dream.sql 如此就把之前的表資料在新的資料庫中進⾏恢復;之前的表及資料在新的資料庫中都是存在的;
MySQL資料庫的基本語法
1.mysql資料型別數值以及浮點型介紹 2.mysql資料型別之字串介紹 常用的有 char varchar text。3.mysql資料型別之時間型別介紹 常用的是 timestampt,將時間儲存為時間戳的形式,為int型別,後續再轉化成時間。5.sql語句之運算子介紹 6.sql語句的分類 ...
Mysql資料庫基本語法(一)
前記 正文 一 資料庫的操作 顯示所有的資料庫 show databases 建立資料庫 create database databasename 刪除資料庫 drop database databasename 選擇資料庫 use databasename 二 資料庫中表的字段的型別 數值型別 日...
資料庫基本語法
建立studb資料庫 create database studb 修改studb資料庫 alter database studb 刪除studb資料庫 drop database studb 查詢資料庫資訊 exec sp helpdb studb 建立stuinfo資料表 create table...