Stories

Detail Return Return

MySQL - Stories Detail

MySQL

初始化

管理員身份運行cmd

-- 初始化
mysqld --initialize-insecure
-- 註冊mysql服務
mysqld -install
-- 啓動mysql服務
net start mysql
-- 修改默認賬户密碼
mysqladmin -u root password 1234
-- 登錄mysql
mysql -uroot -p1234

卸載MySQL

-- 停止mysql服務
net stop mysql
-- 卸載mysql服務
mysqld -remove mysql

數據庫操作

-- 查詢所有數據庫
show databases;
-- 使用數據庫
use db_name;
-- 查詢當前數據庫
select database();
-- 創建數據庫
create database [if not exists] db_name [default character utf8mb4];
-- 刪除數據庫
drop database [if exists] db_name;

SQL功能分類

分類 説明
DDL 用於定義數據庫對象(數據庫,表,字段)
DML 用於對數據庫表中的數據進行增刪改
DQL 用於查詢數據庫中表的數據
DCL 用於創建數據庫用户,控制數據庫的訪問權限

表-DDL

表創建

create table table_name(
    字段名 字段類型 [約束] [comment '註釋'],
    ...
    字段名 字段類型 [約束] [comment '註釋']
) [comment '表註釋']

約束

not null 非空
unique 唯一
primary key 非空且唯一
default 默認值
auto_increment 自動增長
foreign key 外鍵

字段類型

字符串類型 描述 數值類型 描述 日期類型 描述
tinyint 小整數值 char 定長字符串 date YYYY-MM-DD
smallint 大整數值 varcahr 可變長字符串 time HH:MM:SS
mediumint 大整數值 tinyblob 小於255字符的二進制字符串 year YYYY
int 大整數值 tinytext 短文本字符串 datetime YYYY-MM-DD HH:MM:SS
bigint 極大整數值 blob 二進制長字符串
float 單精度浮點數 text 長文本字符串
double 雙精度浮點數 mediumblob 中等二進制長字符串
decimal 小數值(精度更高) mediumtext 中等文本字符串
longblob 二進制極長字符串
longtext 極長文本字符串

表的修刪查

-- 查詢所有數據庫的表
show tables;
-- 查詢表結構
desc table_name;
-- 查詢建表語句
show create table table_name;

-- 增加字段
alter table table_name add 字段 類型 [comment '註釋'] [約束]
-- 修改字段類型
alter table table_name modify 字段 新類型;
-- 修改字段名和類型
alter table table_name change 舊名 新名 類型 [comment '註釋'] [約束];
-- 刪除字段
alter table table_name drop column 字段;
-- 修改表名
alter table table_name rename to 新表名;

-- 刪除表
drop table [if exists] table_name;

表-DML

表的增刪改

-- 指定字段插入
insert into table_name(字段1,字段2) values(值1,值2);
-- 插入所有字段
insert into table_name values(值1,值2,...);
-- 批量插入
insert into table_name(字段1,字段2) values(值1,值2), (值3,值4);
insert into table_name values(值1,值2,值3), (值4,值5,值6);

-- 修改數據
update table_name set 字段1=值1,字段2=值2 [where 條件];

-- 刪除數據
delete from table_name [where 條件];

表-DQL

表的查詢語句

  • 基本查詢
-- 查詢多個字段
select 字段1,字段2,字段3... from 表名;
-- 查詢所有字段
select * from 表名;
-- 為字段起別名
select 字段1 [as 別名1], 字段2 [as 別名2] from 表名;
-- 去重
select distinct 字段1,字段2 from 表名;
  • 聚合函數
聚合函數 功能
count() 統計數量
sum() 求和
avg() 求平均值
max() 求最大值
min() 求最小值
select 字段列表
from 表名列表
[where 條件列表]
[group by 分組字段]
[having 分組條件]
[order by 排序字段 [asc 升序/desc 降序]]
[limit 索引,數量]

沒有顯式指定 GROUP BY 子句時,模式要求 SELECT 列表中的所有非聚合列必須包含在聚合函數中

Add a new Comments

Some HTML is okay.