日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Mysqlday01(Mysql简介,sql简介,分类)

發(fā)布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Mysqlday01(Mysql简介,sql简介,分类) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、數(shù)據(jù)庫分類

   數(shù)據(jù)庫通常分為層次式數(shù)據(jù)庫、網(wǎng)絡(luò)式數(shù)據(jù)庫和關(guān)系式數(shù)據(jù)庫。

   現(xiàn)在最常用的兩種數(shù)據(jù)庫:關(guān)系型數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫。

    關(guān)系型數(shù)據(jù)庫:Oracle和MySql

    非關(guān)系型數(shù)據(jù)庫:

      鍵值存儲數(shù)據(jù)庫:Redis

      列存儲數(shù)據(jù)庫:HBase

      面向文檔數(shù)據(jù)庫:MongoDB

      圖形數(shù)據(jù)庫:Neo4J 

MySQL發(fā)展歷程

1996年:MySQL 1.0版本正式發(fā)布;
1999-2000年:Monty團(tuán)隊成立MySQL AB公司,并將MySQL支持事務(wù)處理;
2001年:InnoDB存儲引擎集成到MySQL中;
2004年:MySQL發(fā)布4.1版本,新增子查詢;
2005年:MySQL發(fā)布5.0版本,增加存儲過程、觸發(fā)器、視圖等功能;
2008年:1月份被Sun公司收購;
2009年:Oracle公司收購了Sun公司,MySQL轉(zhuǎn)入Oracle旗下;
2010年:MySQL5.5版本發(fā)布;
2015年:MySQL5.7 GA版本發(fā)布;
2018年:MySQL8.0 GA版本發(fā)布;

MySQL不同版本的重要改進(jìn)

4.1:增加子查詢的支持;字符集中增加了對UTF-8的支持;
5.0:增加了視圖、過程、觸發(fā)器的支持,增加了information_schema系統(tǒng)數(shù)據(jù)庫;
5.1:增加了表分區(qū)的支持;支持基于行的復(fù)制(row-based-replication);
5.5:InnoDB成為默認(rèn)存儲引擎;支持半同步復(fù)制;引入performance_schema動態(tài)性能視圖;
5.6:支持部分Online DDL操作;支持ICP/BKA/MRR等優(yōu)化器改進(jìn);引入GTID;支持多庫并行復(fù)制;
5.7:密碼安全性提高;支持多線程并行復(fù)制、多源復(fù)制;支持JSON;引入sys系統(tǒng)庫;引入MGR;
8.0:在線持久化全局參數(shù);大幅提高數(shù)據(jù)字典性能;引入窗口函數(shù)、ROLE、直方圖、降序索引、不可見索引;修復(fù)自增列重啟BUG。

二、SQL簡介

  什么是SQL:

    結(jié)構(gòu)化查詢語言

    使我們有訪問數(shù)據(jù)庫的能力

    是一種ANSI的標(biāo)準(zhǔn)計算機(jī)語言

  SQL能做什么:

    SQL面向數(shù)據(jù)庫執(zhí)行查詢

    SQL可在數(shù)據(jù)庫中插入新的記錄

    SQL可更新數(shù)據(jù)庫中的數(shù)據(jù)

    SQL可從數(shù)據(jù)庫刪除記錄

    SQL可創(chuàng)建新數(shù)據(jù)庫

    SQL可在數(shù)據(jù)庫中創(chuàng)建新表

    SQL可在數(shù)據(jù)庫中創(chuàng)建存儲過程

    SQL可在數(shù)據(jù)庫中創(chuàng)建視圖

    SQL可以設(shè)置表、存儲過程和視圖的權(quán)限

  

  SQL是一種標(biāo)準(zhǔn),但是:

SQL是一門ANSI的標(biāo)準(zhǔn)計算機(jī)語言,用來訪問和操作數(shù)據(jù)庫系統(tǒng)。SQL語句用于查詢和更新數(shù)據(jù)庫中的數(shù)據(jù)。SQL可與數(shù)據(jù)庫程序協(xié)同工作,比如MS-Access、DB2、MS SQL Server、Oracle、MySQL以及其他數(shù)據(jù)庫系統(tǒng)。
不幸地是,存在著很多不同版本的SQL語言,但是為了與ANSI標(biāo)準(zhǔn)相兼容,它們必須以相似的方式共同地來支持一些主要的關(guān)鍵詞(比如SELECT、UPDATE、INSERT、DELETE、WHERE等)。

  注釋:除了SQL標(biāo)準(zhǔn)以外,大部分SQL數(shù)據(jù)庫程序都擁有它們自己私有的擴(kuò)展。

 分類:

   DDL(Data Definition Language):數(shù)據(jù)定義語言,定義了對不同數(shù)據(jù)段,數(shù)據(jù)庫,列,表,索引,等數(shù)據(jù)庫對象。常用關(guān)鍵詞:creare、alter、drop。

   DCL(Data Control Language):數(shù)據(jù)控制語言,用于控制不同數(shù)據(jù)段直接的許可和訪問級別的語句,這些語句定義了數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和安全級別。常用的關(guān)鍵字是:grant,revoke等。

   DML(Data Manipulation Language):數(shù)據(jù)操作語言,用于增刪改查數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)庫完整性。常用的關(guān)鍵字是:insert、delete、update、select。

