MySQL數(shù)據(jù)庫運(yùn)維實戰(zhàn)第一章(入門)

一霎迫,認(rèn)識MySQL語言

1.MySQL語言主要用于存取數(shù)據(jù),查詢數(shù)據(jù)帘靡,更新數(shù)據(jù)和管理關(guān)系數(shù)據(jù)庫系統(tǒng)
2.DDL語句 數(shù)據(jù)庫定義語言: 數(shù)據(jù)庫知给、表、視圖描姚、索引涩赢、存儲過程,例如CREATE DROP ALTER
3.DML語句 數(shù)據(jù)庫操縱語言: 插入數(shù)據(jù)INSERT轩勘、刪除數(shù)據(jù)DELETE筒扒、更新數(shù)據(jù)UPDATE
4.DQL語句 數(shù)據(jù)庫查詢語言: 查詢數(shù)據(jù)SELECT

二,MySQL名詞解釋

1.數(shù)據(jù)庫:
a自帶默認(rèn)數(shù)據(jù)庫
information_schema: 虛擬庫绊寻,主要存儲了系統(tǒng)中的一些數(shù)據(jù)庫對象的信息花墩,例如用戶表信息悬秉、列信息、權(quán)限信息冰蘑、字符信息等
performance_schema: 主要存儲數(shù)據(jù)庫服務(wù)器的性能參數(shù)
mysql: 授權(quán)庫和泌,主要存儲系統(tǒng)用戶的權(quán)限信息
sys: 主要存儲數(shù)據(jù)庫服務(wù)器的性能參數(shù)
b用戶自建數(shù)據(jù)庫
2.表:記錄的管理單元
3.記錄:信息的載體,字段的管理單元
4.字段:字段名祠肥,字段類型(長度)武氓,字段約束組成
5.類型:字符,數(shù)字搪柑,日期
6.約束:不能為空聋丝,自動增長
7.圖示:

三,用戶自建庫

  1. create databases 數(shù)據(jù)庫名稱(數(shù)據(jù)庫名稱區(qū)分大小寫)
    2.查看數(shù)據(jù)庫:show databases
    3.進(jìn)入一個數(shù)據(jù)庫
    USE 數(shù)據(jù)庫名稱
    4.刪除數(shù)據(jù)庫
    drop database 數(shù)據(jù)庫名稱
    5.MySQL數(shù)據(jù)庫系統(tǒng)文件位置
    源碼安裝:/usr/local/mysql/data/
    RPM安裝:/var/lib/mysql/

四工碾,數(shù)據(jù)類型

1.數(shù)值類型 int
a 整數(shù)類型 int
b 浮點型 floatdouble
c 定點數(shù)類型 dec
d 位置類型 bit
2.字符串類型
a char
b text
c blob
d binary
e 枚舉類型: enum
f 集合類型: set
g 時間和日期類型: date time datetime timestamp year

五弱睦,類型測試

1.前期舉例

創(chuàng)庫
create database haha;
使用庫
use haha;
創(chuàng)表1
create table t1 (id int);
查看所有表
show tables;

插入數(shù)據(jù)
insert into t1 values(1);
查詢所有數(shù)據(jù)
select * from t1渊额;
刪除表
drop table t1况木;

創(chuàng)表2(兩列id 和 name(16長度))
create table t2 (id int,name varchar(16));

查看表結(jié)構(gòu)
desc t2;

插入數(shù)據(jù)
insert into t2 values(1,"zhangsan")旬迹;
查詢所有數(shù)據(jù)
select * from t2火惊;

修改表名
ALTER TABLE t2 RENAME t3;

查看所有表
show tables;

增加一列
ALTER TABLE t3 ADD address varchar (50);

查看表結(jié)構(gòu)
desc t3奔垦;

插入數(shù)據(jù)
insert into t3 values(1,"wangwu","beijing")屹耐;
查詢所有數(shù)據(jù)
select * from t3;
在ID列前增加一列(idd int)
ALTER TABLE t3 ADD idd int FIRST;

在ID列后增加一列(sex char)
ALTER TABLE t3 ADD sex char after id;

查看表結(jié)構(gòu)
desc t3椿猎;
查看表結(jié)構(gòu)
desc t3惶岭;

修改name列的列名為mingzi
ALTER TABLE t3 CHANGE name mingzi varchar(16) ;

查看表結(jié)構(gòu)
desc t3;

把t3 復(fù)制 t4
create table t4 select * from t3;

查看t3 和t4 的內(nèi)容
select * from t3犯眠;
select * from t4按灶;

2.整數(shù)類型測試

創(chuàng)表
mysql> create table test1(
tinyint_test tinyint,
int_test int
);

