MySql數(shù)據(jù)庫(kù)
概念:存放數(shù)據(jù)的倉(cāng)庫(kù),就是數(shù)據(jù)庫(kù)。 特點(diǎn):持久化存儲(chǔ)。本質(zhì)就是一個(gè)文件系統(tǒng)。
按特定格式(數(shù)據(jù)存儲(chǔ)在一張張表中,就形成了特定的形式)進(jìn)行存儲(chǔ),用戶可對(duì)數(shù)據(jù)進(jìn)行增刪改查
數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS,database management system)
是一種用來(lái)管理維護(hù)、維護(hù)、建立數(shù)據(jù)庫(kù)的軟件。數(shù)據(jù)存在于數(shù)據(jù)庫(kù)中。但是用戶需要用DBMS來(lái)管理數(shù)據(jù)。
數(shù)據(jù)庫(kù)命令
show databases;顯示數(shù)據(jù)
在cmd中
mysql -uroot -h10.10.34.114 -p000000遠(yuǎn)程登錄 -h表示host后接IP地址
SQL語(yǔ)句
structed query language結(jié)構(gòu)化的查詢語(yǔ)言
- DDL數(shù)據(jù)庫(kù)定義語(yǔ)言create、alter、drop
- DML數(shù)據(jù)庫(kù)操作語(yǔ)言insert、delete、update
- DCL數(shù)據(jù)庫(kù)控制語(yǔ)言。用來(lái)定義數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限和安全級(jí)別,以及創(chuàng)建用戶
- DQL數(shù)據(jù)庫(kù)查詢語(yǔ)言select,where,from、group by
書(shū)寫(xiě)規(guī)范
- 可單行,可多行書(shū)寫(xiě),以分號(hào);結(jié)尾
- 可以使用空格縮進(jìn)來(lái)增強(qiáng)代碼可讀性
- 語(yǔ)句對(duì)大小寫(xiě)不敏感,但是==自定義內(nèi)容應(yīng)區(qū)分大小寫(xiě)==
- 注釋多行 /**/ 單行注釋 # --
- SQLyog中語(yǔ)句默認(rèn)大寫(xiě),自定義字符小寫(xiě)。執(zhí)行SQL語(yǔ)句,快捷鍵F9
DDL
關(guān)于數(shù)據(jù)庫(kù)的操作:
- show databases;顯示數(shù)據(jù)庫(kù)
- create database 名字;創(chuàng)建數(shù)據(jù)庫(kù)
- select version();查看數(shù)據(jù)庫(kù)版本號(hào)
- use 數(shù)據(jù)庫(kù)名;切換使用數(shù)據(jù)庫(kù)
- show tables;查看數(shù)據(jù)庫(kù)中所有的表
- show tables from 數(shù)據(jù)庫(kù)名;查看其他數(shù)據(jù)庫(kù)的表
- select database();查看正在使用的數(shù)據(jù)庫(kù)
- show create database 數(shù)據(jù)庫(kù);查看數(shù)據(jù)部的建表語(yǔ)句
- create database db2 default charset gbk;在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定數(shù)據(jù)庫(kù)的編碼集為gbk
- drop database db2;刪除數(shù)據(jù)庫(kù)
關(guān)于表的操作:
-
create table 表名(
字段名1 字段類型 約束,
字段名2 字段類型 約束 ,
……
字段名n 字段類型 約束 //最后一個(gè)不需要加逗號(hào)
);創(chuàng)建表
-
創(chuàng)建表之前先檢查是否存在,不存在才創(chuàng)建
create table if not exists name(
……
);
查看標(biāo)的結(jié)構(gòu),就是表的字段以及類型和約束等 desc 表名;
查看建表語(yǔ)句 show create table 表名;
刪除表 drop table 表名;
-
添加一個(gè)字段,實(shí)際上就是修改了表的結(jié)構(gòu),所以用alter
alter table 表名 add 字段 字段類型 約束;
-
修改現(xiàn)有字段的字段類型/約束
alter table 表名 modify 新的字段類型 新約束;
-
修改現(xiàn)有字段的名稱
alter table 表名 change 舊列名 新列名 字段類型;
-
刪除現(xiàn)有字段
alter table 表名 drop 列名;
-
修改表的名稱
rename table 舊名稱 to 新名稱;
(只可以修改標(biāo)的名稱,不可以修改數(shù)據(jù)庫(kù)名稱)
-
修改表編碼集
alter table 表名 charset gbk;
SQL常用數(shù)據(jù)類型
整數(shù) int
字符 varchar(字符長(zhǎng)度)
小數(shù)double
日期date
DML 數(shù)據(jù)操作語(yǔ)言
對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行操作,可對(duì)表數(shù)據(jù)的增加、刪除、修改
-
在表中插入數(shù)據(jù)
insert into 表名 (字段) value==s==(字段值);
注意事項(xiàng):1.傳值時(shí),傳入的值得順序要和字段的順序一致
2.傳值時(shí),傳入數(shù)據(jù)類型要和字段定義一致
3.傳值時(shí),除了數(shù)值類型以外,其他類型都要用引號(hào)“”包裹。
4.傳空值時(shí),可以不寫(xiě)該字段。或者給字段傳入null
5.插入一條數(shù)據(jù)用values,插入多條用value
一次傳入多條數(shù)據(jù)insert into 表名(字段)value(字段值),(字段值),(字段值);
-
修改表中數(shù)據(jù)
updata 表名 set 字段=’新值‘ where 約束 or 約束;
如果不加約束,則整列都會(huì)被修改
-
刪除數(shù)據(jù)
刪除一條記錄 delete from 表名 where 約束;
刪除多條記錄 deleter from 表名 where 約束 or 約束;
不加約束則刪除表中所有數(shù)據(jù)
-
刪除數(shù)據(jù)方法2
truncate table 表名; 刪除所有數(shù)據(jù)
與delete區(qū)別:delete刪除數(shù)據(jù)時(shí),逐條刪除。truncate直接刪除整個(gè)表,相當(dāng)于drop table,然后新建一個(gè)空表。如果數(shù)據(jù)量大,則truncate速率較高。
DQL數(shù)據(jù)庫(kù)查詢語(yǔ)言
- 從數(shù)據(jù)庫(kù)中的表查找記錄
select 字段 from 表名
select * from 表名 查找所有字段
select * from 表名 where 約束
- 查詢時(shí),起別名 用 as
select 字段 as 別名 from 表名; 查詢出的表是臨時(shí)視圖,而不是真實(shí)存在的表。as可以省略但是要加一個(gè)空格。
-
查詢時(shí)去除重復(fù)數(shù)據(jù) distinct
select distinct 要去重的字段 from 表名;
對(duì)多個(gè)字段去重 效果是多個(gè)字段拼接后的結(jié)果 distinct要寫(xiě)在所有字段的前面
select distinct 字段1,字段2 from 表名;
在SQL中,數(shù)值+數(shù)值可以正常運(yùn)算,數(shù)值+字符串,如果字符可以轉(zhuǎn)化為數(shù)值,可以正常運(yùn)算,若不可以,結(jié)果為原數(shù)值
-
ifnull
如果為空,始終指定數(shù)值替換
select 原始值+ifnull(comm,100) 字段 from 表名 若為空全部替換為100.
-
拼接字符串
select concat(“字符串”,字段1,“字符串”,字段1)from 表名;
-
使用限定的邏輯表達(dá)式
與 and 英文表示between and 相當(dāng)于<= >=
或 or 表示為in(數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,……)
非 not 表示為<>
<=> 表示等于,用于和null作比較
-
模糊查詢
查找出所有姓張的員工
select * from 表名 where name like “張%”; %表示任意個(gè)數(shù)
查找出所有姓張且名字為兩個(gè)字的員工
select * from 表名 where name like “張_”;
找所有名字中帶“一”的員工
select * from 表名 where name like“%一%”;
數(shù)據(jù)庫(kù)刪除
1.先停止數(shù)據(jù)庫(kù)服務(wù)
計(jì)算機(jī)右鍵——管理——服務(wù)——找到MySQL——右鍵停止
任務(wù)管理器——服務(wù)——找到MySQL——右鍵停止
2.卸載