❶ sql是什麼文件 mysql
您好,我來為您解答:
SQL 全名是結構化查詢語言(Structured Query Language),是用於資料庫中的標准數據查詢語言。
SQL文件一般用來保存SQL代碼
如果我的回答沒能幫助您,請繼續追問。
❷ MySQL SQL的基礎應用
SQL 基礎應用及information_schema
1.SQL(結構化查詢語句)介紹
SQL標准:SQL 92 SQL99
5.7版本後啟用SQL_Mode 嚴格模式
2.SQL作用
SQL 用來管理和操作MySQL內部的對象
SQL對象:
庫:庫名,庫屬性
表:表名,表屬性,列名,記錄,數據類型,列屬性和約束
3.SQL語句的類型
DDL:數據定義語言 data definition language
DCL:數據控制語言 data control language
DML:數據操作語言 data manipulation language
DQL:數據查詢語言 data query language
4.數據類型
4.1 作用:
控制數據的規范性,讓數據有具體含義,在列上進行控制
4.2.種類
4.2.1 字元串
char(32)
定長長度為32的字元串。存儲數據時,一次性提供32字元長度的存儲空間,存不滿,用空格填充。
varchar(32):
可變長度的字元串類型。存數據時,首先進行字元串長度判斷,按需分配存儲空間
會單獨佔用一個位元組來記錄此次的字元長度
超過255之後,需要兩個位元組長度記錄字元長度。
面試題:
1. char 和varchar的區別?
(1) 255 65535
(2) 定長(固定存儲空間) 變長(按需)
2. char和varchar 如何選擇?
(1) char類型,固定長度的字元串列,比如手機號,身份證號,銀行卡號,性別等
(2) varchar類型,不確定長度的字元串,可以使用。
3. enum 枚舉類型
enum('bj','sh','sz','cq','hb',......)
數據行較多時,會影響到索引的應用
注意:數字類禁止使用enum類型
4.2.2 數字
1. tinyint
2. int
4.2.3 時間
1. timestamp
2. datetime
4.2.4 二進制
5. 表屬性
存儲引擎 :engine = InnoDB
字元集 :charset = utf8mb4
utf8 中文 三個位元組長度
utf8mb4 中文 四個位元組長度 才是真正的utf8
支持emoji字元
排序規則(校對規則) collation
針對英文字元串大小寫問題
6. 列的屬性和約束
6.1 主鍵: primary key (PK)
說明:
唯一
非空
數字列,整數列,無關列,自增的.
聚集索引列?
是一種約束,也是一種索引類型,在一張表中只能有一個主鍵。
6.2 非空: Not NULL
說明:
我們建議,對於普通列來講,盡量設置not null
默認值 default : 數字列的默認值使用0 ,字元串類型,設置為一個nil null
6.3 唯一:unique
不能重復
6.4 自增 auto_increment
針對數字列,自動生成順序值
6.5 無符號 unsigned
針對數字列
6.6 注釋 comment
7. SQL語句應用
7.1 DDL:數據定義語言
7.1.1 庫
(1)建庫
mysql> create database oldguo charset utf8mb4;
mysql> show databases;
mysql> show create database oldguo;
(2)改庫
mysql> alter database oldguo1 charset utf8mb4;
(3)刪庫
mysql> drop database oldguo1;
7.1.2 表
(0)建表建庫規范:
1、庫名和表名是小寫字母
為啥?
開發和生產平台可能會出現問題。
2、不能以數字開頭
3、不支持- 支持_
4、內部函數名不能使用
5、名字和業務功能有關(his,jf,yz,oss,erp,crm...)
(1)建表
create table oldguo (
ID int not null primary key AUTO_INCREMENT comment '學號',
name varchar(255) not null comment '姓名',
age tinyint unsigned not null default 0 comment '年齡',
gender enum('m','f','n') NOT null default 'n' comment '性別'
)charset=utf8mb4 engine=innodb;
(2)改表
1. 改表結構
-- 例子:
-- 在上表中添加一個手機號列15801332370.(重點*****)
-- alter table oldguo add telnum char(11) not null unique comment '手機號';
-- 練習:
-- 添加一個狀態列
ALTER TABLE oldguo ADD state TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '狀態列';
-- 查看列的信息
DESC oldguo;
-- 刪除state列(不代表生產操作)
ALTER TABLE oldguo DROP state;
-- online-DDL : pt-osc (自己研究下***)
-- 在name後添加 qq 列 varchar(255)
ALTER TABLE oldguo ADD qq VARCHAR(255) NOT NULL UNIQUE COMMENT 'qq' AFTER NAME;
-- 練習 在name 之前添加wechat列
ALTER TABLE oldguo ADD wechat VARCHAR(255) NOT NULL UNIQUE COMMENT '微信' AFTER ID;
-- 在首列上添加 學號列:sid(linux58_00001)
ALTER TABLE oldguo ADD sid VARCHAR(255) NOT NULL UNIQUE COMMENT '學生號' FIRST;
-- 修改name數據類型的屬性
ALTER TABLE oldguo MODIFY NAME VARCHAR(128) NOT NULL ;
DESC oldguo;
-- 將gender 改為 gg 數據類型改為 CHAR 類型
ALTER TABLE oldguo CHANGE gender gg CHAR(1) NOT NULL DEFAULT 'n' ;
DESC oldguo;
7.2 DML 數據操作語言
7.2.1 INSERT
--- 最簡單的方法插入數據
DESC oldguo;
INSERT INTO oldguo VALUES(1,'oldguo','22654481',18);
--- 最規范的方法插入數據(重點記憶)
INSERT INTO oldguo(NAME,qq,age) VALUES ('oldboy','74110',49);
--- 查看錶數據(不代表生產操作)
SELECT * FROM oldguo;
7.2.2 UPDATE (注意謹慎操作!!!!)
UPDATE oldguo SET qq='123456' WHERE id=5 ;
7.2.3 DELETE (注意謹慎操作!!!!)
DELETE FROM oldguo WHERE id=5;
7.2.4 生產需求:將一個大表全部數據清空
DELETE FROM oldguo;
TRUNCATE TABLE oldguo;
DELETE 和 TRUNCATE 區別
1. DELETE 邏輯逐行刪除,不會降低自增長的起始值。
效率很低,碎片較多,會影響到性能
2. TRUNCATE ,屬於物理刪除,將表段中的區進行清空,不會產生碎片。性能較高。
7.2.5 生產需求:使用update替代delete,進行偽刪除
1. 添加狀態列state (0代表存在,1代表刪除)
ALTER TABLE oldguo ADD state TINYINT NOT NULL DEFAULT 0 ;
2. 使用update模擬delete
DELETE FROM oldguo WHERE id=6;
替換為
UPDATE oldguo SET state=1 WHERE id=6;
SELECT * FROM oldguo ;
3. 業務語句修改
SELECT * FROM oldguo ;
改為
SELECT * FROM oldguo WHERE state=0;
❸ SQL資料庫和MYSQL資料庫是不是一回事
不是
原本所有基於SQL查詢的關系型資料庫都可叫做SQL資料庫,是個統稱
但由於微軟有數據可叫SQL
server,所以SQL資料庫也經常成了SQL
server的特稱
MYSQL資料庫是一種開源免費的關系型資料庫,其實也是SQL資料庫的一種
它在linux環境被廣泛使用,許多小網站也使用它
❹ MySQL的SQL語言叫什麼
mysql中的sql語言就叫sql語言,中文名叫結構化查詢語言。
簡介:
結構化查詢語言(Structured Query Language)簡稱SQL(發音:/ˈes kjuː ˈel/ "S-Q-L"),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
1986年10月,美國國家標准協會對SQL進行規范後,以此作為關系式資料庫管理系統的標准語言(ANSI
X3.
135-1986),1987年得到國際標准組織的支持下成為國際標准。不過各種通行的資料庫系統在其實踐過程中都對SQL規范作了某些編改和擴充。所以,實際上不同資料庫系統之間的SQL不能完全相互通用。
結構化查詢語言包含6個部分:
一:數據查詢語言(DQL:Data Query Language):
其語句,也稱為「數據檢索語句」,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語句一起使用。
二:數據操作語言(DML:Data Manipulation Language):
其語句包括動詞INSERT,UPDATE和DELETE。它們分別用於添加,修改和刪除表中的行。也稱為動作查詢語言。
三:事務處理語言(TPL):
它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:數據控制語言(DCL):
它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。
五:數據定義語言(DDL):
其語句包括動詞CREATE和DROP。在資料庫中創建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人資料庫目錄中獲得數據有關的保留字。它也是動作查詢的一部分。
六:指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
❺ MYSQL與SQL的區別
1.根本的區別是它們遵循的基本原則
二者所遵循的基本原則是它們的主要區別:開放vs保守。SQL伺服器的狹隘的,保守的存儲引擎與MySQL伺服器的可擴展,開放的存儲引擎絕然不同。雖然你可以使用SQL伺服器的Sybase引擎,但MySQL能夠提供更多種的選擇,如MyISAM, Heap, InnoDB, and Berkeley DB。MySQL不完全支持陌生的關鍵詞,所以它比SQL伺服器要少一些相關的資料庫。同時,MySQL也缺乏一些存儲程序的功能,比如MyISAM引擎聯支持交換功能。
2.性能:先進的MySQL
純粹就性能而言,MySQL是相當出色的,因為它包含一個預設桌面格式MyISAM。MyISAM 資料庫與磁碟非常地兼容而不佔用過多的CPU和內存。MySQL可以運行於Windows系統而不會發生沖突,在UNIX或類似UNIX系統上運行則更好。你還可以通過使用64位處理器來獲取額外的一些性能。因為MySQL在內部里很多時候都使用64位的整數處理。Yahoo!商業網站就使用MySQL作為後台資料庫。
當提及軟體的性能,SQL伺服器的穩定性要比它的競爭對手強很多。但是,這些特性也要付出代價的。比如,必須增加額外復雜操作,磁碟存儲,內存損耗等等。如果你的硬體和軟體不能充分支持SQL伺服器,我建議你最好選擇其他如DBMS資料庫,因為這樣你會得到更好的結果。
3.發行費用:MySQL不全是免費,但很便宜
當提及發行的費用,這兩個產品採用兩種絕然不同的決策。對於SQL伺服器,獲取一個免費的開發費用最常的方式是購買微軟的Office或者Visual Studio的費用。但是,如果你想用於商業產品的開發,你必須還要購買SQL Server Standard Edition。學校或非贏利的企業可以不考慮這一附加的費用。
4.安全功能
MySQL有一個用於改變數據的二進制日誌。因為它是二進制,這一日誌能夠快速地從主機上復制數據到客戶機上。即使伺服器崩潰,這一二進制日誌也會保持完整,而且復制的部分也不會受到損壞。
在SQL伺服器中,你也可以記錄SQL的有關查詢,但這需要付出很高的代價。
安全性
這兩個產品都有自己完整的安全機制。只要你遵循這些安全機制,一般程序都不會出現什麼問題。這兩者都使用預設的IP埠,但是有時候很不幸,這些IP也會被一些黑客闖入。當然,你也可以自己設置這些IP埠。
恢復性:先進的SQL伺服器
恢復性也是MySQL的一個特點,這主要表現在MyISAM配置中。這種方式有它固有的缺欠,如果你不慎損壞資料庫,結果可能會導致所有的數據丟失。然而,對於SQL伺服器而言就表現得很穩鍵。SQL伺服器能夠時刻監測數據交換點並能夠把資料庫損壞的過程保存下來。
供你參考,祝你好運!!!
❻ MySQL和sql的區別有哪些
這兩者是兩個類型的東西
mysql是一種開源資料庫,存放數據用的
sql是一種語句,用來操作資料庫的裡面的數據的,不僅可以操作mysql,還可以操作sql Server ,Oracle等等各種類型的資料庫
❼ mysql和sql一樣嗎
MySQL是在90年代中期開發的。是市場上第一個可用的開源資料庫之一,今天有很多MySQL的替代變種但是,變體之間的差異並不重要因為它們使用相同的語法,並且基本功能也保持不變。
mysql和sql一樣的區別
MySQL是一種RDBMS,它允許保持資料庫中存在的數據MySQL的發音為「我的SQL」,但它也被稱為「我的續集」它以聯合創始人Michael,Widenius的女兒的名字命名MySQL提供對資料庫的多用戶訪問,在Linux發行版之上,此RDBMS系統與PHP和Apache,Web、Server的組合一起使用MySQL使用SQL語言來查詢資料庫。
SQL是一種用於操作資料庫的語言MySQL是市場上第一個可用的開源資料庫之一SQL用於訪問,更新和操作資料庫中的數據MySQL是一種RDBMS,它允許保持資料庫中存在的數據SQL是結構化查詢語言MySQL是一個使用MYSQL存儲,檢索修改和管理資料庫的RDBMS、SQL是一種查詢語言,而MYSQL是資料庫軟體。
❽ sql和mysql的區別是什麼
sql和mysql的區別是:
1、本質上:
SQL,是一種資料庫語言,有標準的,相當於C語言;而MySQL是DBMS,資料庫管理系統,是一個資料庫軟體或應用程序。
2、目的上:
SQL用於訪問,更新和操作資料庫中的數據;而MySQL是一種RDBMS,它允許保持資料庫中存在的數據。
3、更新上:
SQL的語言是固定的,命令保持不變;而MySQL可以獲得頻繁的更新。
4、使用上:
要學習SQL語言了才能有效地使用它;而,MySQL可以通過下載和安裝就可輕松獲得並使用。