插入兩列合法值
mysql> insert into test1 values (111,111);
Query OK, 1 row affected (0.09 sec)

插入tinyint非法值
錯誤的示例:
mysql> insert into test1(tinyint_test) values(128);
ERROR 1264 (22003): Out of range value for column 'tinyint_test' at row 1
正確的示例:
mysql> insert into test1(tinyint_test) values(127);

插入int合法值
mysql> insert into test1(int_test) values(2147483647);
Query OK, 1 row affected (0.05 sec)

插入int的非法值
mysql> insert into test1(int_test) values(2147483648);
ERROR 1264 (22003): Out of range value for column 'int_test' at row 1
驗證那些值插入成功?
select * from test1筐咧;

3.無符號類型 unsigned

創(chuàng)表
create table test2(
tinyint_test tinyint unsigned,
int_test int unsigned
);

插入tinyint unsigned 合法值
insert into test2(tinyint_test) values(255);

插入int unsigned 合法值
mysql> insert into test1(int_test) values(2147483648);

插入兩列的非法數(shù)值 負(fù)數(shù)鸯旁。
mysql> insert into test2 values(-20,-20);
ERROR 1264 (22003): Out of range value for column 'tinyint_test' at row 1

4.整數(shù)型 零填充約束 zerofill

創(chuàng)表
create table t2 (
id1 int zerofill,
id2 int(6) zerofill
);
插入值
mysql> insert into t2 values(2,2);
Query OK, 1 row affected (0.01 sec)
查詢值
mysql> select * from t2;
+------------+--------+
| id1 | id2 |
+------------+--------+
| 0000000002 | 000002 |
+------------+--------+
1 row in set (0.00 sec)

5.浮點型 float

創(chuàng)表
create table test4(float_test float(5,2));
插入數(shù)值
insert into test4 values (10.2), (70.243), (70.246);
查詢結(jié)果
mysql> select * from test4;
+------------+
| float_test |
+------------+
| 10.20 |
| 70.24 |
| 70.25 |
+------------+
3 rows in set (0.01 sec)

6.精準(zhǔn)小數(shù)decimal類型

創(chuàng)表
create table test5(decimal_test decimal(5,2));
插入數(shù)據(jù)
insert into test5 values (70.245);
查詢結(jié)果
select * from test5;

7.時間型數(shù)據(jù)的使用方法和特點酸茴。date 和time

創(chuàng)表
create table test_time(
d date,
t time,
dt datetime);
查看表結(jié)構(gòu)
mysql> desc test_time;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| d | date | YES | | NULL | |
| t | time | YES | | NULL | |
| dt | datetime | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
插入時間
insert into test_time values(now(),now(),now());
查看表內(nèi)容
select * from test_time;

8.字符型數(shù)據(jù)類型 char ,varchar

創(chuàng)表
create table vc (
v varchar(4),
c char(4));
插入數(shù)據(jù)
insert into vc values('a','a');
insert into vc values('ab ','ab ');
查詢數(shù)據(jù)
select * from vc;

9.“單選”“多選”型數(shù)據(jù)類型 enun,set

創(chuàng)表
create table student3(
name varchar(50),
sex enum('m','f'),
hobby set('music','book','game','disc') );
插入數(shù)據(jù)
insert into student3 values ('tom','m','book,game');
查詢
select * from student3;

六泣港,完整性約束

1.目的:a.由于生活中需要避免重名的情況,所以數(shù)據(jù)庫中某列使用完整性約束來限定此類要求会烙。
b.用于保證數(shù)據(jù)的完整性和一致性
2.約束的類型
a foreign key() 標(biāo)識該字段為該表的主鍵危融,可以唯一的標(biāo)識記錄畏铆,不可以為空
b unique key() 標(biāo)識該字段為該表的外鍵,實現(xiàn)表與表(父表主鍵/子表1外鍵/子表2外鍵)之間的關(guān)聯(lián)
c auto_incremen 標(biāo)識該字段的值是唯一的吉殃,可以為空辞居,一個表中可以有多個UNIQUE KEY
d default 為該字段設(shè)置默認(rèn)值
e notnull 標(biāo)識該字段不能為空
f unsigned 無符號楷怒,正數(shù)
g zerofill 使用0填充,例如0000001

七瓦灶,約束類型測試

1.掌握約束類型default-默認(rèn)值鸠删,not null-非空
創(chuàng)表
create table student.student4(
id int not null,
name varchar(50) not null,
sex enum ('m','f') default 'm' not null,
age int unsigned default 18 not null,
hobby set('music','disc','dance','book') default 'book,dance' );

