一、什么是SQL?
- SQL:Structure Query Language(結(jié)構(gòu)化差U型你語言)。通過SQL操作數(shù)據(jù)(包括操作數(shù)據(jù)庫,操作表,操作數(shù)據(jù))
- SQL被美國國家標(biāo)準(zhǔn)局(ANSI)確定為關(guān)系型數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn),后來又被國際化標(biāo)準(zhǔn)組織(ISO)采納為關(guān)系數(shù)據(jù)庫語言的國際標(biāo)準(zhǔn)。
- 各個數(shù)據(jù)庫廠商都支持ISO的SQL標(biāo)準(zhǔn)。并在標(biāo)準(zhǔn)的基礎(chǔ)上做了自己的擴展。
二、SQL的分類
- Data Definition Language(DDL數(shù)據(jù)定義語言)如:操作數(shù)據(jù)庫,操作表
- Data Manipulation Language(DML數(shù)據(jù)操縱語言)如:對表中的記錄操作增刪改查
- Data Control Language(DCL數(shù)據(jù)控制語言)如:對用戶權(quán)限的設(shè)置
三、MySQL的語法規(guī)范與要求
- MySQL的SQL語法不區(qū)分大小寫,MySQL的關(guān)鍵字和函數(shù)名等不區(qū)分大小寫,但是對于數(shù)據(jù)值是否區(qū)分大小寫和字符集與校對規(guī)則有關(guān)。
- 命名時使用英文字母,數(shù)字及下劃線
- 不要使用MySQL的關(guān)鍵字來作為表名、字段名等,如果不小心使用,請在SQL語句中使用`引起來
- 數(shù)據(jù)庫和表名、字段名等對象名中間不要包含空格
- 同一個MySQL軟件中,數(shù)據(jù)庫不能同名,同一個庫中,表不能重名;同一個表中,字段不能重名。
- 標(biāo)點符號必須成對;必須在英文狀態(tài)下半角輸入方式;字符串和日期類型可以使用單引號'';列名的別名可以使用雙引號"",給表名取別名不要使用雙引號,取別名時as可以省略;如果列的別名沒有包含空格,可以省略雙引號,如果有空格雙引號不能省略。
- SQL腳本中可以添加注釋:單行注釋:#注釋內(nèi)容;--空格注釋內(nèi)容,其中--后面的空格必須有。多行注釋:/* 注釋內(nèi)容 */
四、DDL操作數(shù)據(jù)庫
4.1 創(chuàng)建數(shù)據(jù)庫
- 語法
create database 數(shù)據(jù)庫名 [character set 字符集] [collate 校對規(guī)則]
[]意思是可選參數(shù)的意思。字符集:是一套符號和編碼。
-- 創(chuàng)建一個名字為day01的數(shù)據(jù)庫,使用默認(rèn)的字符集和校對規(guī)則
CREATE DATABASE day01;
-- 創(chuàng)建一個名字為day01_2的數(shù)據(jù)庫,并且使用字符集gbk
CREATE DATABASE day01_2 CHARACTER SET gbk;
-- 也可以使用可視化工具直接創(chuàng)建數(shù)據(jù)庫
4.2 查看所有的數(shù)據(jù)庫
4.2.1 查看所有的數(shù)據(jù)庫
-- 3.查詢整個MYSQL服務(wù)器中的所有數(shù)據(jù)庫
SHOW DATABASES;
4.2.2 查看數(shù)據(jù)庫的定義結(jié)構(gòu)
- 語法
show create database 數(shù)據(jù)庫名;
-- 4.查看某個數(shù)據(jù)庫的結(jié)構(gòu)
SHOW CREATE DATABASE day01_2;
4.3 刪除數(shù)據(jù)庫
- 語法
drop database 數(shù)據(jù)庫名;
-- 2.刪除數(shù)據(jù)庫
DROP DATABASE day01_3;
4.4 修改數(shù)據(jù)庫
- 語法
alter database 數(shù)據(jù)庫名 character set 字符集;
-- 5.修改某個數(shù)據(jù)庫的字符集
ALTER DATABASE day01 CHARACTER SET UTF8;
注意:
- 是UTF8,不是UTF-8
- 不是修改數(shù)據(jù)庫名
4.5 其他操作
- 切換數(shù)據(jù)庫,選定哪一個數(shù)據(jù)庫
use 數(shù)據(jù)庫名;
在創(chuàng)建表之前一定要指定數(shù)據(jù)庫。
-- 6.指定使用那個數(shù)據(jù)庫
-- 因為以后要建表、操作表,需要先指定是操作哪個數(shù)據(jù)庫中的表
USE day01;
-- 7.查看當(dāng)前正在使用哪個數(shù)據(jù)庫
SELECT DATABASE();