真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

初識(shí)MySQL之——SQL語(yǔ)言基礎(chǔ)

寫(xiě)在前面

創(chuàng)新互聯(lián)專(zhuān)注于鐵東網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鐵東營(yíng)銷(xiāo)型網(wǎng)站建設(shè),鐵東網(wǎng)站制作、鐵東網(wǎng)頁(yè)設(shè)計(jì)、鐵東網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造鐵東網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鐵東網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。


  在對(duì)數(shù)據(jù)庫(kù)的日常管理和應(yīng)用中,不論管理員合適要訪問(wèn)一個(gè)數(shù)據(jù)庫(kù),幾乎都要使用到SQL語(yǔ)言,因此,熟練掌握SQL語(yǔ)言以及其腳本程序的編寫(xiě)是非常重要的。SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言)是目前最流行的關(guān)系型數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言,也是數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。

數(shù)據(jù)庫(kù)語(yǔ)言分類(lèi)


  數(shù)據(jù)語(yǔ)言按照不同的功用可以分為四大類(lèi):數(shù)據(jù)庫(kù)定義語(yǔ)言(DDL)、數(shù)據(jù)庫(kù)操作語(yǔ)言(DML)、數(shù)據(jù)庫(kù)控制語(yǔ)言(DCL)、數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言(DSL)。

DDL:數(shù)據(jù)庫(kù)定義語(yǔ)言由一組SQL命令組成,用于創(chuàng)建和定義數(shù)據(jù)庫(kù)對(duì)象。比如可以創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建表,修改視圖等。數(shù)據(jù)庫(kù)對(duì)象有庫(kù)、用戶(hù)、視圖、表、觸發(fā)器、以及存儲(chǔ)過(guò)程等。DDL語(yǔ)句以及其功能如下:

create

alter

drop

rename

truncate

刪除數(shù)據(jù)庫(kù)對(duì)象

修改數(shù)據(jù)庫(kù)對(duì)象

創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象

修改數(shù)據(jù)庫(kù)對(duì)象名稱(chēng)

刪除表的全部?jī)?nèi)容

DML:數(shù)據(jù)庫(kù)操縱語(yǔ)言主要用來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)內(nèi)容,增刪改等關(guān)于數(shù)據(jù)的內(nèi)容變更的操作。

insert

update

delete

call

merge

commit

rollback

插入數(shù)據(jù)到表或者視圖

更新

刪除

調(diào)用過(guò)程

合并操作

將當(dāng)前更改的事物提交,寫(xiě)入數(shù)據(jù)庫(kù)

回滾,取消上次提交以來(lái)的所有操作

DCL:數(shù)據(jù)庫(kù)控制語(yǔ)言一般用來(lái)修改數(shù)據(jù)庫(kù)的操作權(quán)限問(wèn)題

grant

revoke

授予權(quán)限

回收權(quán)限

DSL:數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言,對(duì)數(shù)據(jù)庫(kù)進(jìn)行內(nèi)容的查詢(xún)。其語(yǔ)法在整個(gè)SQL語(yǔ)言中最復(fù)雜,最豐富。功能也非常強(qiáng)大。

select

從表或者視圖中檢索數(shù)據(jù)

注意:對(duì)于MySQL等數(shù)據(jù)庫(kù)管理軟件來(lái)講,它不區(qū)分大小寫(xiě)。但是為了養(yǎng)成良好的編程習(xí)慣還是要遵循一定的規(guī)則。建議SQL關(guān)鍵字大寫(xiě)或者一直保持一致的書(shū)寫(xiě)方式。因?yàn)镾QL執(zhí)行過(guò)的SQL關(guān)鍵字保存在緩存中,一致的書(shū)寫(xiě)方式更容易緩存命中,提高執(zhí)行效率。

SQL語(yǔ)句簡(jiǎn)單實(shí)例


幫助使用方法

學(xué)習(xí)任何東西學(xué)會(huì)使用幫助用法是自我提高最有效的方式。mysql使用help keywords來(lái)查看幫助信息。

例如:

MariaDB [(none)]> help drop database    刪庫(kù)的正確姿勢(shì)

Name: 'DROP DATABASE'

Description:

Syntax:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

簡(jiǎn)單實(shí)例

[root@zachary  ~]#  mysql -u root –p

MariaDB  [(none)]> show databases;  #顯示所有數(shù)據(jù)庫(kù)

+--------------------+

|  Database          |

+--------------------+

|  information_schema|

|  mysql             |

|  performance_schema|

|  test              |

+--------------------+

4  rows in set (0.00 sec)

創(chuàng)建數(shù)據(jù)庫(kù)

MariaDB  [(none)]> create database if not exists zachary;如果數(shù)據(jù)不存在就創(chuàng)建

Query  OK, 1 row affected (0.00 sec) 

MariaDB  [(none)]> use Zachary 把當(dāng)前使用的數(shù)據(jù)庫(kù)切換為Zachary

Database  changed

創(chuàng)建表

MariaDB  [zachary]> create table person(

    -> id tinyint primary key,

    -> name varchar(8) not null,

    -> age tinyint);

