mysql學習筆記

# 數據庫類型
- 關係型數據庫:mysql,oracle,sql server
- 非關係型數據庫:memacach,redis,mongdb等

# mysql數據庫的基本用法
## mysql數據類型
### 整型
- tinyint:佔位1字節
- smallint:2
- mediumint:3
- int:4
- bigint:8
### 浮點型
- 小數使用,可是因爲四捨五入,因此不精確
- float(m,d):4
- double(m,d):8
### 定點型
- 精確
- decimal(m,d):m表明總長度,d表明小數長度
### 字符串類型
- 如下字符串表示長度由小依次變大
- char:定長字符串
- varchar:變長字符串
- tinytext:短文本字符串
- text:長文本數據
- mediumtext:中等長度文本數據
- longtext:極大文本數據
### 時間類型
- DATE:YYYY-MM-DD
- TIME:HH:MM:SS
- YEAR:YYYY
- DATETIME:YYYY-MM-DD HH:MM:SS
- TIMESTAMP:YYYYMMDDHHMMSS:時間戳,方便,經常使用
## 字段名的修飾
### 列名的修飾
- unsigned(無符號)
- auto_increment(自增)
- default(默認值)
- comment(字段解釋說明)
- not null(非空)
- unique(索引)
- index(索引)
- primary key(主鍵)  auto_increment必須制定爲primary key
## sql運算符
- = != <> OR或者|| AND且&& BETWEEN..AND.. IN NOT IN
## sql語句的分類
- DDL:數據定義語言,建立刪除修改庫表的結構
- DML:數據操做語言,增刪改表的記錄
- DCL:用戶建立以及受權
- DQL:數據查詢語言,查詢數據
# mql數據庫之DDL
## 數據庫操做
- use database 數據庫名:使用數據庫
- create database 數據庫名:建立數據庫
- drop database 數據庫名:刪除數據庫
## 數據表操做
- create table 數據表名(字段名,字段類型):建立數據表
- show tables :列出全部數據表
- desc 表名:查看錶結構
- drop table 表名:刪除表
- alter table 表名 modify 字段名 字段類型 :修改表結構
    - change:修改表名
    - add:添加字段
    - ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';-修改user10的email字段屬性
    - ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;-將card移動到test後面
    - ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;- 把tset放到第一位
    - ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';-將tset字段改成test1
- alter table 表名 drop 字段名 :刪除字段
- alter table 表名 rename to 新表名:修改表名
# DML
- 插入:insert into 表名 (列1,列2,列3...) values (值1,值2,值3...)
- 更新:update 表名 set 列1=值1,列2=值2 where 條件---不加where會修改全部記錄
- 刪除:delete from 表名 where 條件---不加where就會刪除全部記錄
    - truncate:也是刪除,並且會重置id
# DCL
- mysql -uroot -p
- use mysql;
- show tables;
- select user,host,authentication_string from user:查詢用戶名,主機地址,密碼
- delete from user where user=...刪除用戶
- update user set password=新密碼 where user=...:修改密碼
- 刷新權限:flush privileges;
# DQL
## 查詢
- select 列名1,列名2... from 表名 where 條件---不加where會把全部記錄查出來
- select distinct(字段名) from 表名:過濾重複數據
- select concat_ws('分隔符'字段名,字段名)as 別名 from 表名;數據鏈接,將數據以鏈接的形式展示出來。
- select 列名 from 表名 where 字段名 like ‘條件:模糊查詢’ 
    - 'ja%':以ja開頭的數據
    - '%ck':以ck結尾的數據
    - '%np%':內容包含np的數據.yy
## 排列
- select * from 表名 order by 字段名 asc :(升序 默認 可不加)
- select * from 表名 order by 字段名 desc :(降序)
## 聚合函數
- select count(*) from 表名:查詢表的記錄數
- select sum(列名) from 表名:查詢此列的和
- select avg(列名) from 表名:查詢此列的平均值
- select max(列名) from 表名:查詢此列的最大值
- select min(列名) from 表名:查詢此列的最小值
## 分組查詢
- select * from 表名 group by sex :按照性別分組
- select * from 表名 group by sex HAVING count(*) > 3
相關文章
相關標籤/搜索