1、SQL語句的語言特色mysql
2、SQL語句的語句結構
正則表達式
一、數據定義語言(DDL) : Data Defination Language;
sql
用來定義數據對象的,包含CREATE(增)、DROP(刪)、ALTER(改)語句。數據庫
二、數據操做語言(DML):Data Manapulation Language;bash
此語句主要是操做數據而不是操做對象,包含INSERT(插入), DELETE(刪除), UPDATE(更新)語句。服務器
三、數據查詢語言(DQL): Data Query Language;session
數據檢索語句,以從表中獲取相關數據信息,SELECT(查詢)語句。ide
四、數據控制語言(DCL): Data Control Languageui
用於對用戶的受權管理的語句,包含GRANT(受權), REVOKE(收回權限)語句。spa
3、SQL語句中的數據類型
一、字符型 ,以字符格式存儲
CHAR(n) : 定長字符 VARCHAR(n) :可變長字符 BINARY(n) :二進制字符 VARBINARY(n) :可變長二進制字符 TEXT :文本型數據 BLOB :二進制大對象
修飾符:NOT NULL , DEFAULT ' '
二、數值型 ,以數值格式存儲
1)、精確數值型
① 整型數據
TINYINT: 1byte, -128, 127 0,255 微××× SMALLINIT: 2bytes, -32768, 32767 0,65535 小××× MEDIUMINT: 3bytes, 0,2^24 中××× INT: 4bytes, 0,2^32 整型 BIGINT: 8bytes, 0,2^64 大整型
修飾符:NOT NULL, DEFAULT '', UNSIGNED, AUTO_INCREMENT
② 浮點型數據
FLOAT 單精度 DOUBLE 雙精度 REAL
修飾符:NOT NULL, DEFAULT ' '
三、日期時間型
DATE TIME DATETIME YEAR(2), YEAR(4) TIMESTAMP
修飾符:NOT NULL, DEFAULT ' '
四、布爾型 ,1爲真,0爲假
五、內置類型
ENUM, SET
修飾符:NOT NULL, DEFAULT ' '
4、mysql客戶端經常使用的命令
不用分號結尾
一、quit | \q :退出mysql;
二、delimier | \d : 如何改變語句結束符;
三、go | \g : 不管結束符是什麼都送到服務器端;
四、use | \u : 設定默認數據庫;
五、ego | \G : 結果取回,縱向顯示;
六、system | \! : 執行系統命令而不用退出當前mysql
5、mysql服務端的相關命令
必須使用分號結尾
一、 顯示服務器參數變量,有些變量的值能夠修改,可以改變mysql的工做特性,
有些能夠動態調整,即刻生效;另一些只能修改配置文件後,重啓生效;
mysql> show [global|session] variables;
二、顯示服務器狀態變量,記錄了當前包括過去的時間內mysql的運行統計數據。
mysql> show [global|session] status;
三、顯示所支持的全部字符集;
mysql> SHOW CHARACTER SET;
四、顯示全部字符集的排序規則
mysql> SHOW COLLATION;
五、顯示當前mysql版本號
mysql> SELECT VERSION();
六、顯示有權限訪問的全部數據庫
mysql> SHOW DATABASES;
七、顯示默認數據庫
mysql> SELECT DATABASE();
八、建立名爲DB_NAME的數據庫
mysql> CREATE DATABASE DB_NAME;
九、刪除名爲DB_NAME的數據庫
mysql> DROP DATABASE DB_NAME;
6、mysql的執行方式
一、交互式方式
① -h | --host : 遠程鏈接主機
② -u | --user : 指定用戶
③ -p | --password :輸入密碼
④ -D | --database : 登陸以後,直接設定默認庫
⑤ -e 'SQL_Statement;' : 不用登陸而是鏈接後,輸入命令,直接取回結果
二、批處理方式
使用sql腳本
mysql OPTIONS < script.sql mysql> source /path/to/script.sql
7、用戶管理
一、建立用戶
mysql>CREATE USER username@host [IDENTIFIED BY 'password'];
二、用戶或主機可使用通配符
%:匹配任意長度的任意字符
_: 匹配任意單個字符
三、用戶受權
mysql>GRANT ALL PRIVILEGES ON dbname.tablename TO username@host [IDENTIFIED BY 'password'];
四、修改用戶密碼
mysql> SET PASSWORD FOR username@host=PASSWORD('password');
五、刪除用戶
mysql>DROP USER username@host;
8、關係數據型數據庫
一、主鍵 primary key
不能爲空,不能重複,唯一;
二、唯一鍵 uniq key
能夠爲空,唯一;
三、外鍵 foreign key
引用性約束
四、檢查性約束
9、表管理
一、建立表
mysql>CREATE TABLE tb_name (col1 defination, col2 defination, ..., key defination);
二、刪除表
mysql>DROP TABLE tb_name;
10、SELECT語句用法
mysql> SELECT 字段 FROM 表 WHERE;
一、比較運算:>,<,>=,<=,=,!=
二、通配符:LIKE
% 任意長度的任意字符
_ 任意單個字符
三、RLIKE :支持正則表達式
11、DML 數據操做語言的用法
一、INSERT 插入語句用法
mysql> INSERT INTO 表 字段 VALUES;
二、UPDATE 更新語句用法
mysql> UPDATE 表名 SET 字段名=值 WHERE;
三、DELETE 刪除語句用法
mysql> DELETE FROM 表名 WHERE 條件
實戰案例
MySQL基礎操做練習(所屬的庫叫作mytestdb):
一、新建以下表(包括結構和內容):
ID Name Age Gender Course
1 Ling Huchong 24 Male Hamogong
2 Huang Rong 19 Female Chilian Shenzhang
3 Lu Wushaung 18 Female Jiuyang Shenggong
4 Zhu Ziliu 52 Male Pixie Jianfa
5 Chen Jialuo 22 Male Xianglong Shiba Zhang
完成以下操做
(1)找出性別爲女性的全部人;
(2)找出年齡大於20的全部人;
(3)修改Zhu Ziliu的Course爲Kuihua Baodian;
(4)刪除年齡小於等於19歲的全部人;
(5)建立此表及所屬的庫;
(6)受權給testuser對testdb庫有全部訪問權限;
mysql> CREATE DATABASE mytestdb use mytestdb myaql> CREATE TABLE students (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, Name CHAR(30) NOT NULL UNIQUE KEY, Age TINYINT UNSIGNED, Gender CHAR(1) DEFAULT 'M', Course VARCHAR(50) NOT NULL); mysql> INSERT students (Name,Age,Gender,Course)VALUES('Ling Huchong',24,'M','Hamogong'), ('Huang Rong',19,'F','Chilian Shenzhang'), ('Lu Wushuang',18,'F','Jiuying Shengong'), ('Zhu Ziliu',52,'M','Pixie Jianfa'), ('Chen Jialuo',22,'M','Xianglong Shiba Zhang'); mysql> SELECT name FROM students WHERE Gender='Female'; mysql> SELECT name FROM students WHERE Age>20; mysql> UPDATE students SET Course='Kuihua Baodian' WHERE name='Zhu Ziliu'; mysql> DELETE FROM students WHERE Age<=19; mysql> GRANT ALL ON testdb.* TO 'testuser'@'%';