MySql數(shù)據(jù)庫
概念:存放數(shù)據(jù)的倉庫,就是數(shù)據(jù)庫。 特點:持久化存儲邦鲫。本質(zhì)就是一個文件系統(tǒng)。
按特定格式(數(shù)據(jù)存儲在一張張表中神汹,就形成了特定的形式)進行存儲庆捺,用戶可對數(shù)據(jù)進行增刪改查
數(shù)據(jù)庫管理系統(tǒng)(DBMS,database management system)
是一種用來管理維護屁魏、維護滔以、建立數(shù)據(jù)庫的軟件。數(shù)據(jù)存在于數(shù)據(jù)庫中氓拼。但是用戶需要用DBMS來管理數(shù)據(jù)你画。
數(shù)據(jù)庫命令
show databases抵碟;顯示數(shù)據(jù)
在cmd中
mysql -uroot -h10.10.34.114 -p000000遠程登錄 -h表示host后接IP地址
SQL語句
structed query language結(jié)構(gòu)化的查詢語言
- DDL數(shù)據(jù)庫定義語言create、alter坏匪、drop
- DML數(shù)據(jù)庫操作語言insert拟逮、delete、update
- DCL數(shù)據(jù)庫控制語言适滓。用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級別唱歧,以及創(chuàng)建用戶
- DQL數(shù)據(jù)庫查詢語言select,where粒竖,from颅崩、group by
書寫規(guī)范
- 可單行,可多行書寫蕊苗,以分號;結(jié)尾
- 可以使用空格縮進來增強代碼可讀性
- 語句對大小寫不敏感沿后,但是==自定義內(nèi)容應(yīng)區(qū)分大小寫==
- 注釋多行 /**/ 單行注釋 # --
- SQLyog中語句默認大寫,自定義字符小寫朽砰。執(zhí)行SQL語句尖滚,快捷鍵F9
DDL
關(guān)于數(shù)據(jù)庫的操作:
- show databases;顯示數(shù)據(jù)庫
- create database 名字瞧柔;創(chuàng)建數(shù)據(jù)庫
- select version()漆弄;查看數(shù)據(jù)庫版本號
- use 數(shù)據(jù)庫名;切換使用數(shù)據(jù)庫
- show tables造锅;查看數(shù)據(jù)庫中所有的表
- show tables from 數(shù)據(jù)庫名撼唾;查看其他數(shù)據(jù)庫的表
- select database();查看正在使用的數(shù)據(jù)庫
- show create database 數(shù)據(jù)庫哥蔚;查看數(shù)據(jù)部的建表語句
- create database db2 default charset gbk倒谷;在創(chuàng)建數(shù)據(jù)庫時指定數(shù)據(jù)庫的編碼集為gbk
- drop database db2;刪除數(shù)據(jù)庫
關(guān)于表的操作:
-
create table 表名(
字段名1 字段類型 約束糙箍,
字段名2 字段類型 約束 渤愁,
……
字段名n 字段類型 約束 //最后一個不需要加逗號
);創(chuàng)建表
-
創(chuàng)建表之前先檢查是否存在深夯,不存在才創(chuàng)建
create table if not exists name(
……
)抖格;
查看標的結(jié)構(gòu),就是表的字段以及類型和約束等 desc 表名咕晋;
查看建表語句 show create table 表名雹拄;
刪除表 drop table 表名;
-
添加一個字段捡需,實際上就是修改了表的結(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 新名稱饰剥;
(只可以修改標的名稱殊霞,不可以修改數(shù)據(jù)庫名稱)
-
修改表編碼集
alter table 表名 charset gbk;
SQL常用數(shù)據(jù)類型
整數(shù) int
字符 varchar(字符長度)
小數(shù)double
日期date
DML 數(shù)據(jù)操作語言
對數(shù)據(jù)庫中的表進行操作汰蓉,可對表數(shù)據(jù)的增加绷蹲、刪除、修改
-
在表中插入數(shù)據(jù)
insert into 表名 (字段) value==s==(字段值)顾孽;
注意事項:1.傳值時祝钢,傳入的值得順序要和字段的順序一致
2.傳值時,傳入數(shù)據(jù)類型要和字段定義一致
3.傳值時若厚,除了數(shù)值類型以外拦英,其他類型都要用引號“”包裹。
4.傳空值時测秸,可以不寫該字段疤估。或者給字段傳入null
5.插入一條數(shù)據(jù)用values霎冯,插入多條用value
一次傳入多條數(shù)據(jù)insert into 表名(字段)value(字段值)铃拇,(字段值),(字段值)沈撞;
-
修改表中數(shù)據(jù)
updata 表名 set 字段=’新值‘ where 約束 or 約束慷荔;
如果不加約束,則整列都會被修改
-
刪除數(shù)據(jù)
刪除一條記錄 delete from 表名 where 約束缠俺;
刪除多條記錄 deleter from 表名 where 約束 or 約束拧廊;
不加約束則刪除表中所有數(shù)據(jù)
-
刪除數(shù)據(jù)方法2
truncate table 表名; 刪除所有數(shù)據(jù)
與delete區(qū)別:delete刪除數(shù)據(jù)時晋修,逐條刪除吧碾。truncate直接刪除整個表,相當(dāng)于drop table墓卦,然后新建一個空表倦春。如果數(shù)據(jù)量大,則truncate速率較高落剪。
DQL數(shù)據(jù)庫查詢語言
- 從數(shù)據(jù)庫中的表查找記錄
select 字段 from 表名
select * from 表名 查找所有字段
select * from 表名 where 約束
- 查詢時睁本,起別名 用 as
select 字段 as 別名 from 表名; 查詢出的表是臨時視圖忠怖,而不是真實存在的表呢堰。as可以省略但是要加一個空格。
-
查詢時去除重復(fù)數(shù)據(jù) distinct
select distinct 要去重的字段 from 表名凡泣;
對多個字段去重 效果是多個字段拼接后的結(jié)果 distinct要寫在所有字段的前面
select distinct 字段1枉疼,字段2 from 表名皮假;
在SQL中,數(shù)值+數(shù)值可以正常運算骂维,數(shù)值+字符串惹资,如果字符可以轉(zhuǎn)化為數(shù)值,可以正常運算航闺,若不可以褪测,結(jié)果為原數(shù)值
-
ifnull
如果為空,始終指定數(shù)值替換
select 原始值+ifnull(comm潦刃,100) 字段 from 表名 若為空全部替換為100.
-
拼接字符串
select concat(“字符串”侮措,字段1,“字符串”乖杠,字段1)from 表名萝毛;
-
使用限定的邏輯表達式
與 and 英文表示between and 相當(dāng)于<= >=
或 or 表示為in(數(shù)據(jù)1,數(shù)據(jù)2滑黔,數(shù)據(jù)3,……)
非 not 表示為<>
<=> 表示等于笆包,用于和null作比較
-
模糊查詢
查找出所有姓張的員工
select * from 表名 where name like “張%”; %表示任意個數(shù)
查找出所有姓張且名字為兩個字的員工
select * from 表名 where name like “張_”略荡;
找所有名字中帶“一”的員工
select * from 表名 where name like“%一%”庵佣;
數(shù)據(jù)庫刪除
1.先停止數(shù)據(jù)庫服務(wù)
計算機右鍵——管理——服務(wù)——找到MySQL——右鍵停止
任務(wù)管理器——服務(wù)——找到MySQL——右鍵停止
2.卸載