三、DDL

語法:

CREATE DATABASE dbname
例:創(chuàng)建數(shù)據(jù)庫test1,命令如下:

create database test1;
執(zhí)行結(jié)果如下圖所示:

Query OK, 1 row affected (0.24 sec) 可以分為3個部分

Query OK:表示上面的命令執(zhí)行成功
1 row affected:表示操作只影響了數(shù)據(jù)庫中一行的記錄
0.24 sec:記錄了操作執(zhí)行的時間

  查看系統(tǒng)中有哪些數(shù)據(jù)庫: show databases; 

  

information_schema:主要存儲系統(tǒng)中的一些數(shù)據(jù)庫對象信息,比如用戶表信息、列信息、權(quán)限信息、字符集信息、分區(qū)信息等。每個用戶都可以查看這個數(shù)據(jù)庫,但根據(jù)權(quán)限的不同看到的內(nèi)容不同。
performance_schema:MySQL5.5引入的系統(tǒng)庫,用于存儲系統(tǒng)性能相關(guān)的動態(tài)參數(shù)表。
sys:MySQL5.7引入的系統(tǒng)庫,本身不記錄系統(tǒng)數(shù)據(jù),基于information_schema和performance_schema之上,封裝了一層更加易于調(diào)優(yōu)和診斷的系統(tǒng)視圖。
mysql:存儲系統(tǒng)的用戶權(quán)限信息。
sakila和world:兩個為樣例數(shù)據(jù)庫。

  選擇數(shù)據(jù)庫:use dbname;

  查看數(shù)據(jù)庫下的表:show tables;

  刪除數(shù)據(jù)庫:drop dbname;

  

創(chuàng)建表

基本語法:

 1 CREATE TABLE tablename(
 2     column_name_1 column_type_1 constraints,
 3 
 4      column_name_2 column_type_2 constraints,
 5 
 6      ... ...
 7 
 8      column_name_n column_type_n constraints); 
 9 )
10 
11 中文翻譯:
12 
13 create table +自己的表名(
14 
15     字段名稱 字段數(shù)據(jù)類型 約束,
16 
17     字段名稱 字段數(shù)據(jù)類型 約束,
18 
19     字段名稱 字段數(shù)據(jù)類型 約束
20 
21 )

  primary key :主鍵約束 不能為空并且唯一

  not null :不能為空

  varchar():可變的字符串

  date :日期 年月日

  decimal :數(shù) (10,2) 保留幾位小數(shù)點(diǎn)

  int 整型

例:創(chuàng)建一個名稱為emp的表。表中包括ename(姓名)、hiredate(雇用日期)、sal(薪水)和deptno(部門編號)4個字段,字段類型分別為varchar(10)、date、decimal(10,2)、int(2)。

  查看表:desc tablename;

  

  查看創(chuàng)建表的sql語句:show create tablename /G; (/G使得記錄能夠按照字段豎向排列)

  

  刪除表:drop table tablename;

  修改表:alter table 表名 modify 字段名 數(shù)據(jù)類型; 

  

  增加表字段:alter table 表名 add 字段名 數(shù)據(jù)類型 約束;

  

  刪除表字段:alter table 表名 drop 字段名;

  

  修改表中字段名:alter table 表名 change 舊字段名 新字段名 數(shù)據(jù)類型;

  

  修改表中字段排列順序:alter table 表名 add|modify 字段名 數(shù)據(jù)類型 after 已有字段名; (修改或添加字段到指定字段的下面位置)

  

  修改表名:alter table tablename rename to 新表名;

  

四、DML

 1.增(insert):

基本語法:insert into 表名(字段名1,字段名2,......) values(值1,值2) ;

INSERT INTO tablename(field1,field2,...fieldn) VALUES(value1,value2,...,valuen);

  注意事項:

    可以不用指定列名,但是values后面應(yīng)該和字段順序一致。

    含可空的字段,非空但含有默認(rèn)值的字段以及自增字段,可以不在insert后的字段列表里出現(xiàn),values后面對應(yīng)字段的值。

  

2.改(update):

基本語法:update 表名 set 字段名1=值1,字段名2=值2 where條件

UPDATE tablename SET field1=value1,field2=value2,...fieldn=valuen [WHERE CONDITION];

同時更新多個表中數(shù)據(jù)

UPDATE t1,t2,...tn set t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION]

  注意:多表更新的語法更多地用于根據(jù)一個表的字段來動態(tài)地更新另一個表的字段。

  

 3.查(select):

基本語法:

SELECT * FROM tablename [WHERE CONDITION];
select 字段名,字段名.... from 表名 可以添加where+條件
其中”*“表示要將所有的記錄都選也來,也可以用逗號分割所有字段來代替。
查詢不重復(fù)的記錄

distinct關(guān)鍵字
條件查詢

where關(guān)鍵字
=、>、<、<=、>=、!=
and、or

  

總結(jié)

以上是生活随笔為你收集整理的Mysqlday01(Mysql简介,sql简介,分类)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。