SQL語句的基本知識

2021-08-01 19:06:45 字數 3660 閱讀 9839

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這個資料庫裡有...