下文主要給大家?guī)?lái)MySQL的簡(jiǎn)單入門(mén)了解,希望這些文字能夠帶給大家實(shí)際用處,這也是我編輯MySQL的簡(jiǎn)單入門(mén)了解這篇文章的主要目的。好了,廢話不多說(shuō),大家直接看下文吧。

作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。
結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language)簡(jiǎn)稱(chēng)SQL,是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。
從上可以看出我們數(shù)據(jù)庫(kù)相關(guān)工作職位大概兩種:DBD和DBA
dba是數(shù)據(jù)庫(kù)管理員database administrator
dbd是數(shù)據(jù)庫(kù)開(kāi)發(fā)人員database developer
SQL 是1986年10 月由美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)通過(guò)的數(shù)據(jù)庫(kù)語(yǔ)言美國(guó)標(biāo)準(zhǔn),接著,國(guó)際標(biāo)準(zhǔn)化組織(ISO)頒布了SQL正式國(guó)際標(biāo)準(zhǔn)。1989年4月,ISO提出了具有完整性特征的SQL89標(biāo)準(zhǔn),1992年11月又公布了SQL92標(biāo)準(zhǔn),在此標(biāo)準(zhǔn)中,把數(shù)據(jù)庫(kù)分為三個(gè)級(jí)別:基本集、標(biāo)準(zhǔn)集和完全集。
至于什么基本集,標(biāo)準(zhǔn)集我們不用管,看看就行,牽扯到數(shù)據(jù)庫(kù)原理和數(shù)學(xué)算法里面了
結(jié)構(gòu)化查詢(xún)語(yǔ)言包含6個(gè)部分:
其語(yǔ)句,也稱(chēng)為“數(shù)據(jù)檢索語(yǔ)句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動(dòng)詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類(lèi)型的SQL語(yǔ)句一起使用。
其語(yǔ)句包括動(dòng)詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱(chēng)為動(dòng)作查詢(xún)語(yǔ)言。
它的語(yǔ)句能確保被DML語(yǔ)句影響的表的所有行及時(shí)得以更新。TPL語(yǔ)句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
它的語(yǔ)句通過(guò)GRANT或REVOKE獲得許可,確定單個(gè)用戶和用戶組對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)。某些RDBMS可用GRANT或REVOKE控制對(duì)表單個(gè)列的訪問(wèn)。
其語(yǔ)句包括動(dòng)詞CREATE和DROP。在數(shù)據(jù)庫(kù)中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人數(shù)據(jù)庫(kù)目錄中獲得數(shù)據(jù)有關(guān)的保留字。它也是動(dòng)作查詢(xún)的一部分。
它的語(yǔ)句,像DECLARE CURSOR,F(xiàn)ETCH INTO和UPDATE WHERE CURRENT用于對(duì)一個(gè)或多個(gè)表單獨(dú)行的操作。
(1)查看數(shù)據(jù)庫(kù):
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys |
注:
1:information_schema這數(shù)據(jù)庫(kù)保存了MySQL云服務(wù)器所有數(shù)據(jù)庫(kù)的信息。如數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)的表,表欄的數(shù)據(jù)類(lèi)型不訪問(wèn)權(quán)限等。 [?skim?]
2:performance_schema 這是MySQL5.5新增的一個(gè)性能優(yōu)化的引擎:命名PERFORMANCE_SCHEMA [p??f?:m?ns]
主要用于收集數(shù)據(jù)庫(kù)云服務(wù)器性能參數(shù)。MySQL用戶是不能創(chuàng)建存儲(chǔ)引擎為PERFORMANCE_SCHEMA的表
3:mysql庫(kù)是系統(tǒng)庫(kù),里面保存有賬戶信息,權(quán)限信息等。
4:mysql5.7增加了sys 系統(tǒng)數(shù)據(jù)庫(kù),通過(guò)這個(gè)庫(kù)可以快速的了解系統(tǒng)的元數(shù)據(jù)信息
元數(shù)據(jù)是關(guān)于數(shù)據(jù)信息的數(shù)據(jù),如數(shù)據(jù)庫(kù)名或表名,列的數(shù)據(jù)類(lèi)型,或訪問(wèn)權(quán)限等。
mysql> show databases \G #以行的方式顯示 *************************** 1. row *************************** Database: information_schema *************************** 2. row *************************** Database: mysql *************************** 3. row *************************** Database: performance_schema
[root@server01 ~]# mysql -e 'show databases' -usystem -p123456 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
mysql –e 后面我們接SQL語(yǔ)句,直接終端運(yùn)行,后面寫(xiě)sql 相關(guān)shell可以用到
[root@xuegod63 ~]# mysqlshow -uroot -p123456 +--------------------+ | Databases | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
(2)創(chuàng)建數(shù)據(jù)庫(kù):
語(yǔ)法:create database 數(shù)據(jù)庫(kù)名;
創(chuàng)建數(shù)據(jù)庫(kù)注意事項(xiàng):
1) 在文件系統(tǒng)中,MySQL的數(shù)據(jù)存儲(chǔ)區(qū)將以目錄方式表示MySQL數(shù)據(jù)庫(kù)。因此,上面命令中的數(shù)據(jù)庫(kù)名字必須與操作系統(tǒng)的約束的目錄名字一致。例如不允許文件和目錄名中有\(zhòng),/,:,*,?,”,<,>,|這些符號(hào),在MySQL數(shù)據(jù)庫(kù)名字中這些字母會(huì)被自動(dòng)刪除。<遵從目錄的約束>
2) 數(shù)據(jù)庫(kù)的名字不能超過(guò)64個(gè)字符,包含特殊字符的名字或者是全部由數(shù)字或保留字組成的名字必須用單引號(hào)``包起來(lái)。
3) 數(shù)據(jù)庫(kù)不能重名。
mysql> create database HA; #創(chuàng)建一個(gè)名為HA的數(shù)據(jù)庫(kù) mysql> create database `HA-test`; [root@server01 ~]# ls /var/lib/mysql/ #查看數(shù)據(jù)庫(kù)存放目錄
選擇要操作的數(shù)據(jù)庫(kù):
使用USE語(yǔ)句將會(huì)選擇一個(gè)數(shù)據(jù)庫(kù)成為當(dāng)前數(shù)據(jù)庫(kù)。后面的操作默認(rèn)都在被選擇的數(shù)據(jù)庫(kù)中操作。
mysql> use HA-test; Database changed
查看自己所處的位置及默認(rèn)所在的位置
mysql> select database(); +------------+ | database() | +------------+ | HA-test | +------------+ 1 row in set (0.00 sec)
默認(rèn)
mysql> select database(); +------------+ | database() | +------------+ | NULL | +------------+ 1 row in set (0.00 sec)
Null意味著沒(méi)有選擇數(shù)據(jù)庫(kù)
Null在數(shù)據(jù)庫(kù)中表示 不知道的數(shù)據(jù),主要有3種意思:
1)知道數(shù)據(jù)存在,但不知道具體值;
2)不知道數(shù)據(jù)是否存在;
3)數(shù)據(jù)不存在。
在命令行選擇默認(rèn)的數(shù)據(jù)庫(kù)
mysql -uroot -p123456 HA mysql> select now(),user(),database(); +---------------------+------------------+------------+ | now() | user() | database() | +---------------------+------------------+------------+ | 2015-10-06 10:52:48 | system@localhost | HA | +---------------------+------------------+------------+
刪除數(shù)據(jù)庫(kù):
mysql> drop database `HA-test`;
刪除沒(méi)有任何提示,要慎重操作
方法2:直接到數(shù)據(jù)庫(kù)存放目錄移出就行
cd /usr/local/mysql/data/ mv HA@002dtest /tmp mysql> show databases;
使用IF EXISTS 子句以避免刪除不存在的數(shù)據(jù)庫(kù)時(shí)出現(xiàn)的MySQL錯(cuò)誤信息
mysql> drop database if exists `HA-test`;
IF EXISTS:如果存在
同理我們創(chuàng)建數(shù)據(jù)庫(kù)時(shí)也可以使用
mysql> create database if not exists HA;
(1)創(chuàng)建表:
語(yǔ)法:create table 表名 (字段名 類(lèi)型, 字段名 類(lèi)型, 字段名 類(lèi)型);
mysql> create table student(id int(20),name char(40),age int);
(2)查看表相關(guān)信息:
查看表:
要進(jìn)入到數(shù)據(jù)庫(kù)再查看
mysql> use mysql; Database changed mysql> show tables; +--------------+ | Tables_in_HA | +--------------+ | student |
(3)查看表的結(jié)構(gòu):
Describe
mysql> desc student; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | id | int(20) | YES | | NULL | | | name | char(40) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+----------+------+-----+---------+-------+ 3 rows in set (0.00 sec) mysql> explain mysql.user; mysql> show columns from mysql.user; mysql> show fields from mysql.user; mysql> show columns from mysql.user like '%user';
會(huì)一種常用的就行
(4)查看創(chuàng)建表執(zhí)行了哪些命令:
mysql> show create table student \G *************************** 1. row *************************** Table: student Create Table: CREATE TABLE `student` ( `id` int(20) DEFAULT NULL, `name` char(40) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
mysql> create table student2(id int(20),name char(40),age int)ENGINE=MyISAM DEFAULT CHARSET=utf8; 可以指定表的默認(rèn)存儲(chǔ)引擎和字符集
這兩個(gè)是默認(rèn)存儲(chǔ)引擎和默認(rèn)字符集
(5)刪除表:
mysql> drop table student2;
(6)禁止預(yù)讀表信息:
沒(méi)有禁止前的提示
mysql> use performance_schema; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
登錄的時(shí)候加上-A參數(shù)
mysql -uroot –p123456 -A
(7)修改表名稱(chēng)ALTER:
語(yǔ)法:alter table 表名 rename 新表名;
mysql> use HA; mysql> alter table student rename students; #studen表名修改為students
mysql> show tables; +--------------+ | Tables_in_HA | +--------------+ | students | +--------------+
(8)修改表中的字段類(lèi)型:
語(yǔ)法:alter table 表名 modify 要修改的字段名 要修改的類(lèi)型;
mysql> desc students; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | id | int(20) | YES | | NULL | | | name | char(40) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+----------+------+-----+---------+-------+
mysql> alter table students modify id int(10);
(9)修改表中的字段類(lèi)型和字段名稱(chēng):
語(yǔ)法:alter table 表名 change 原字段名 新字段名 新字段類(lèi)型;
查了一下官方文檔,發(fā)現(xiàn)mysql還真的不支持同時(shí)修改多個(gè)字段,
MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
來(lái)源:http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
mysql> desc students; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | id | int(10) | YES | | NULL | | | name | char(40) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+----------+------+-----+---------+-------+
mysql> alter table students change name stname char(20);
注:CHANGE 和MODIFY的區(qū)別:
CHANGE 對(duì)列進(jìn)行重命名和更改列的類(lèi)型,需給定舊的列名稱(chēng)和新的列名稱(chēng)、當(dāng)前的類(lèi)型。 MODIFY 可以改變列的類(lèi)型,此時(shí)不需要重命名(不需給定新的列名稱(chēng))
(10)在表中添加字段:
語(yǔ)法:alter table 表名 add 字段名 字段類(lèi)型;
mysql> alter table students add sex enum('M','W'); (11)指定位置添加字段:
在第一列添加一個(gè)字段:
mysql> alter table students add uid int(10) first;
在age后面添加一個(gè)address字段:
mysql> alter table students add address char(40) after age;
(12)刪除表中字段:
語(yǔ)法:alter table 表名 drop 字段名 ;
mysql> alter table students drop address;
(1)插入字段<記錄>INSERT:
語(yǔ)法:insert into 表名values (字段值1,字段值2, 字段值3);
mysql> create table student(id int(20),name char(40),age int); mysql> insert into student values(1,'zhangs',21);
插入記錄時(shí)要對(duì)應(yīng)相對(duì)的類(lèi)型
mysql> insert into student values(2,'lis',24),(3,'wange',26);
同時(shí)插入多條,使用,分開(kāi)
mysql> insert into student (id,name)values(4,'hangl');
指定字段插入
(2)查詢(xún)表中記錄:
語(yǔ)法:select * from 表名稱(chēng);
mysql> select * from student; *表示所有 +------+--------+------+ | id | name | age | +------+--------+------+ | 1 | zhangs | 21 | | 2 | lis | 24 | | 3 | wange | 26 | | 4 | hangl | NULL | +------+--------+------+
當(dāng)字段比較多的時(shí)候我們也可以使用\G
mysql> select * from student\G
只查詢(xún)表中某個(gè)字段的內(nèi)容:
mysql> select name from student; +--------+ | name | +--------+ | zhangs | | lis | | wange | | hangl |
mysql> select id,name from student; +------+--------+ | id | name | +------+--------+ | 1 | zhangs | | 2 | lis | | 3 | wange | | 4 | hangl | +------+--------+
(3)查看別的數(shù)據(jù)庫(kù)的表或者不在本數(shù)據(jù)庫(kù)上進(jìn)行查看:
語(yǔ)法:SELECT 字段 FROM 數(shù)據(jù)庫(kù)名.表名;
mysql> select *from HA.student; 查看某個(gè)數(shù)據(jù)庫(kù)下指定的表內(nèi)容,數(shù)據(jù)庫(kù)名.表名 +------+--------+------+ | id | name | age | +------+--------+------+ | 1 | zhangs | 21 | | 2 | lis | 24 | | 3 | wange | 26 | | 4 | hangl | NULL | +------+--------+------+
這樣等效于先use 數(shù)據(jù)庫(kù),然后查看
(4)刪除記錄:
刪除id為3的行
mysql> delete from students where id=3;
刪除age為空的行
mysql> delete from students where age is null;
(5)更新記錄
mysql> update students set sex='M' where id=2; mysql> update students set id=2; 所有的都變?yōu)? update students set stname='zhangsan',age=21 where uid=1; 同時(shí)更新多個(gè)字段時(shí)候用,號(hào)隔開(kāi)
語(yǔ)法:select 字段名1,字段名2 from 表名 [where 條件];
(1)查詢(xún)STUDENTS表中的NAME,AGE
mysql> select name,age from student; +--------+------+ | name | age | +--------+------+ | zhangs | 21 | | lis | 24 | | jk | 24 | | lo | 26 | | io | 25 | | jk | 24 | +--------+------+
(2)去重復(fù)查詢(xún)distinct
mysql> select distinct name,age from student; +--------+------+ | name | age | +--------+------+ | zhangs | 21 | | lis | 24 | | jk | 24 | | lo | 26 | | io | 25 |
mysql> select distinct id,name,age from student where id=3; +------+------+------+ | id | name | age | +------+------+------+ | 3 | jk | 24 |
select distinct from students; mysql的distinct可以對(duì)使用
(3)使用AND和OR進(jìn)行多條件查詢(xún)
or和and 同時(shí)存在時(shí),先算and的兩邊值,邏輯與先執(zhí)行
mysql> select id,name,age from student where id>3 and age>25; +------+------+------+ | id | name | age | +------+------+------+ | 5 | lo | 26 | +------+------+------+
mysql> select id,name,age from student where id>3 or age>25; +------+------+------+ | id | name | age | +------+------+------+ | 5 | lo | 26 | | 6 | io | 25 | +------+------+------+
select * from students where stname='zhangsan' and (age=21 or age=24);
注意and和or都是用的時(shí)候的邏輯關(guān)系
(4)MYSQL區(qū)分大小寫(xiě)查詢(xún):
MySQL查詢(xún)默認(rèn)是不區(qū)分大小寫(xiě)的
mysql> select name from student where name='jk'; +------+ | name | +------+ | jk | | jk | | JK | +------+
解決
mysql> select * from student where binary name='jk'; [?ba?n?ri] +------+------+------+------+ | id | name | age | sex | +------+------+------+------+ | 3 | jk | 24 | W | | 3 | jk | 24 | W | +------+------+------+------+
BINARY是類(lèi)型轉(zhuǎn)換運(yùn)算符,它用來(lái)強(qiáng)制它后面的字符串為一個(gè)二進(jìn)制字符串,可以理解為在字符串比較的時(shí)候區(qū)分大小寫(xiě)。
(5)MYSQL查詢(xún)排序:
語(yǔ)法:select distinct 字段1,字段2 from 表名order by 字段名;
默認(rèn)為升序 asc
mysql> select distinct id from student order by id asc; +------+ | id | +------+ | 2 | | 3 | | 5 | | 6 | | 8 | +------+
mysql> select distinct id from student order by id desc; +------+ | id | +------+ | 8 | | 6 | | 5 | | 3 | | 2 | +------+
help
mysql> help show;
會(huì)告訴我們很多使用方法和信息
mysql> help select;
對(duì)于以上關(guān)于MySQL的簡(jiǎn)單入門(mén)了解,大家是不是覺(jué)得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。
當(dāng)前名稱(chēng):MySQL的簡(jiǎn)單入門(mén)了解
網(wǎng)頁(yè)路徑:http://www.chinadenli.net/article44/peehhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄、自適應(yīng)網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)