1. 程式人生 > >MySQL操作語句

MySQL操作語句

建庫 man || spa 圖形界面 範圍查詢 位置 空格 avi

* mysql的數據操作語句(通過dos命令語句)
1. 通過windows+r輸入cmd打開dos命令窗口,輸入命令‘net start mysql’啟動你的電腦mysql服務。
2. 輸入‘mysql -uroot -p××××’(u和p之後沒有空格)進入自己的mysql管理模式,其中u代表的是user,即你的登錄身份,管理員一般為root。其中p代表password,即你所登錄身份的密碼,但是直接這樣輸入密碼的話,密碼會以明文顯示,有可能被周圍不懷好意的人看到。所以建議輸入‘mysql -uroot -p’命令,系統會之後讓你輸入密碼。此時密碼會以密文的形式顯示在命令窗口,減小了被別人獲取的風險。
3. 如果賬戶和密碼正確,則會登錄進mysql管理模式,此時命令行會變為:mysql>,這時就可以輸入對數據庫的操作命令了。
4. 退出mysql;quit或者exit,或者使用快捷鍵Ctrl+C也可以快速退出
* SQL語句分類:
1. Data Definition Language (DDL 數據定義語言) 如:建庫,建表
2. Data Manipulation Language(DML 數據操縱語言), 如:對表中的記錄操作增刪改
3. Data Query Language(DQL 數據查詢語言),如:對表中的查詢操作
4. Data Control Language(DCL 數據控制語言),如:對用戶權限的設置
* MySQL語法
1. 如果實在可視化圖形界面,如SQLyog或者Navicat等軟件中,可以在命令結尾不加分好‘;’。
2. 如果在dos命令中,需要在每條SQL操作語句後加‘;’以執行。
3. mySQL註釋有三種:
* ‘--’+空格為單行註釋
* ‘/* */’為多行註釋
* ‘#’也是註釋格式
* DDL數據庫操作語句
* 創建數據庫
* CREATEE DATABASE 數據庫名;
* 判斷數據庫存不存在,不存在則創建,存在也會執行而不會報錯 CREATE DATABASE IF NOT EXUSTS 數據庫名
* 創建數據庫並制定字符集 CREATE DATABASE 數據庫名 CHARACTER SET 字符集;(字符集是指utf-8,gbk等,utf-8在dos命令中為utf8)
* 例如:-- 直接創建數據庫 db1

create database db1;

-- 判斷是否存在,如果不存在則創建數據庫 db2

create database if not exists db2;

-- 創建數據庫並指定字符集為 gbk

create database db3 default character set gbk;
* 查看數據庫
* 查看所有存在的數據庫: show databases;
* 查看某個數據庫的創建信息: show create database 數據庫名
* 修改數據庫
* 修改數據庫默認的字符集: alter database 數據庫名 default character set 字符集;
* 刪除數據庫
* 刪除指定數據庫: drop database 數據庫名;
* 使用數據庫
* 查看正在使用的數據庫: select database();
* 使用/切換數據庫: use 數據庫名;
* DDL操作表結構
1. 創建表

1.1 創建表:

CREATE TABLE 表名 (
字段名 1 字段類型 1,
字段名 2 字段類型 2
);
2. 常用數據類型
* int 整型
* double 浮點型
* varchar 字符類型
* date 日期類型
3. 詳細數據類型
* 整數
* tinyInt 微整型:很小的整數(占 8 位二進制)
* smallint 小整型:小的整數(占 16 位二進制)
* mediumint 中整型:中等長度的整數(占 24 位二進制)
* int(integer) 整型:整數類型(占 32 位二進制)
* 小數
* float 單精度浮點數,占 4 個字節
* double 雙精度浮點數,占 8 個字節
* 日期
* time 表示時間類型
* date 表示日期類型
* datetime 同時可以表示日期和時間類型
* 字符串
* char(m) 固定長度的字符串, 無論使用幾個字符都占滿全部, M 為 0~255 之間的整數
* varchar(m) 可變長度的字符串, 使用幾個字符就占用幾個, M 為 0~65535 之間的整數
* 大二進制
* tinyblob Big Large Object 允許長度 0~255 字節
* blob 允許長度 0~65535 字節
* mediumblob 允許長度 0~167772150 字節
* longblob 允許長度 0~4294967295 字節
* 大文本
* tinytext 允許長度 0~255 字節
* text 允許長度 0~65535 字節
* mediumtext 允許長度 0~167772150 字節
* longtext 允許長度 0~4294967295 字節
4. 查看表
* 查看數據庫中的所有表:show tables;
* 查看表結構:desc 表名
* 查看創建表的SQL語句:show create table 表名;
5. 快速創建一個表結構相同的表
* create table 新表名 like 舊表名;
6. 刪除表
* drop table 表名;
* 看表是否存在,若存在則刪除表:drop table if exists 表名;
7. 修改表結構
* 添加列
* 給表添加一列:alter table 表名 add 列名 類型;
* 給表最前面添加一列:alter table 表名 add 列名 類型 first;
* 給表某個字段後添加一列:alter table 表名 add 列名 類型 after 字段名;
* 註意:沒有給表某個字段前添加一列的方法。
* 修改列類型
* alter table 表名 modify 列名 新類型;
* 修改列名
* alter table 表名 change 舊列名 新列名 類型;
* 刪除列
* alter table 表名 drop 列名;
* 修改表名
* rename table 舊表名 to 新表名;
* 修改字符集
* alter table 表名 character set 字符集;
* DML操作表中的數據(用於對表中進行增刪改查)
1. 插入記錄
* insert into 表名(字段名) values(字段對應值);
* 如果不寫字段名,則認為是插入全字段數據
* 如果想單獨插入指定字段數據,則只寫指定插入數據的字段名,這裏需要註意的是,若表中包含不能為空的字段,如主鍵等,則在插入數據的時候必須插入必須字段。
2. DOS命令行解決中文顯示亂碼問題:
show variables like ‘character%‘;

