目錄
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.注意:
如果不加任何條件,則會将表中所有記錄全部修改。