一、什麼是MYSQL
MYSQL 屬於數據庫的一種,mysql 目前屬於Oracle甲骨文公司,mysql 稱之爲關係型數據庫、同樣爲關係型數據庫的還有微軟的SQL Server。
MYSQL 數據庫是一種 C/S 模型(客戶端/服務端模型),
客戶端通過賬戶,密碼連接服務器,連接成功後纔可以進行數據庫的操作(CRUD)
mysql服務端採用的IO複用+可伸縮的線程池,實現了網絡高併發的經典模型
二、MYSQL 語言類別劃分
-
DDL(Data Definition Language):數據庫定義語言
定義了不同的數據庫,數據庫表,列,索引等數據庫對象的定義
常用的SQL:create(創建),drop(刪除),alter(更新) -
DML(data Manipulation Language):數據庫操控語言
用於添加、刪除、變更和查詢數據庫記錄
常用SQL:insert(添加),delete(刪除),update(更新),select(查找) -
DCL(data Control Language):數據控制語言
控制不同數據庫段直接訪問和訪問級別的語句
常用SQL:grant、remove
三、常用SQL語句
1.連接前服務端必須要啓動
mysql -u xxx -p xxx
- mysql:代表客戶端命令
- u 後面跟用戶名
- p 密碼
2.退出用戶端登錄: exit;
3.庫操作SQL格式:
- 創建數據庫
create database database_name; - 查看數據庫
show databases; - 使用數據庫
use database_name; - 查看數據庫下存在的表
show tables; - 刪除數據庫
drop database database_name;
4.表操作SQL格式
- 創建表
create table table_name(
屬性名1 數據類型 [完整性約束],
屬性名2 數據類型 [完整性約束],
屬性名3 數據類型 [完整性約束]
);
屬性名例如 id,name,sex;
數據類型例如 int,long,char,vaarchar
完整性約束例如 主鍵,外鍵,非空等
完整性約束如下:
完整性約束 | 說明 |
---|---|
primary | 表示當前屬性爲該表的關鍵,可以區分不同的行記錄 |
foreign key | 修飾當前屬性爲該表的外鍵,表之間關聯使用外鍵 |
not null | 表示屬性不能爲空 |
unique | 表示屬性的值是唯一的 |
auto_increatment | MySQL特色,表明屬性是自增的,自增類型爲整型 |
default | 給屬性設定默認值 |
用戶表:
用戶ID、用戶名、年齡
create table user(
id int primary key unique,
name varchar(10) ,
age int default 18
);
- 查找表
desc table_name;
show create table table_name; - 修改表
在使用過程中不滿足要求可能要修改表,用的SQL關鍵字是alter
1.修改表名
alter table old_name_name rename [to] new_table_name;
2.修改表的屬性數據類型
alter table table_name modify 屬性名 屬性類型
3.修改表的字段(屬性)
alter table table_name change 舊的屬性名 新屬性名 新屬性類型;
4.修改表的字段
alter table table_name add 屬性名 屬性類型 [完整性約束]
新增一個address(插在第一個)
alter table table_name add 屬性名 屬性類型[完整性約束] first
5.增加一個字段在某個屬性後
alter table table_name add 屬性名 屬性類型[完整性約束] after 列名
6.刪除字段
alter table table_name drop 屬性名
7.修改字段的排列順序
alter table table_name modify 屬性1 屬性類型 first|after 屬性2
8.修改存儲引擎
alter table table_name engine = innoDB|MYSIAM