1. 基礎(chǔ)命令
- 默認(rèn)端口號:3306
- 查看服務(wù)器版本:select version(); 或者 cmd命令 mysql -verison
- 登錄數(shù)據(jù)庫:mysql -uroot -p
- 退出數(shù)據(jù)庫:exit/quit
- 查看當(dāng)前系統(tǒng)下的數(shù)據(jù)庫:show databases;
- 創(chuàng)建數(shù)據(jù)庫:create 庫名;
- 使用數(shù)據(jù)庫:use 庫名;
- 查看表:show tables;
- 建表:create table 表名 (字段名+空格+數(shù)據(jù)類型);
- 查看表結(jié)構(gòu):desc 表名;
- 添值:insert into 表名 (列名) values (值);
- 查看表中所有數(shù)據(jù):select * from 表名;
- 查詢建表時(shí)的結(jié)構(gòu):show create table 表名;
- 刪除字段中的值:delete from 表名 where 條件;
- 刪除表中的字段:delete from 表名 drop column 字段名;或者alter table 表名 drop 字段名
- 刪除表:drop table 表名;
- 刪除庫:drop database 庫名;
- 主鍵約束:primary key
- 唯一約束:unique
- 非空約束:not null
- 默認(rèn)約束:default
- 外鍵約束:foreign key(外鍵)references主表(主鍵)
- 查看別的數(shù)據(jù)庫的表格:show tables from 表名;
2. where條件查詢
- 精確查詢:=、!=、>、<、>=、<=
- 模糊查詢:like(像)、not like(不像)
- 通配符:%:任意字符、-:單個(gè)字符
- 邏輯運(yùn)算符:
- and:同時(shí)滿足(優(yōu)先級大于or)
- or:滿足任意條件即可
- 區(qū)間運(yùn)算:between a and b (閉區(qū)間)
- 集合運(yùn)算:in 、not in
- 非空運(yùn)算:is null 、is not null
3. 針對表內(nèi)數(shù)據(jù)的操作
- 增加:insert into 表名 (列名) values (值);
- 刪除:delete from 表名 where 條件;
- 查看:select * from 表名 where 條件;
- 修改:update 表名 set 字段=新值 where 條件;
- 排序:order by 字段名;(asc 升序、desc降序)
- 例:select * from 表名 order by 列名1 asc ,列名2 desc;
- 聚合函數(shù):
- sum() 函數(shù):求累加和
- 例:select sum(字段名) as ‘別名’/別名 from 表名;
- count() 函數(shù):同級行數(shù)數(shù)量
- (1)count(*):表示計(jì)算表中總的行數(shù),不管某列是否有數(shù)值或者是為空
- select count(*) from 表名;
- (2)count(字段名):表示計(jì)算指定列下總的行數(shù),計(jì)算或?qū)⒑雎钥罩?
- select count(字段名) from 表名;
- (1)count(*):表示計(jì)算表中總的行數(shù),不管某列是否有數(shù)值或者是為空
- avg() 函數(shù):返回一個(gè)平均值函數(shù)
- 例:select avg(字段名) as 別名 from 表名;
- max() 函數(shù):返回指定列中的最大值
- select max(字段名) as 別名 from 表名;
- min() 函數(shù): 返回最小值
- 例:select min(字段名) as 別名 from 表名;
- sum() 函數(shù):求累加和
- 分組:
- group by 字段 :將查詢結(jié)果按一列/多列的值分組,值相等為一列
- having 字段:二次判斷,用到聚合函數(shù)后,又需篩選條件時(shí),having和group by組合用
- 例:select 列名1 ,count(列名2) 別名 from 表名 group by 列名1 having 別名 >2;
- 限制查詢結(jié)果輸出條數(shù):limit 數(shù)字
- 傳一個(gè)參數(shù)(輸出前五條數(shù)據(jù))
- select * from 表名 limit 5;
- 傳兩個(gè)參數(shù)(輸出6-15)
- select * from 表名 limit 5,10;
- :5:從5后開始,10:條數(shù)
- 傳一個(gè)參數(shù)(輸出前五條數(shù)據(jù))
- 修改表名:alter table 舊表名 rename 新表名;
- 修改表中id字段為sid:alter table 表名 change id sid char;
- 去掉某列:alter table 表名 drop 列名;
- 添加某列:alter table 表名 add 列名 char;
- 修改列為字符型:alter table 表名 modify 列名 char(20);
- 增加多列:alter table 表名 add(xh int(4),zc char(8),ads char(50),);
- 刪除多列:alter table 表名 drop xh,zc,ads;
- 添加一個(gè)字段設(shè)主鍵約束:alter table 表名 add id sm unsigned primary key auto_increment;
- 關(guān)聯(lián)查詢-等值查詢:select * from 表名 where a.id=b.id and 條件
- 內(nèi)連接:select * from 表名1 inner join 表名2 on 表名1.xh=表名2.xh where 條件;
- 左連接:select * from 表名1 left join 表名2 on 表名1.xh=表名2.xh where 條件;
- 右連接:select * from 表名1 right join 表名2 on 表名1.xh=表名2.xh where 條件;
4. 創(chuàng)建索引
- 原文鏈接:https://blog.csdn.net/dengchenrong/article/details/88425762
- 1.要盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引
- 2.在經(jīng)常需要進(jìn)行檢索的字段上創(chuàng)建索引,比如要按照表字段username進(jìn)行檢索
- 3.一個(gè)表的索引數(shù)最好不要超過6個(gè),若太多則應(yīng)考慮一些不常使用到的列上建的索引是否有必要
普通索引(INDEX)
- 這是最基本的索引,它沒有任何限制,比如上文中為title字段創(chuàng)建的索引就是一個(gè)普通索引,MyIASM中默認(rèn)的BTREE類型的索引,也是我們大多數(shù)情況下用到的索引。
- 直接創(chuàng)建索引
CREATE INDEX index_name ON table(column(length));
- 修改表結(jié)構(gòu)的方式添加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length));
- 創(chuàng)建表的時(shí)候同時(shí)創(chuàng)建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`), //主鍵索引
INDEX index_name (title(length)) //普通索引
);
唯一索引(UNIQUE)
- 與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須是唯一的,創(chuàng)建方法和普通索引類似。
- 創(chuàng)建唯一索引
CREATE UNIQUE INDEX index_name ON table(column(length));
- 修改表結(jié)構(gòu)
ALTER TABLE table_name ADD UNIQUE INDEX index_name ON (column(length));
- 創(chuàng)建表時(shí)同時(shí)創(chuàng)建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
UNIQUE indexName (title(length))
);
多列索引
- 語句一般都有比較多的限制條件,所以為了進(jìn)一步榨取MySQL的效率,就要考慮建立組合索引。例如上表中針對title和time建立一個(gè)組合
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10));
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` );
全文索引(FULLTEXT)
ALTER TABLE `table_name` ADD FULLTEXT ( `column`);
主鍵索引(PRIMARY KEY)
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` );
文章來源地址http://www.zghlxwxcb.cn/news/detail-781309.html
文章來源:http://www.zghlxwxcb.cn/news/detail-781309.html
到了這里,關(guān)于Mysql常用命令詳細(xì)大全的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!