1.ddl: 資料定義語言,用來定義資料庫物件:建立庫,表,列等等。
2.dml: 資料操作語言,用來定義資料庫記錄(資料): 增 刪 改: 表記錄
3.dcl: 資料控制語言,用來定義訪問許可權和安全級別
4.dql(*重要*): 資料查詢語言,用來查詢記錄(資料)
ddl:資料庫或表的結構操作(*)
dml:對錶的記錄進行更新(增、刪、改)(*)
dql:對錶的記錄的查詢(*,難點)
dcl:對使用者的建立,及授權!
建立資料庫 create database [if not exists] mydb1 [charset=utf8]
刪除資料庫:drop database [if exists] mydb1
修改資料庫編碼:alter database mydb1 character set utf8
create table [if not exists] 表名 (
列名 列型別,
列名 列型別,
...列名 列型別
);
alter table 表名 add (
列名 列型別,
列名 列型別,
...);
修改之修改列型別(如果被修改的列已存在資料,那麼新的型別可能會影響到已存在資料):
alter
table 表名
modify 列名 列型別;
修改之修改列名:
alter
table 表名
change 原列名 新列名 列型別;
修改之刪除列:
alter
table 表名
drop 列名;
修改表名稱:
alter
table 原表名
rename to 新錶名;
總結
alter table 表名
add (
列名 列型別,
列名 列型別,
...列名 列型別
)
alter
table 表名
modify 列名 列新的型別
alter
table 表名
rename to 新名
(資料操作語言,它是對錶記錄的操作(增、刪、改)
在資料庫中所有的字串型別,必須使用單引,不能使用雙引!
日期型別也要使用單引!
1.插入資料
intert into 表名 (列名1,列名2, ...)
values(列值1, 列值2, ...);
在表名後給出要插入的列名,其他沒有指定的列等同與插入null值。所以插入記錄總是插入一行,不可能是半行。
在values後給出列值,值的順序和個數必須與前面指定的列對應
intert into 表名
values(列值1, 列值2)
沒有給出要插入的列,那麼表示插入所有列。
值的個數必須是該表列的個數。
值的順序,必須與表建立時給出的列的順序相同。
/*插入所有列*/
insert
into stu(
number, name, age, gender
)values(
『1', 'zhangsan', 28, 'male'
);
/*插入部分列,沒有指定的列缺省為null值*/
insert
into stu(
number, name
) values(
'itcast_0002', 'lisi'
)
/*不給出插入列,那麼預設為插入所有列!值的順序要與建立表時列的順序相同*/
insert
into stu values(
'1', 'wangwu', 82, 'female'
);
2.修改資料
update 表名 set 列名1=列值1, 列名2=列值2, ... [where 條件]
條件(條件可選的):
條件必須是乙個boolean型別的值或表示式:運算子:=、!=、<>、>、<、>=、<=、between…and、in(…)、is null、not、or、and
update person set gender='男', age=age+1
where sid='1';
where age >= 18
and age <= 80
where age between 18
and80
where name='zhangsan'
or name='lisi'
where name in ('zhangsan', 'lisi')
where age is null //不能使用等號
where age is
not null
3.刪除資料
/*刪除某條資料,如果不加where,則刪除整個表的資料*/
delete
from 表名 [where 條件];
/*或者*/
truncate
table 表名;
/*truncate是ddl語句,它是先刪除drop該錶,再create該錶。而且無法回滾!!!*/
資料查詢語言
只查詢,不會修改資料庫表記錄!
字段(列)控制
1) 查詢所有列
select * from 表名;
select * from people;
–> 其中「*」表示查詢所有列
2) 查詢指定列
select 列1 [, 列2, … 列n] from 表名;
select id, name, salary from people;
3) 完全重複的記錄只一次
當查詢結果中的多行記錄一模一樣時,只顯示一行。一般查詢所有列時很少會有這種情況,但只查詢一列(或幾列)時,這總可能就大了!
select distinct * [列1 , 列2, … 列n] from 表名;
select
distinct sal from emp;
--> 保查詢員工表的工資,如果存在相同的工資只顯示一次!
SQL基本知識
什麼是sql資料庫?資料庫是用來存放您的會員資料的地方,而空間是存放您的網頁的地方,資料庫一般有兩種,access 和 mysql 其區別就在於access一般用於會員資料比較小的 而mysql一般用於會員比較多的 我們採用的是mysql資料庫。什麼是mysql?mysql是乙個多使用者 多執行緒的...
SQL基本知識
1 資料庫結構 以mysql為例,mysql伺服器裡面可以有多個資料庫,乙個資料庫裡面可以有多張表 一般而言,乙個系統 軟體,專案 就設計乙個資料庫,乙個資料庫裡面設計多張表,每一張表對應乙個實體類 2.什麼是sql?structure query language 結構化查詢語言 通過sql語句可...
sql注入的基本知識
我們看到的sql注入類題目經常包含直接在資料庫的系統資料庫類來得到資訊,這個資料庫的名字為information schema這個資料庫便是系統的資料庫,用來儲存我們建立的資料庫和資料表的基本資訊,而我接下來介紹的便是對這個資料庫的認識。我們可以檢視information schema這個資料庫裡有...