一、資料庫的基本概念
1. 資料庫:DataBase 簡稱:DB
2. 什么是資料庫? 用于存盤和管理資料的倉庫
3. 資料庫的特點:
- 持久化存盤資料的,其實資料庫就是一個檔案系統
- 方便存盤和管理資料
- 使用了統一的方式操作資料庫 -- SQL
二、SQL
1.什么是SQL?
Structured Query Language:結構化查詢語言 其實就是定義了操作所有關系型資料庫的規則,每一種資料庫操作的方式存在不一樣的地方,稱為“方言”,
2.SQL通用語法
1.SQL 陳述句可以單行或多行書寫,以分號結尾,
2.可使用空格和縮進來增強陳述句的可讀性,
3.MySQL 資料庫的 SQL 陳述句不區分大小寫,關鍵字建議使用大寫,
4. 3 種注釋
-
- 單行注釋: -- 注釋內容 或 # 注釋內容(mysql 特有)
- 多行注釋: /* 注釋 */
3. SQL分類
DDL(Data Definition Language)資料定義語言 用來定義資料庫物件:資料庫,表,列等,關鍵字:create, drop,alter 等
DML(Data Manipulation Language)資料操作語言 用來對資料庫中表的資料進行增刪改,關鍵字:insert, delete, update 等
DQL(Data Query Language)資料查詢語言 用來查詢資料庫中表的記錄(資料),關鍵字:select, where 等
DCL(Data Control Language)資料控制語言(了解) 用來定義資料庫的訪問權限和安全級別,及創建用戶,關鍵字:GRANT, REVOKE 等
三、DDL:操作資料庫、表
1.操作資料庫:CRUD
1. C(Create):創建
創建資料庫:create database 資料庫名稱;
創建資料庫,判斷不存在,再創建:create database if not exists 資料庫名稱;
創建資料庫,并指定字符集:create database 資料庫名稱 character set 字符集名;
例子:創建資料庫,名稱為DB, 判斷是否存在,并制定字符集為gbk
create database if not exists DB character set gbk;
2. R(Retrieve):查詢
查詢所有資料庫的名稱: show databases;
查詢某個資料庫的字符集:查詢某個資料庫的創建陳述句: show create database 資料庫名稱;
3. U(Update):修改
修改資料庫的字符集:alter database 資料庫名稱 character set 字符集名稱;
4. D(Delete):洗掉
洗掉資料庫: drop database 資料庫名稱;
判斷資料庫存在,存在再洗掉: drop database if exists 資料庫名稱;
5. 使用資料庫
查詢當前正在使用的資料庫名稱: select database();
使用資料庫: use 資料庫名稱;
2. 操作表
1.C(Create):創建
語法:create table 表名(列名1 資料型別1,列名2 資料型別2,....列名n 資料型別n);
注意:最后一列,不需要加逗號(,)
資料庫型別:
1. int:整數型別
2. double:小數型別
3. date:日期,只包含年月日,yyyy-MM-dd
4. datetime:日期,包含年月日時分秒 yyyy-MM-dd HH:mm:ss
5. timestamp:時間錯型別 包含年月日時分秒 yyyy-MM-dd HH:mm:ss
如果將來不給這個欄位賦值,或賦值為null,則默認使用當前的系統時間,來自動賦值
6. varchar:字串
創建表:
1 create table student( 2 id int, 3 name varchar(32), 4 age int , 5 score double(4,1), 6 birthday date, 7 insert_time timestamp 8 );
復制表:create table 表名 like 被復制的表名;
2.R(Retrieve):查詢
查詢某個資料庫中所有的表名稱:show tables;
查詢表結構:desc 表名;
3.U(Update):修改
修改表名:alter table 表名 rename to 新的表名;
修改表的字符集:alter table 表名 character set 字符集名稱;
添加一列:alter table 表名 add 列名 資料型別;
修改列名稱 型別:alter table 表名 change 列名 新列別 新資料型別;
alter table 表名 modify 列名 新資料型別;
洗掉列:alter table 表名 drop 列名;
4.D(Delete):洗掉
洗掉表:drop table 表名;
先判斷表是否存在,再洗掉表:drop table if exists 表名 ;
四、DML:增刪改表中資料
1.添加資料
語法:insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
注意:
1. 列名和值要一一對應,
2.如果表名后,不定義列名,則默認給所有列添加值
insert into 表名 values(值1,值2,...值n);
3. 除了數字型別,其他型別需要使用引號(單雙都可以)引起來
2.洗掉資料
語法:delete from 表名 [where 條件]
注意:
1. 如果不加條件,則洗掉表中所有記錄,
2. 如果要洗掉所有記錄
1. delete from 表名; -- 不推薦使用,有多少條記錄就會執行多少次洗掉操作
2. TRUNCATE TABLE 表名; -- 推薦使用,效率更高 先洗掉表,然后再創建一張一樣的表,
3. 修改資料
語法:update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 條件];
注意:1. 如果不加任何條件,則會將表中所有記錄全部修改,
五、DQL:查詢表中的記錄
語法:
select
欄位串列
from
表名串列
where
條件串列
group by
分組欄位
having
分組之后的條件
order by
排序
limit
分頁限定
基礎查詢:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/35433.html
標籤:MySQL
