資料庫高階

2022-08-29 07:12:09 字數 4180 閱讀 8663

查詢和更新指令構成了 sql 的 dml 部分:

select - 從資料庫表中獲取資料

update - 更新資料庫表中的資料

delete - 從資料庫表中刪除資料

insert into - 向資料庫表中插入資料

sql 的資料定義語言 (ddl) 能建立或刪除**,也可以定義索引(鍵),規定表之間的鏈結,以及施加表間的約束。

sql 中最重要的 ddl 語句:

create database - 建立新資料庫

alter database - 修改資料庫

create table - 建立新錶

alter table - 變更(改變)資料庫表

drop table - 刪除表

create index - 建立索引(搜尋鍵)

drop index - 刪除索引

create database

create database 資料庫名

create database my_db

drop database

drop database 資料庫名

drop database my_db

create table

create table 表名稱(

列名稱 資料型別,

列名稱 資料型別,

列名稱 資料型別,

...)

資料型別參考

create tablepersons (

id int not null,

name varchar(255) not null,

address varchar(255),

date date

)

alter table

表中新增列

alter table 表名 add 列名 資料型別

表中修改資料型別

alter table 表名 alter column 列名 資料型別

表中刪除列

alter table 表名 drop column 列名

alter table person addbirthday date

alter table person alter column birthday year

alter table person drop column birthday

drop table

drop table 表名稱:用於刪除表(表的結構、屬性以及索引也會被刪除)

truncate table 表名稱:僅僅刪除**中的資料

create indexcreate index 索引名 on 表名 (列名)

create unique index 索引名 on 表名 (列名)

create index personindex onperson (name)

create unique index personindex onperson (name)

create index personindex on person (name, address)

drop index

alter table 表名 drop index 索引名

alter table person drop index personindex

約束 (constraints)

not null

not null 約束強制列不接受 null 值。

unique

nuique 約束唯一標記資料庫表中的每條記錄(目的不是為了提高訪問速度,而只是為了避免資料出現重複)

primary key

primary key 約束唯一標記資料庫表中的每條記錄

primary key 必須包含唯一的值, 且不能包含null值

每個表都應該有且僅有乙個primary key

ps:unique 和 primary key 約束均為列或列集合提供了唯一性的保證。

primary key 擁有自動定義的 unique 約束。

每個表可以有多個 unique 約束,但是每個表只能有乙個 primary key 約束。

foreign key

乙個表中的foreign key指向另乙個表中的 primary key

外來鍵表示了兩個表之間的聯絡

check

check 約束用於限制列中的值的範圍。

default

default 約束用於向列中插入預設值。

select

select 列名稱 from 表名稱

select * from 表名稱

select lastname,firstname frompersons

select * from persons

select distinct

select distinct 列名稱 from 表名稱

select distinct * from 表名稱

select distinct lastname,firstname frompersons

select distinct * from persons

update

update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值

update person set address = 'zhongshan 23', city = 'nanjing'

where lastname = 'wilson'

insert into

insert into 表名稱 (列1,列2...) values (值1,值2...)

insert into persons (lastname, address) values ('wilson', 'champs-elysees')

delete

delete from 表名稱 where 列名稱 = 某值

delete * from 表名稱

delete form person where lastname = 'wilson' 

delete * form person

where

select 列名稱 from 表名稱 where 列 運算子 值

select * from persons where city='beijing'

and & or

select * from persons where (firstname='thomas' or firstname='william') and lastname='carter'

order by

order by 語句預設按照公升序對記錄進行排序。

如果您希望按照降序對記錄進行排序,可以使用 desc 關鍵字。

select company, ordernumber from orders order bycompany, ordernumber

select company, ordernumber from orders order by company desc, ordernumber asc

sql注入

在輸入的字串之中注入sql指令,並忽略了檢查,那麼這些注入進去的指令就會被資料庫伺服器誤認為是正常的sql指令而執行,因此資料庫遭到破壞或是入侵。

使用引數化查詢來預防sql注入

2015-05-19

mysql資料庫高階 mysql資料庫高階

一 索引 索引,是資料庫中專門用於幫助使用者快速查詢資料的一種資料結構。類似於字典中的目錄,查詢字典內容時可以根據目錄查詢到資料的存放位置,然後直接獲取即可。分類 普通索引 唯一索引 全文索引 組合索引 主鍵索引 1 普通索引 普通索引僅有乙個功能 加速查詢 建立表時建立索引 create tabl...

資料庫高階

1.預設值 default 值 create table student id int,name varchar 20 address varchar 20 default 江西贛州 預設值 當欄位沒有插入值的時候,mysql自動給該字段分配預設值 注意,預設值的字段允許為空 insert into...

資料庫高階

create view 檢視名稱 as select語句 create view v stu score course as select stu.cs.courseno,cs.name coursename,sc.score from students stu inner join scores ...