明文: mysql -u用戶名 -p密碼
密文: mysql -u用戶名 -p 回車 密碼
遠程: mysql -h地址 -u用戶名 -p 回車 密碼
注意:-u和用戶名之間可以有空格 但是-p和密碼之間不能有空格
⦁ 關於數據庫的操作
3.1創建數據庫:
CREATE DATABASE 數據庫名;
3.2判斷數據庫是否已經存在,不存在則創建數據庫
CREATE DATABASE IF NOT EXISTS 數據庫名;
3.3創建數據庫並指定字符集
CREATE DATABASE 數據庫名 CHARACTER SET 字符集;
可以吧3.2與3.3結合起來:
CREATE DATABASE IF NOT EXISTS 數據庫名 CHARACTER SET 字符集;
3.4 查看所有的數據庫
SHOW DATABASES;
3.5查看某個數據庫的定義信息
SHOW CREATE DATABASE 數據庫名;
3.6修改數據庫默認的字符集
ALTER DATABASE 數據庫名 DEFAULT CHARACTER SET 字符集;
3.7刪除數據庫
DROP DATABASE 數據庫名;
3.8查看正在使用的數據庫
SELECT DATABASE();
3.9使用/切換數據庫
USE 數據庫名;
⦁ 關於表的操作
4.1創建表的格式 [約束可以不用寫]:
CREATE TABLE 表名 (
字段名 1 字段類型 1 約束1,
字段名 2 字段類型 2 約束2
);
4.2查看某個數據庫中的所有表
SHOW TABLES;
4.3查看錶結構
DESC 表名;
4.4查看創建表的 SQL 語句
SHOW CREATE TABLE 表名;
4.5快速創建一個表結構相同的表
CREATE TABLE 表名1 LIKE 表名2;
創建 2 表,2 表結構和 1 表結構相同
4.6直接刪除表
DROP TABLE 表名;
4.7判斷表是否存在,如果存在則刪除表
DROP TABLE IF EXISTS 表名;
4.8修改表名
RENAME TABLE 表名 TO 新表名;
4.9修改字符集
ALTER TABLE 表名 character set 字符集;
4.10添加表列
ALTER TABLE 表名 ADD 列名 類型 約束;
4.11修改列類型
ALTER TABLE 表名 MODIFY 列名 新的類型;
4.12修改列名
ALTER TABLE 表名 CHANGE 舊列名 新列名 類型;
4.13刪除列
ALTER TABLE 表名 DROP 列名;
⦁ 關於表中數據的操作:
5.1插入數據
根據字段插入數據
INSERT INTO 表名 ( 字段名 1, 字段名 2, …) VALUES (值 1, 值 2,…);
假如所有字段都插入數據 可以略寫爲(省略字段名):
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
批量添加:
INSERT INTO 表名 ( 字段名 1, 字段名 2) VALUES (值 1, 值 2),(值 1, 值 2);
5.2更新表記錄
UPDATE 表名 SET 列名= 值 [WHERE 條件表達式]
不帶條件修改數據
UPDATE 表名 SET 字段名= 值; -- 修改所有的行
帶條件修改數據
UPDATE 表名 SET 字段名= 值 WHERE 字段名= 值;
5.3刪除表記錄(如果沒有指定 WHERE 子句,MySQL 表中的所有記錄將被刪除。)
DELETE FROM 表名 [WHERE 條件表達式]
不帶條件刪除數據
DELETE FROM 表名;
帶條件刪除數據
DELETE FROM 表名 WHERE 字段名= 值;
5.4使用 truncate 刪除表中所有記錄
TRUNCATE TABLE 表名;
truncate 和 delete 的區別:truncate 相當於刪除表的結構,再創建一張表。
⦁ 查詢數據
6.1查詢指定字段
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
若是查詢所有字段,可簡寫爲:
SELECT * FROM 表名;
6.2使用別名(AS可以省略)
SELECT 字段1 AS 別名, 字段2 AS 別名... FROM 表名 AS 表別名;
SELECT 字段1 別名, 字段2 別名... FROM 表名 表別名;
6.3查詢指定列並且去重
SELECT DISTINCT 字段名 FROM 表名;
6.4查詢結果參與運算
SELECT 列名1 + 固定值 FROM 表名;
SELECT 列名1 + 列名2 FROM 表名;
6.5條件查詢的語法
SELECT 字段名 FROM 表名 WHERE 條件;
6.6 like 關鍵字 表示模糊查詢
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
6.7 排序
select * from 表名 order by 列名 asc(升序,默認) / desc (降序);
6.8聚合函數
6.8.1統計函數count() 統計指定字段不爲空的記錄行數
select count(列名) from 表名
6.8.2求和函數sum() 對指定記錄中的某個字段進行求和
select sum(列名) from 表名;
6.8.3最值函數max()/min() 對指定記錄中的某個字段進行求最值
select max(列名) from 表名;
6.8.4平均值函數avg() 對指定記錄中的某個字段進行求平均值
select avg(列名) from 表名;
6.8 分組查詢(必須跟隨聚合函數)
select count(*) from 表名 group by 列名;
6.8.1. where 和 having 的區別?
1. where 在分組之前進行限定,如果不滿足條件,則不參與分組。having在分組之後進行限定,如果不滿足結果,則不會被查詢出來
2. where 後不可以跟聚合函數,having可以進行聚合函數的判斷。
6.9 分頁查詢
1. 語法:limit 開始的索引,每頁查詢的條數;
SELECT * FROM 表名 LIMIT 0 , 3;
2. 公式:開始的索引 = (當前的頁碼 - 1) * 每頁顯示的條數 -- 每 頁顯示3條記錄
⦁ 主鍵約束:
主鍵約束:primary key
1.在創建表時,添加主鍵約束
create table stu(
Id int primary key,-- 給id添加主鍵約束
name varchar(20)
);
2. 刪除主鍵(不能用modify以修改的方式刪除主鍵)
ALTER TABLE 表名 DROP PRIMARY KEY;
3. 創建完表後,添加主鍵
ALTER TABLE 表名 MODIFY id INT PRIMARY KEY;
4.自動增長:
1. 在創建表時,添加主鍵約束,並且完成主鍵自增長
create table stu(
id int primary key auto_increment,-- 給id添加主鍵約束
name varchar(20)
);
2.刪除自動增長
ALTER TABLE 表名 MODIFY id INT;
3.添加自動增長
ALTER TABLE 表名 MODIFY id INT AUTO_INCREMENT;
非空約束
創建表時添加約束
CREATE TABLE stu(
Id INT,
NAME VARCHAR(20) NOT NULL -- name爲非空
);
2. 創建表完後,添加非空約束
ALTER TABLE 表名 MODIFY 字段名 類型 NOT NULL;
3. 刪除字段的非空約束
ALTER TABLE 表名 MODIFY 字段名 類型;
唯一約束
1. 在創建表時,添加唯一約束
CREATE TABLE stu(
Id INT,
phone_number VARCHAR(20) UNIQUE -- 手機號
);
2. 刪除唯一約束
ALTER TABLE 表名 DROP INDEX 字段名;
3. 在表創建完後,添加唯一約束
ALTER TABLE 表名 MODIFY 字段名 類型 UNIQUE;