標籤:知識 定序 man 關鍵字 服務 lang 時間類 font null
SQL概述
SQL:Structure Query Language。(結構化查詢語言 (SQL))
SQL的分類
DDL**(Data Definition Language):資料定義語言 (Data Definition Language),用來定義資料庫物件:庫、表、列等;
CREATE、ALTER、DROP
DML***(Data Manipulation Language):資料操作語言,用來操作資料庫記錄(資料);
INSERT、UPDATE、DELETE
DCL(Data Control Language):資料控制語言,用來定義存取權限和安全層級;
DQL*****(Data Query Language):資料查詢語言,用來查詢記錄(資料)。
SELECT
*注意:sql語言以;結尾
DDL:定義資料庫、表、列等
使用的關鍵字:create、alter、drop
操作資料庫
建立
create database mydb1; --直接建立資料庫,使用的是預設的編碼
create database mydb2 character set gbk; --指定編碼
create database mydb3 character set gbk collate gbk_chinese_ci; --指定編碼以及使用的定序
查詢
查看當前資料庫伺服器中的所有資料庫
show databases;
查看前面建立的mydb2資料庫的定義資訊
show create database mydb2;
刪除前面建立的mydb3資料庫
drop database mydb3;
修改
查看伺服器中的資料庫,並把mydb2的字元集修改為utf8;
alter database mydb2 character set utf8;
刪除
drop database mydb3;
操作資料表
*建立表的文法:
create table 表名(
欄位1 欄位類型,
欄位2 欄位類型,
...
欄位n 欄位類型
);
*常用資料類型:
int:整型
double:浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值為999.99;
char:固定長度字串類型;char(10) ‘abc ‘ ---長度最大為65535
varchar:可變長度字串類型;varchar(10) ‘abc‘ ---長度最大為65535
text:字串類型; ---最大容許的長度為4M
blob:位元組類型;
date:日期類型,格式為:yyyy-MM-dd; ‘2016-12-13‘
time:時間類型,格式為:hh:mm:ss
timestamp:時間戳記類型 yyyy-MM-dd hh:mm:ss 會自動賦值,截止2023年;
datetime:日期時間類型 yyyy-MM-dd hh:mm:ss
*修改表結構的文法
修改表結構使用alter table,修改表結構包括增加列定義、修改列定義、刪除列、重新命名列等操作。
①增加列定義的文法如下:
alter table 表名
add
(
#可以有多個列定義
column_name1 datatype [default expr],
...
);
②修改列定義的文法如下:
alter table 表名
modify column_name datatype;
③從資料表中刪除列的文法:
alter table 表名
drop column_name;
④重新命名資料表的文法格式如下:
alter table 表名
rename to 表名;
⑤MySQL為alter table提供了change選項,該選項可以改變列名。change選項的文法如下:
alter table 表名
change old_column_name new_column_name type;
⑥刪除表的文法:
drop table 表名;
DML操作(重要)
查詢表中所有資料
SELECT*FROM 表名;
DML是對表中的資料進行增、刪、改的操作。不要與DDL混淆。
INSERT、UPDATE、DELETE
小知識:
在mysql中,字串類型和日期類型都要用單引號括起來。如 ‘tom‘ ‘2015-09-04‘
空值:null
插入操作:INSERT
文法:INSERT INTO 表名(列名1 , 列名2 , ...) VALUES(列值1 , 列值2 , ...);
注意:列名與列值的類型、個數、順序要一一對應。
可以把列名當做java中的形參,吧列值當做實參。
值不要超出列定義的長度。
如果插入空值,請示null
插入的日期和字元一樣,都要使用單引號括起來。
如果每個欄位都有值,可簡寫為:
INSERT INTO 表名 VALUES(列值1 , 列值2 , ...);
批量插入:
INSERT INTO emp VALUES
(1,‘zs‘,‘m‘,‘2015-09-01‘,10000,‘2015-09-01‘,NULL),
(2,‘li‘,‘m‘,‘2015-09-01‘,10000,‘2015-09-01‘,NULL),
(3,‘ww‘,‘m‘,‘2015-09-01‘,10000,‘2015-09-01‘,NULL);
修改操作 UPDATE
文法:UPDATE 表名 SET 列名 1=列值 1 , 列名 2=列值 2 , ... WHERE 列名=值 -- WHERE後面跟的是一個條件,滿足條件則修改,否則不修改。
如:UPDATE emp SET salary=salary+1000 WHERE NAME=‘李四‘;
刪除操作 DELETE
文法:DELETE FROM 表名; -- 刪除表中所有記錄
-- 逐條刪除表中記錄,刪除速度慢
--刪除的資料可以恢複
TRUNCATE TABLE 表名 -- 刪除速度快,因為它先把整個表刪除,再建立一個完全一樣的空表
--刪除的資料不能回複
DELETE FROM 表名 WHERE 列名=值; -- 刪除指定記錄, WHERE後面跟的是一個條件,滿足條件則刪除,否則不刪除。
MySQL基本操作