插入數(shù)據(jù)
mysql> insert into student4 values(1,'jack','m',20,'book');
Query OK, 1 row affected (0.00 sec)

mysql> select * from student4;

mysql> insert into student4(id,name) values(2,'robin');
Query OK, 1 row affected (0.00 sec)
查詢數(shù)據(jù)
mysql> select * from student4;

2.掌握主鍵約束特性。
創(chuàng)表
mysql> create table student6(
id int primary key not null auto_increment,
name varchar(50) not null,
sex enum('male','female') default 'male',
age int default 18
);
插入數(shù)據(jù)
mysql> insert into student6 values (1,'alice','female',22);

mysql> insert into student6(name,sex,age) values
('jack','male',19),
('tom','male',23);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
查詢
select * from student6贼陶;

3.掌握唯一約束
創(chuàng)表
CREATE TABLE company.department1 (
dept_id INT,
dept_name VARCHAR(30) UNIQUE,
comment VARCHAR(50));
插入正確數(shù)據(jù)
insert into department1 values (1,'zhangsan','yyy');
insert into department1 values (1,NULL,'yyy');
insert into department1 values (1,NULL,'yyy');
插入錯誤數(shù)據(jù)
insert into department1 values (1,'zhangsan','yyy');
ERROR 1062 (23000): Duplicate entry 'zhangsan' for key 'dept_name'
查詢
select * from company.department1;

4.掌握外鍵約束 FOREIGN KEY
創(chuàng)表
mysql> create table employees(
name varchar(50) not null,
mail varchar(20),
primary key(name)
)engine=innodb;

mysql> create table payroll(
id int not null auto_increment,
name varchar(50) not null,
payroll float(10,2) not null,
primary key(id),
foreign key(name) references employees(name) on update cascade on delete cascade
)engine=innodb;

查看表結(jié)構(gòu)
desc employees刃泡;
show create table payroll\G

插入測試數(shù)據(jù)
insert into employees values ('zhangsan','zhangsan@126.com');
insert into payroll values (1,'zhangsan',20000.23);
select * from employees;
select * from payroll;

父表更新,子表會如何碉怔?
update employees set name='zhangsansss' where name='zhangsan';
select * from payroll;

父表刪除烘贴,子表會如何
delete from employees where name='zhangsansss';

八,MySQL數(shù)據(jù)庫的一些基本操作

1.修改表名稱
altertable 表名 rename 新表名稱
2.增加字段
altertable add 字段名稱 數(shù)據(jù)類型 (約束條件)
3.刪除字段
drop 字段名稱 (列)
4.修改字段
altertable 表名 change 舊字段名稱 新字段名稱 新數(shù)據(jù)類型 (完整約束條件)撮胧;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桨踪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芹啥,更是在濱河造成了極大的恐慌锻离,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墓怀,死亡現(xiàn)場離奇詭異汽纠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)傀履,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門虱朵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钓账,你說我怎么就攤上這事卧秘。” “怎么了官扣?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羞福。 經(jīng)常有香客問我惕蹄,道長,這世上最難降的妖魔是什么治专? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任卖陵,我火速辦了婚禮,結(jié)果婚禮上张峰,老公的妹妹穿的比我還像新娘泪蔫。我一直安慰自己,他們只是感情好喘批,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布撩荣。 她就那樣靜靜地躺著铣揉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪餐曹。 梳的紋絲不亂的頭發(fā)上逛拱,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音台猴,去河邊找鬼朽合。 笑死,一個胖子當(dāng)著我的面吹牛饱狂,可吹牛的內(nèi)容都是我干的曹步。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼休讳,長吁一口氣:“原來是場噩夢啊……” “哼讲婚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衍腥,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤磺樱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婆咸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竹捉,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年尚骄,在試婚紗的時候發(fā)現(xiàn)自己被綠了块差。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倔丈。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹉动,死狀恐怖泽示,靈堂內(nèi)的尸體忽然破棺而出械筛,到底是詐尸還是另有隱情埋哟,我是刑警寧澤赤赊,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布扩氢,位于F島的核電站录豺,受9級特大地震影響双饥,放射性物質(zhì)發(fā)生泄漏咏花。R本人自食惡果不足惜昏翰,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一叔汁、第九天 我趴在偏房一處隱蔽的房頂上張望据块。 院中可真熱鬧另假,春花似錦开睡、人聲如沸苟耻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽解虱。三九已至漆撞,卻和暖如春悍汛,著一層夾襖步出監(jiān)牢的瞬間至会,已是汗流浹背奉件。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工术陶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留瞳别,地道東北人祟敛。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像埠巨,于是被迫代替她去往敵國和親辣垒。 傳聞我的和親對象是個殘疾皇子勋桶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容