Query  OK, 0 rows affected (0.02 sec)

MariaDB  [zachary]> show tables;

+-------------------+

|  Tables_in_zachary |

+-------------------+

|  person              |

+-------------------+

1  row in set (0.01 sec)

修改表

MariaDB  [zachary]> desc person;  #查看表結(jié)構(gòu)

+-------+------------+------+-----+---------+-------+

|  Field | Type       | Null | Key |  Default | Extra |

+-------+------------+------+-----+---------+-------+

|  id    | tinyint(4) | NO   | PRI | NULL    |        |

|  name  | varchar(8) | NO   |      | NULL    |       |

|  age   | tinyint(4) | YES  |      | NULL    |       |

+-------+------------+------+-----+---------+-------+

3  rows in set (0.00 sec)

 

MariaDB  [zachary]> alter table person modify id int;修改id字段的數(shù)據(jù)類(lèi)型

MariaDB  [zachary]> alter table person add email varchar(20);新增列email

MariaDB  [zachary]> desc person;

+-------+-------------+------+-----+---------+-------+

|  Field | Type        | Null | Key |  Default | Extra |

+-------+-------------+------+-----+---------+-------+

|  id    | int(11)     | NO    | PRI | NULL    |       |

|  name  | varchar(8)  | NO    |     | NULL    |        |

|  age   | tinyint(4)  | YES   |     | NULL    |        |

|  email | varchar(20) | YES  |     | NULL     |       |

+-------+-------------+------+-----+---------+-------+

4  rows in set (0.01 sec)

MariaDB  [zachary]> alter table person drop email ; #刪除列mysql不支持多列刪除

MariaDB  [zachary]> alter table person change age sex varchar(2);修改列名

MariaDB  [zachary]> alter table person rename to student;重命名表

MariaDB  [zachary]> rename table person to student;重命名表

修改約束條件

MariaDB  [zachary]> alter table student add unique key(name);添加唯一鍵

MariaDB  [zachary]> alter table student add check(sex in('m','f'));添加check約束

MariaDB  [zachary]> desc student;

+-------+------------+------+-----+---------+-------+

|  Field | Type      | Null | Key |  Default| Extra |

+-------+------------+------+-----+---------+-------+

|  id    | int(11)   | NO   | PRI | NULL    |       |

|  name  | varchar(8)| NO   | UNI | NULL    |       |