set character_set_client=gbk;

set character_set_connection=gbk;

set character_set_results=gbk;
* 每次退出DOS命令窗口以後會失效,再次進入需要重新設置
3. insert的註意事項
* 插入的數據應與字段的數據類型相同
* 數據的大小應在列的規定範圍內,例如:不能將一個長度為 80 的字符串加入到長度為 40 的列中。
* 在 values 中列出的數據位置必須與被加入的列的排列位置相對應。在 mysql 中可以使用 value, 但不建議使用,功能與values 相同。
* 字符和日期型數據應包含在單引號中。 MySQL 中也可以使用雙引號做為分隔符。
* 不指定列或使用 null,表示插入空值。
4. 蠕蟲復制(將一張表的數據復制到另一張表中)
* insert into 表名1 select * from 表名2;
* 只復制部分列:insert into 表名1(字段名1,字段名2) select 字段名1,字段名2 from 表名2;
5. 更新表記錄
* 不帶條件更新:update 表名 set 字段名=值;(修改所有的行)
* 帶條件更新:update 表名 set 字段名=值 where 字段名=值
* 刪除表記錄:delete from 表名 where 字段名=值;
* 註意,如果使用delete from 表名;這會刪除表中蓑鲉記錄
* 也可以使用truncate刪除表中所有記錄:truncate table 表名
* truncate 相當於刪除表的結構,再創建一張表。
* DQL查詢表中的數據
1. 簡單查詢
* 查詢表中所有數據:select * from 表名;
* 查詢指定字段:select 字段名1,字段名2,... from 表名
2. 指定列別名進行查詢(並不會修改原表列名,顯示的是修改的名)
* 對列指定別名:SELECT 字段名1 AS 別名, 字段名2 AS 別名... FROM 表名;
* 對列和表都使用別名:SELECT 字段名1 AS 別名, 字段名2 AS 別名... FROM 表名 AS 表別名;
3. 清除重復值
* 查詢指定結果,不出現重復數據:select distinct 字段名 from 表名;
4. 查詢結果參與運算
* 某列數據和固定值運算:select 列名+固定值 from 表名;
* 某列數據和其他列數據參與運算:select 列名1+列名2 from 表名;
5. 條件查詢
* select 字段名 from 表名 where 條件;
* 運算符
* >、<、<=、>=、=、<> : <>在 SQL 中表示不等於,在 mysql 中也可以使用!=,沒有==
* between...and:在一個範圍之內,如: between 100 and 200相當於條件在 100 到 200 之間,包頭又包尾
* in(集合):集合表示多個值,使用逗號分隔
* like‘張%‘:模糊查詢,以張開頭的數據
* like‘%張‘:模糊查詢,以張結尾的數據
* like‘%張%‘:模糊查詢,中間含張的數據
* like‘_張‘:第二個字為張的兩個字的數據
* is null:查詢某一列為 NULL 的值,註:不能寫=NULL
* 邏輯運算符
* and 或 && : 與,SQL 中建議使用前者,後者並不通用。
* or 或 || : 或。
* not 或 ! : 非。
* in關鍵字
* SELECT 字段名 FROM 表名 WHERE 字段 in (數據 1, 數據 2...);
* in 裏面的每個數據都會作為一次條件,只要滿足條件的就會顯示
* 範圍查詢
* BETWEEN 值 1 AND 值 2
* 表示從值 1 到值 2 範圍,包頭又包尾
* 比如: age BETWEEN 80 AND 100 相當於: age>=80 && age<=100
* like關鍵字
* LIKE 表示模糊查詢
* SELECT * FROM 表名 WHERE 字段名 LIKE ‘通配符字符串‘;
* MySQL通配符
* % : 匹配任意多個字符串
* _ : 匹配一個字符

MySQL操作語句