# 數據庫類型 - 關係型數據庫: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