MYSQL基礎語法
1.數據庫介紹
數據庫概述:
存儲數據的倉庫. 其本質是一個文件系統,數據庫按照特定的格式將數據永久存儲起來,用戶可以對數據庫中的數據進行增加,修改,刪除及查詢操作。
數據庫優點:
數據庫是按照特定的格式將數據存儲在文件中,通過SQL語句可以方便的對大量數據進行增、刪、改、查操作,數據庫是對大量的信息進行管理的高效的解決方案
常見數據庫 :
MYSQL:開源免費的數據庫,小型的數據庫.已經被Oracle收購了.MySQL6.x版本也開始收費。
Oracle:收費的大型數據庫,Oracle公司的產品。Oracle收購SUN公司,收購MYSQL。
DB2 :IBM公司的數據庫產品,收費的。常應用在銀行系統中.
SQLServer:MicroSoft 公司收費的中型的數據庫。C#、.net等語言常使用。
SyBase:已經淡出歷史舞臺。
SQLite: 嵌入式的小型數據庫,應用在手機端。
2.SQL語句
概述:結構化查詢語言(Structured Query Language)簡稱SQL,SQL語句就是對數據庫進行操作的一種語言。
作用 :通過SQL語句我們可以方便的操作數據庫中的數據、表、數據庫。
SQL是數據庫管理系統都需要遵循的規範。不同的數據庫生產廠商都支持SQL語句,但都有特有內容。
SQL分類:
-
DDL(Data Definition Language)數據定義語言
用來定義數據庫對象:數據庫,表,列等。關鍵字:create, drop,alter等 -
DML(Data Manipulation Language)數據操作語言
用來對數據庫中表的數據進行增刪改。關鍵字:insert, delete, update等 -
DCL(Data Control Language)數據控制語言
用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE等
-
TCL(Transaction Control Language) 事務控制語言
用於控制數據庫的事務操作,關鍵字; COMMIT,SAVEPOINT,ROLLBACK等
-
DQL(Data Query Language) 數據查詢語言
DQL語言並不是屬於MYSQL官方的分類,但是對數據庫的操作最多就是查詢,
所以我們的程序員把查詢語句的語句稱作爲DQL語言
數據庫的CRUD操作
C (Create)增加:
1.創建數據庫:直接創建數據庫的bd1
CREATE DATABASE db1;
2.判斷是否存在並創建數據庫:判斷是否存在並創建數據庫db2
CREATE DATABASE IF NOT EXISTS db2;
3.創建數據庫並指定字符集(編碼表):創建數據庫並指定字符集爲gbk
CREATE DATABASE db3 CHARACTER SET gbk;
4.創建表:
CREATE TABLE 表名 (
字段名 字段類型,
字段名 字段類型,
......
字段名 字段類型
);
5.複製表:
CREATE TABLE 新表名 LIKE 舊錶名;
6.向表中添加記錄:
INSERT INTO 表名 (字段1,字段2,....) VALUES (值1,值2,...);
7.向表中添加所有字段的記錄:值和字段一一對應.
INSERT INTO 表名 VALUES (值1,值2,....)
R (Read)讀取,查詢:
1.查看摸個數據庫的定義信息:
SHOW CREATE DATABASES 數據庫名;
2.查看所有數據庫:
SHOW DATABASES;
3.查看某個數據庫的所有表:
SHOW TABLES;
4.查看錶結構:
DESC 表名;
5.查詢創建創建表:
SHOW CREATE TABLE 表名
6.查詢記錄:查詢顯示整個表的內容
SELECT * FROM 表名;
7.查詢表中單個記錄
SELECT * FROM 表名 WHERE 條件;
8.查詢一條記錄的某些字段
SELECT 字段1, 字段2, ...FROM 表名 WHERE 條件
9.別名查詢:
SELECT 字段1 別名 ,字段2 別名, 字段3 別名,... FROM 表名 WHERE 條件;
10.去重複查詢
SELECT DISTINCT 字段1, 字段2, 字段3, ...FROM 表名 WHERE 條件;
11.查詢結果參與運算:列與固定值
SELECT 列名1 + 固定值 FROM 表名;
12.查詢結果參與運算:列與列
SELECT 列名1 + 列名2 FROM 表名
13按條件查詢:比較運算符
--1.查詢年齡大於40歲的記錄
SELECT * FROM 表名 WHERE age>40;
--2.查詢工資低於5000的記錄
SELECT * FROM 表名 WHERE salary<5000;
--3.查詢id爲1的記錄
SELECT * FROM 表名 WHERE id=1;
--1.查詢年齡大於等於40歲的記錄
SELECT * FROM 表名 WHERE age>=40;
--2.查詢工資小於等於5000的記錄
SELECT * FROM 表名 WHERE salary<=5000;
--2.查詢性別部位男的記錄
SELECT * FROM 表名 WHERE sex<>男;
SELECT * FROM 表名 WHERE sex!=男;
14.按條件查詢:邏輯運算符
-- 查詢年齡大於40 並且爲男性的記錄
SELECT * FROM 表名 WHERE age>40 AND sex='男';
-- 查詢年齡小於24 或者 性別爲女 的記錄
SELECT * FROM 表名 WHERER age<24 OR sex='女';
15.按條件查詢:範圍
-- 查詢年齡在30到40的記錄
SELECT * FROM 表名 WHERE age BETWEEN 30 AND 40;
-- 查詢id 爲1,5,7,9 的記錄
SELECT * FROM 表名 WHERE ID IN (1,5,7,9);
16.模糊查詢:%
:表示0個或多個字符(任意字符),-
:表示一個字符.
-- 查詢姓馬的記錄
SELECT * FROM 表名 WHERE NAME LIKE '馬%';
-- 查詢姓名中包含"馬"字的記錄
SELECT * FROM 表名 WHERE NAME LIKE '%馬%';
-- 查詢姓馬,且姓名有三個字的記錄
SELECT * FROM 表名 WHERE NAME LIKE '馬__';
U (Update):更新(改):
1.修改數據庫的
ALTER DATABASE 數據庫名 DEFAULT CHARACTER SET 字符集;
2.修改表:
-- 添加字段
ALTER TABLE 表名 ADD 字段名 字段類型;
--改變字段類型
ALTER TABLE 表名 MODIFY 字段名 新類型;
--修改字段
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新類型;
--改表名
ALTER TABLE 舊錶名 TO 新表名;
-- 刪除字段
ALTER TABLE 表名 DROP 字段名;
--修改標的編碼類型
ALTER TABLE 表名 CHARACTER SET 字符集;
3.複製表:
--先複製表格格式
CREATE TABLE 新表名 LIKE 舊錶名;
--再複製內容
INSERT INTO 新表名 SELECT * FROM 舊錶名;
3.修改記錄
UPDATE 表名 SET 字段名 = 字段值,字段2=字段值,... WHERE 條件;
--例如 修改名字將張三的年齡爲30
UPDATE 表名 SET age = 30 WHERE name='張三';
D(Delete)刪除:
1.刪除數據庫:
DROP DATABASE 數據庫名;
2.刪除表:
DROP TABLE 表名;
3.刪除表:判斷是否存在這個表,存在則刪除
DROP TABLE IF EXISTS 表名;
4,刪除記錄:刪除某條特定的記錄
DELETE FROM 表名 WHERE 條件;
5.刪除整個標的內容:逐條刪除
DELETE FROM 表名;
6.刪除整個表格:先瓦解整個表,再重建一個一模一樣的新表
TRUNCATE TABLE 表名