MySQL的基本命令
-
查看所有的資料庫:SHOW DATABASES;

-
切換資料庫:USE 庫名;

-
創建資料庫表:create table 表名(
-> 欄位 資料型別(長度) 約束,
-> 欄位 資料型別(長度),
-> ......
-> );圖片中的建表沒有用約束

-
添加欄位:
insert into 表名(列名1, 列名2, .., 列名n) values(值1, 值2, ..., 值n); -
修改欄位:(根據id為條件修改)
update 表名 set 列名1=值1, 列名2=值2, ..., 列名n=值n where id; -
洗掉欄位:(根據id洗掉欄位)
delete from 表名 where id=值; -
查詢所有:
select * from 表名; -
根據id查詢一條:
select * from 表名 where id=值;
符號解釋:| 或; \ 或; * 所有
- 多表聯查:(left 左邊 right 右邊 表名\別名.列名* ----> 例:empl.* e.* emlp.name e.name )
select 表名\別名.列名* from 表名 別名
left join 表名 別名 on 關聯條件
right join 表名 別名 on 關聯條件
left join 表名 別名 on 關聯條件
......
where 結果限定條件
group by 分組
having 分組后的條件
order by 排序
limit 結果限定
1、普通索引
這是最基本的索引,它沒有任何限制,比如上文中為title欄位創建的索引就是一個普通索引,MyIASM中默認的BTREE型別的索引,也是我們大多數情況下用到的索引,
創建方式:
- 直接創建索引
CREATE INDEX index_name ON table(column(length))
- 修改表結構的方式添加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
- 創建表的時候同時創建索引
CREATE TABLE table (
id int(11) NOT NULL AUTO_INCREMENT ,
title char(255) CHARACTER SET NOT NULL ,
content text CHARACTER SET NULL ,
time int(10) NULL DEFAULT NULL ,
PRIMARY KEY (id),
INDEX index_name (title(length)));
- 洗掉索引
DROP INDEX index_name ON table
2、唯一索引
與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值,如果是組合索引,則列值的組合必須是唯一的,創建方法和普通索引類似,
2.1 創建唯一索引:
CREATE UNIQUE INDEX index_name ON table(column(length))
2.2 修改表結構:
ALTER TABLE table_name ADD UNIQUE INDEX index_name ON (column(length))
2.3 創建表時同時創建索引:
CREATE TABLE table (
id int(11) NOT NULL AUTO_INCREMENT ,
title char(255) CHARACTER SET NOT NULL ,
content text CHARACTER SET NULL ,
time int(10) NULL DEFAULT NULL ,
PRIMARY KEY (id),
UNIQUE indexName (title(length)));
3、組合索引
平時用的SQL查詢
陳述句一般都有比較多的限制條件,所以為了進一步榨取MySQL的效率,就要考慮建立組合索引,例如上表中針對title和time建立一個組合索引:
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10))
- 建立這樣的組合索引,其實是相當于分別建立了下面兩組組合索引:
–title,time
–title
為什么沒有time這樣的組合索引呢?這是因為MySQL組合索引“最左前綴”的結果,
簡單的理解就是只從最左面的開始組合,并不是只要包含這兩列的查詢都會用到該組合索引,如下面的幾個SQL所示:
- 使用到上面的索引:
SELECT * FROM article WHREE title='測驗' AND time=1234567890;
SELECT * FROM article WHREE utitle='測驗';
- 未使用到上面的索引:
SELECT * FROM article WHREE time=1234567890;
- 約束
- 主鍵 primary key
- 自增長約束 auto_increment
- 默認約束 default
- 不為 null約束 not null
- 唯一約束 unique
- 檢查約束 cherk
PRIMARY KEY 設定主鍵 AUTO_INCREMENT 主鍵自增長 not null 非空
CREATE TABLE IF NOT EXISTSrunoob_tbl(
runoob_idINT AUTO_INCREMENT PRIMARY KEY,
runoob_titleVARCHAR(100) NOT NULL,
runoob_authorVARCHAR(40) NOT NULL,
runoob_ageINT CHECK(runoob_age>18 && runoob_age<60),
submission_dateDATE,
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/229757.html
標籤:其他
上一篇:如何開啟MySQL遠程連接
下一篇:mysql重設密碼及允許遠程訪問
