欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL的簡單入門了解

下文主要給大家?guī)鞰ySQL的簡單入門了解,希望這些文字能夠帶給大家實際用處,這也是我編輯MySQL的簡單入門了解這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。

MySQL基礎(chǔ)語句


MySQL進(jìn)階篇

1.1  SQL概述

結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng);同時也是數(shù)據(jù)庫腳本文件的擴展名。  
從上可以看出我們數(shù)據(jù)庫相關(guān)工作職位大概兩種:DBD和DBA  
dba是數(shù)據(jù)庫管理員database administrator  
dbd是數(shù)據(jù)庫開發(fā)人員database developer  
SQL 是1986年10 月由美國國家標(biāo)準(zhǔn)局(ANSI)通過的數(shù)據(jù)庫語言美國標(biāo)準(zhǔn),接著,國際標(biāo)準(zhǔn)化組織(ISO)頒布了SQL正式國際標(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ù)庫分為三個級別:基本集、標(biāo)準(zhǔn)集和完全集。  
至于什么基本集,標(biāo)準(zhǔn)集我們不用管,看看就行,牽扯到數(shù)據(jù)庫原理和數(shù)學(xué)算法里面了

1.2  SQL語句結(jié)構(gòu)

結(jié)構(gòu)化查詢語言包含6個部分:

1.2.1  數(shù)據(jù)查詢語言(DQL:Data Query Language):

其語句,也稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語句一起使用。

1.2.2  數(shù)據(jù)操作語言(DML:Data Manipulation Language):

其語句包括動詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱為動作查詢語言。

1.2.3  事務(wù)處理語言(TPL):跟shell有點類似 由多條SQL語句組成的整體

它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

1.2.4  數(shù)據(jù)控制語言(DCL):

它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對數(shù)據(jù)庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。

1.2.5  數(shù)據(jù)定義語言(DDL):

其語句包括動詞CREATE和DROP。在數(shù)據(jù)庫中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人數(shù)據(jù)庫目錄中獲得數(shù)據(jù)有關(guān)的保留字。它也是動作查詢的一部分。

1.2.6  指針控制語言(CCL):

它的語句,像DECLARE CURSOR,F(xiàn)ETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

1.3  MySQL語句

1.3.1  關(guān)于數(shù)據(jù)庫的操作

(1)查看數(shù)據(jù)庫:

mysql> show databases;  
+--------------------+  
| Database           |  
+--------------------+  
| information_schema |  
| mysql              |  
| performance_schema |  
|  sys          |  

注:  
1:information_schema這數(shù)據(jù)庫保存了MySQL云服務(wù)器所有數(shù)據(jù)庫的信息。如數(shù)據(jù)庫名,數(shù)據(jù)庫的表,表欄的數(shù)據(jù)類型不訪問權(quán)限等。  [?skim?]  
2:performance_schema 這是MySQL5.5新增的一個性能優(yōu)化的引擎:命名PERFORMANCE_SCHEMA   [p??f?:m?ns]  
主要用于收集數(shù)據(jù)庫云服務(wù)器性能參數(shù)。MySQL用戶是不能創(chuàng)建存儲引擎為PERFORMANCE_SCHEMA的表    
3:mysql庫是系統(tǒng)庫,里面保存有賬戶信息,權(quán)限信息等。  
4:mysql5.7增加了sys 系統(tǒng)數(shù)據(jù)庫,通過這個庫可以快速的了解系統(tǒng)的元數(shù)據(jù)信息  
元數(shù)據(jù)是關(guān)于數(shù)據(jù)信息的數(shù)據(jù),如數(shù)據(jù)庫名或表名,列的數(shù)據(jù)類型,或訪問權(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語句,直接終端運行,后面寫sql 相關(guān)shell可以用到

[root@xuegod63 ~]# mysqlshow -uroot -p123456  
+--------------------+  
|     Databases      |  
+--------------------+  
| information_schema |  
| mysql              |  
| performance_schema |  
+--------------------+  

(2)創(chuàng)建數(shù)據(jù)庫:  
語法:create database 數(shù)據(jù)庫名;

創(chuàng)建數(shù)據(jù)庫注意事項:  
1)  在文件系統(tǒng)中,MySQL的數(shù)據(jù)存儲區(qū)將以目錄方式表示MySQL數(shù)據(jù)庫。因此,上面命令中的數(shù)據(jù)庫名字必須與操作系統(tǒng)的約束的目錄名字一致。例如不允許文件和目錄名中有\(zhòng),/,:,*,?,”,<,>,|這些符號,在MySQL數(shù)據(jù)庫名字中這些字母會被自動刪除。<遵從目錄的約束>  
2)  數(shù)據(jù)庫的名字不能超過64個字符,包含特殊字符的名字或者是全部由數(shù)字或保留字組成的名字必須用單引號``包起來。  
3)  數(shù)據(jù)庫不能重名。