|  sex   | varchar(2 | YES  |     | NULL    |       |

+-------+------------+------+-----+---------+-------+

3  rows in set (0.00 sec)

刪除表

MariaDB  [zachary]> drop table student;

插入數(shù)據(jù)

MariaDB  [(zachary)]> create table if not exists test(

    -> id tinyint unsigned primary key,

    -> name varchar(20) not null,

    -> sex enum('m','f') default 'm',      默認(rèn)值 插入時(shí)若為指定值默認(rèn)為'm'

-> email varchar(30));

MariaDB [zachary]>  insert into test values(1,'zachary','m','zachary_yzh@126.com');按照創(chuàng)建數(shù)據(jù)庫(kù)字段的順序插入數(shù)據(jù)

MariaDB [zachary]>  insert into test (id,sex,name,email) values(2,'f','marry','marry@163.com');按照自定義的字段順序插入數(shù)據(jù)

MariaDB [zachary]>  insert into test (id,sex,name,email)  values(3,'m','jack','jack@qq.com'),(4,null,'mali','mali@foxmail.com'); 一次插入多行數(shù)據(jù)

查詢(xún)和修改表中數(shù)據(jù)

MariaDB  [zachary]> select * from test; 查詢(xún)表中所有數(shù)據(jù)

+----+---------+------+---------------------+

|  id | name   | sex  | email               |

+----+---------+------+---------------------+

|  1 | zachary | m    | zachary_yzh@126.com |

|  2 | marry   | f    | marry@163.com       |

|  3 | jack    | m    | jack@qq.com         |

|  4 | mali    | NULL | mali@foxmail.com    |

+----+---------+------+---------------------+

MariaDB  [zachary]> update  test set sex='f'  where id=4; 修改mali的性別

MariaDB  [zachary]> select name from test where sex='m';查看表中的男性都有誰(shuí)。

MariaDB  [zachary]> select name from test where id >=3; id大于3的人

MariaDB  [zachary]> select name from test where id >=2 and id <=4;使用邏輯運(yùn)算確定查詢(xún)條件。表示id在2到4之間的人。邏輯運(yùn)算符有and or not

MariaDB  [zachary]> select name from test where id between 2 and 4;使用between and關(guān)鍵字來(lái)確定區(qū)間范圍。between and為閉區(qū)間

MariaDB  [zachary]> insert into test (id,name)value(5,'tom');插入tom的信息。

MariaDB  [zachary]> select * from test where name='tom';查看tom的信息。插入時(shí)沒(méi)有插入性別。使用在創(chuàng)建表時(shí)所使用的默認(rèn)值。

+----+------+------+-------+

|  id | name | sex  | email |

+----+------+------+-------+

|  5 | tom   | m    | NULL  |

+----+------+------+-------+

1  row in set (0.01 sec)

MariaDB  [zachary]> select name from test where email rlike '.*[(163)|(126)].*';查看使用網(wǎng)易郵箱的人有哪些,rlike為正則表達(dá)式匹配方式

MariaDB  [zachary]> select * from test where name like '__r%';通配符匹配查詢(xún)方式使用like關(guān)鍵字,查詢(xún)名字中第三個(gè)字母為r的用戶(hù)信息。_表示任意單個(gè)字符,%表示任意長(zhǎng)度的任意字符。

MariaDB  [zachary]> select * from test where email is  null;查詢(xún)沒(méi)有使用郵箱的用戶(hù)。在查詢(xún)關(guān)鍵字為NULL時(shí)不能使用==號(hào)來(lái)進(jìn)行匹配,要使用is null或者is not null。

使用select語(yǔ)句創(chuàng)建表中數(shù)據(jù)

MariaDB  [zachary]> create table  emp select  * from test;

MariaDB  [zachary]> select * from emp;

+----+---------+------+---------------------+

|  id | name   | sex  | email               |

+----+---------+------+---------------------+

|  1 | zachary | m    | zachary_yzh@126.com |

|  2 | marry   | f    | marry@163.com       |

|  3 | jack    | m    | jack@qq.com         |

|  4 | mali    | f    | mali@foxmail.com    |

|  5 | tom     | m    | NULL                |

+----+---------+------+---------------------+

5  rows in set (0.00 sec)

刪除表中數(shù)據(jù)

MariaDB  [zachary]> delete from emp where email is null;刪除email為空的用戶(hù)數(shù)據(jù)

MariaDB  [zachary]> truncate emp;清空表中所有數(shù)據(jù)(不記錄日志)

創(chuàng)建用戶(hù)及授權(quán)

MariaDB  [zachary]> create user 'yzh'@'172.18.%.%' identified by 'yzh01'; 創(chuàng)建用戶(hù)及修改密碼

在mysql中用戶(hù)賬號(hào)由用戶(hù)名和用戶(hù)主機(jī)名組成。主機(jī)可以使用網(wǎng)段,通配符或者主機(jī)名,使用主機(jī)時(shí)要能與解析的ip相對(duì)應(yīng)。

MariaDB [zachary]> set  password for 'yzh'@'172.18.%.%'=password('123456');修改用戶(hù)口令的正確姿勢(shì),不建議直接更改mysql.user表

MariaDB [zachary]>  grant select ,insert on Zachary.test to 'yzh'@'172.18.%.%';授予用戶(hù)yzh對(duì)test表的查詢(xún)和插入權(quán)限。

MariaDB [zachary]>  grant ALL on zachary.* to 'tony'@'localhost' identified by 'zacharyadmin'  with grant option;;在授予權(quán)限的時(shí)候直接創(chuàng)建用戶(hù)。授予tony用戶(hù)在Zachary數(shù)據(jù)庫(kù)上的所有權(quán)限,并且該用戶(hù)可以給其他用戶(hù)授予權(quán)限,with grant  option選項(xiàng)可以在授予其他用戶(hù)自己所擁有的權(quán)限,慎用。

MariaDB  [zachary]> revoke insert on zachary.test   from 'yzh'@'172.18.%.%';回收yzh用戶(hù)在Zachary.test表的插入權(quán)限

 

MariaDB [(none)]> create user  'test'@'localhost' identified by '123456';創(chuàng)建一個(gè)test用戶(hù)

[root@zachary ~]#  mysql -u tony -p   使用tony用戶(hù)連接

Enter password:

MariaDB [zachary]>  select user();

+----------------+

| user()         |

+----------------+

| tony@localhost |

+----------------+

1 row in set (0.00 sec)

MariaDB  [zachary]> grant select on zachary.* to 'test'@'localhost';

使用tony用戶(hù)授予test用戶(hù)對(duì)Zachary數(shù)據(jù)庫(kù)的查詢(xún)操作。

[root@zachary  ~]#  mysql -u root –p

MariaDB  [(none)]> revoke all on zachary.* from 'tony'@'localhost';回收tony用戶(hù)的所有權(quán)限,但是他授權(quán)的其他用戶(hù)的權(quán)限不受影響。Revoke的權(quán)限不會(huì)級(jí)聯(lián)回收

[root@zachary  ~]#  mysql -u test -p   #使用test用戶(hù)仍舊能夠查詢(xún)

MariaDB  [(none)]> select * from zachary.test;

+----+---------+------+---------------------+

|  id | name   | sex  | email               |

+----+---------+------+---------------------+

|  1 | zachary | m    | zachary_yzh@126.com |

|  2 | marry   | f    | marry@163.com       |

|  3 | jack    | m    | jack@qq.com         |

..  ..

 


分享標(biāo)題:初識(shí)MySQL之——SQL語(yǔ)言基礎(chǔ)
文章位置:http://weahome.cn/article/jjcedd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部