天天看點

操作資料庫mysql(DDL.DML.DQL.DCL文法和操作詳細說明和解釋)1.SQL分類2.DDL文法(在cmd指令行使用)4.DQL (更新中.............)

目錄

1.SQL分類

2.DDL文法(在cmd指令行使用)

1.操作資料庫:CRUD

(1).C(Create):建立

2.R(Retrieve):查詢

3. U(Update):修改

4. D(Delete):删除

5. 使用資料庫

2. 操作表

1. C(Create):建立

2. R(Retrieve):查詢

3. U(Update):修改

4. D(Delete):删除

3.DML文法(在圖形化工具上執行)

1. 添加資料:

2. 删除資料:

3. 修改資料:

4.DQL (更新中.............)

1.SQL分類

(1). DDL(Data Definition Language)資料定義語言

用來定義資料庫對象:資料庫,表,列等。關鍵字:create, drop,alter 等

(2). DML(Data Manipulation Language)資料操作語言

用來對資料庫中表的資料進行增删改。關鍵字:insert, delete, update 等

(3). DQL(Data Query Language)資料查詢語言

用來查詢資料庫中表的記錄(資料)。關鍵字:select, where 等

(4). DCL(Data Control Language)資料控制語言(了解)

用來定義資料庫的通路權限和安全級别,及建立使用者。關鍵字:GRANT, REVOKE 等

2.DDL文法(在cmd指令行使用)

1.操作資料庫:CRUD

(1).C(Create):建立

a.建立資料庫:

create database db1;
           

b.建立資料庫,判斷是否存在,再建立:

create database if not exists 資料庫名稱;
           

c.建立資料庫,并指定字元集:

create database 資料庫名稱 character set 字元集名稱;
           

d.建立資料庫,判定是否存在,指定字元集并建立:

create database if not exists  資料庫名稱  character set  字元集名稱;
           

2.R(Retrieve):查詢

a.查詢所有資料庫名稱:

show databases;  * 查詢所有資料庫的名稱
           

b.查詢某個資料庫的字元集;查詢某個資料庫的建立語句

show create database 資料庫名稱;
           

3. U(Update):修改

a.修改資料庫的字元集:

alter database 資料庫名稱 character set 新字元集名稱;
           

4. D(Delete):删除

a. 删除資料庫:

drop database 資料庫名稱;
           

c. 判斷資料庫是否存在,存在再删除:

drop database if exists 資料庫名稱;
           

5. 使用資料庫

* 查詢目前正在使用的資料庫名稱

select database();
           

* 使用資料庫:

use 資料庫名稱;
           

注意:操作表時必須先使用資料庫并檢視目前正在正在使用的資料庫名稱

2. 操作表

1. C(Create):建立

a. 文法:

create table 表名(

列名1 資料類型1,

列名2 資料類型2,

....

列名n 資料類型n

);
           

注意:最後一列,不需要加逗号(,)

* 資料庫類型:

*. int:整數類型

age int,
           

*. double:小數類型

score double(4,1),
           

*. date:日期,隻包含年月日,

yyyy-MM-dd,
           

*. datetime:日期,包含年月日時分秒  

yyyy-MM-dd HH:mm:ss,
           

*. timestamp:時間錯類型 包含年月日時分秒

 yyyy-MM-dd HH:mm:ss,
           

注意:如果将來不給這個字段指派,或指派為null,則預設使用目前的系統時間,來自動指派

*. varchar:字元串

name varchar(10),  -- 姓名最大10個字元

           

注意:lihuozi  7個字元

            李四     2個字元

b.建立表

mysql> create table student(
    -> id int,
    -> name varchar(15), -- 字元串位數
    -> age int,
    -> score double(4,1),  -- 總共4位數字,小數點後保留1位
    -> birthday date,
    -> insert_time timestamp  -- 跟随系統時間
    -> );
           

c.複制表:

create table 新表明 like 被複制的表名;
           

2. R(Retrieve):查詢

a.查詢某個資料庫中所有的表名稱

show tables;
           

b. 查詢表結構

desc 表名;
           

3. U(Update):修改

a. 修改表名

alter table 原表名 rename to 新表名;
           

b. 修改表的字元集

alter table 表名 character set 新字元集名稱;
           

c. 添加一列

alter table 表名 add 列名 資料類型;

-- 例:alter table student add gender varchar(10);
           

d. 修改列名稱 類型

alter table 表名 change 列名 新列名 新資料類型;
           

e.修改資料類型

alter table 表名 modify 列名 新資料類型; 
           

e. 删除列

alter table 表名 drop 列名;
           

4. D(Delete):删除

drop table 表名;
           

判斷是否存在再删除:

drop table  if exists 表名 ;
           

3.DML文法(在圖形化工具上執行)

1. 添加資料:

a.文法:(注意:操作語句在SQLyog裡面輸入不區分大小寫,它會自動把語句轉換位大寫)

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

b.舉例

INSERT INTO stu(id,NAME,age) VALUES(1,'張三',22);
           

c.注意:

1. 列名和值要一一對應。

2. 如果表名後,不定義列名,則預設給所有列添加值

insert into 表名 values(值1,值2,...值n);

3. 除了數字類型,其他類型需要使用引号(單雙都可以)引起來

2. 删除資料:

a.文法:

 delete from 表名 [where 條件]

b.用法

 delete from 表名 where 條件;
           

c. 注意:

如果不加條件,則删除表中所有記錄。

2. 如果要删除所有記錄

1. delete from 表名; -- 不推薦使用。有多少條記錄就會執行多少次删除操作

2. TRUNCATE TABLE 表名; -- 推薦使用,效率更高 先删除表,然後再建立一張一樣的表。

3. 修改資料:

a. 文法:

update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 條件];

b.用法

update 表名 set 列名1 = 值1, 列名2 = 值2,...  where   條件;
           

c.注意:

如果不加任何條件,則會将表中所有記錄全部修改。

4.DQL (更新中.............)