mysql> create database HA;  #創(chuàng)建一個名為HA的數(shù)據(jù)庫  
mysql> create database `HA-test`;  

[root@server01 ~]# ls /var/lib/mysql/  #查看數(shù)據(jù)庫存放目錄  

選擇要操作的數(shù)據(jù)庫:  
使用USE語句將會選擇一個數(shù)據(jù)庫成為當(dāng)前數(shù)據(jù)庫。后面的操作默認(rèn)都在被選擇的數(shù)據(jù)庫中操作。

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意味著沒有選擇數(shù)據(jù)庫

Null在數(shù)據(jù)庫中表示 不知道的數(shù)據(jù),主要有3種意思:  
1)知道數(shù)據(jù)存在,但不知道具體值;  
2)不知道數(shù)據(jù)是否存在;  
3)數(shù)據(jù)不存在。

在命令行選擇默認(rèn)的數(shù)據(jù)庫

mysql -uroot -p123456 HA  
mysql> select now(),user(),database();  
+---------------------+------------------+------------+  
| now()               | user()           | database() |  
+---------------------+------------------+------------+  
| 2015-10-06 10:52:48 | system@localhost | HA         |  
+---------------------+------------------+------------+  

刪除數(shù)據(jù)庫:

mysql> drop database `HA-test`;  

刪除沒有任何提示,要慎重操作

方法2:直接到數(shù)據(jù)庫存放目錄移出就行

cd /usr/local/mysql/data/  
mv HA@002dtest /tmp  
mysql> show databases;  

使用IF EXISTS 子句以避免刪除不存在的數(shù)據(jù)庫時出現(xiàn)的MySQL錯誤信息

mysql> drop database if exists `HA-test`;  

IF EXISTS:如果存在  
同理我們創(chuàng)建數(shù)據(jù)庫時也可以使用

mysql> create database if not exists HA;  

1.3.2  關(guān)于表的操作:

(1)創(chuàng)建表:  
語法:create table 表名 (字段名 類型, 字段名 類型, 字段名 類型);

mysql> create table student(id int(20),name char(40),age int);  

(2)查看表相關(guān)信息:  
查看表:  
要進(jìn)入到數(shù)據(jù)庫再查看

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';  

會一種常用的就行  
(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)存儲引擎和字符集  

這兩個是默認(rèn)存儲引擎和默認(rèn)字符集

(5)刪除表:

mysql> drop table student2;  

(6)禁止預(yù)讀表信息:  
沒有禁止前的提示

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  

登錄的時候加上-A參數(shù)

mysql -uroot –p123456 -A  

(7)修改表名稱ALTER:  
語法:alter table 表名 rename 新表名;

mysql> use HA;  
mysql> alter table student rename students;  #studen表名修改為students  
mysql> show tables;  
+--------------+  
| Tables_in_HA |  
+--------------+  
| students     |  
+--------------+  

(8)修改表中的字段類型:  
語法:alter table 表名 modify 要修改的字段名 要修改的類型;

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)修改表中的字段類型和字段名稱:  
語法:alter table 表名 change 原字段名 新字段名 新字段類型;  
查了一下官方文檔,發(fā)現(xiàn)mysql還真的不支持同時修改多個字段,  
MODIFY [COLUMN] col_name column_definition  
[FIRST | AFTER col_name]  
來源: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 對列進(jìn)行重命名和更改列的類型,需給定舊的列名稱和新的列名稱、當(dāng)前的類型。 MODIFY 可以改變列的類型,此時不需要重命名(不需給定新的列名稱)  
(10)在表中添加字段:  
語法:alter table 表名 add 字段名 字段類型;

mysql> alter table students add sex enum('M','W');  

(11)指定位置添加字段:  
在第一列添加一個字段:

mysql> alter table students add uid int(10) first;  

在age后面添加一個address字段:

mysql> alter table students add address char(40) after age;  

(12)刪除表中字段:  
語法:alter table 表名 drop 字段名 ;

mysql> alter table students drop address;  

1.3.3  關(guān)于記錄的操作:

(1)插入字段<記錄>INSERT:  
語法: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);   

插入記錄時要對應(yīng)相對的類型

mysql> insert into student values(2,'lis',24),(3,'wange',26);  

同時插入多條,使用,分開

mysql> insert into student (id,name)values(4,'hangl');  

指定字段插入

(2)查詢表中記錄:  
語法:select * from 表名稱;

mysql> select * from student;  *表示所有  
+------+--------+------+  
| id   | name   | age  |  
+------+--------+------+  
|    1 | zhangs |   21 |  
|    2 | lis    |   24 |  
|    3 | wange  |   26 |  
|    4 | hangl  | NULL |  
+------+--------+------+  

當(dāng)字段比較多的時候我們也可以使用\G  
mysql> select * from student\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ù)庫的表或者不在本數(shù)據(jù)庫上進(jìn)行查看:  
語法:SELECT 字段 FROM 數(shù)據(jù)庫名.表名;

mysql> select *from HA.student; 查看某個數(shù)據(jù)庫下指定的表內(nèi)容,數(shù)據(jù)庫名.表名   
+------+--------+------+  
| id   | name   | age  |  
+------+--------+------+  
|    1 | zhangs |   21 |  
|    2 | lis    |   24  
 |  
|    3 | wange  |   26 |  
|    4 | hangl  | NULL |  
+------+--------+------+  

這樣等效于先use 數(shù)據(jù)庫,然后查看

(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;  
同時更新多個字段時候用,號隔開  

1.3.4  SQL基礎(chǔ)條件查詢語句

語法:select 字段名1,字段名2 from 表名 [where 條件];  
(1)查詢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ù)查詢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可以對使用

(3)使用AND和OR進(jìn)行多條件查詢  
or和and 同時存在時,先算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都是用的時候的邏輯關(guān)系

(4)MYSQL區(qū)分大小寫查詢:  
MySQL查詢默認(rèn)是不區(qū)分大小寫的

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是類型轉(zhuǎn)換運算符,它用來強制它后面的字符串為一個二進(jìn)制字符串,可以理解為在字符串比較的時候區(qū)分大小寫。

(5)MYSQL查詢排序:  
語法: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 |  
+------+ 

1.3.5  關(guān)于MySQL命令幫助

help

mysql> help show; 

會告訴我們很多使用方法和信息

mysql> help select;  

對于以上關(guān)于MySQL的簡單入門了解,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

當(dāng)前名稱:MySQL的簡單入門了解
網(wǎng)頁路徑:http://aaarwkj.com/article44/peehhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、動態(tài)網(wǎng)站網(wǎng)站收錄、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
久久精品国产av一一区| 日本免费播放一区二区视频| 亚洲精品国产精品乱码不| 日本熟妇色在线视频不卡| 精品久久久久久久久999| 亚洲av污精品一区二区三区| 浮力草草日韩欧美三级| 蜜桃精品一区二区三区在线观看| 中文字幕91在线播放| 黄色av免费无毒网站| 最新日韩中文字幕在线播放| 亚洲精品影视一区二区| 美女视频一区二区三区在线观看| 久久综合伊人欧美精品| 中文字幕精品一区二区三| 欧美日韩国产激情在线观看| 亚洲综合另类小说专区| 日本av东京热在线播放| 日韩视频在线不卡观看| 性激烈的欧美三级男同| 久久久精品国产亚洲av色哟哟| 午夜日本大胆裸体艺术| 亚洲国产黄色美女视频| 欧美日韩国产精品久久乐播| 欧美三级精品三级在线| 国产午夜在线影院一区二区| 热精品韩国毛久久久久久| 日韩精品一二三黄色一级| 日韩中文字幕欧美国产| 夜夜嗨精品免费视频播放| 欧美三级美国三级亚洲三级| 中文字幕91在线播放| 亚洲av乱码乱码精品| 国产精品av在线网站| 日韩成人午夜视频在线| av男人的天堂一区二区| 亚洲少妇精品视频在线| 国产成+人+综合+亚洲专区| 免费一区二区三区黄色| 日本在线人妻中文字幕| 极品少妇一级人妻av|