1. 程式人生 > >MySql(一):基本操作

MySql(一):基本操作

cts variables 所有 control 總成績 姓名 rim table 插入

  sql語句其實不難,尤其對於那些英語稍好一些的人來說!

最最最重要的就是搞清楚sql語句的執行順序!!!數據就像沙子, 語句就是篩子, 沙子按照順序經過給定的篩子,留下來的就是你要的!!!

並不是寫在前面的就先執行!!! 如下:

SELECT *, SUM(pnum) ‘商品總數量‘ (4)

FROM products (1)

GROUP BY con (2)

HAVING SUM(pnum) > 200; (3)

這句sql語句其實是先執行 (1) FROM products 從products表中篩選所有數據

再執行(2) GROUP BY con 將數據按照con字段進行分組

再執行(3) HAVING SUM(pnum) > 200 篩選出pnum總數大於200的分組

最後執行(4) SELECT * , SUM(pnum) 將層層過濾的數據顯示出來

註意: 頂哥較懶, 下文的sql語句統統小寫啦

如遇諸如 : Incoreect string value : ..... 之類的報錯請通過以下sql語句查看自己的數據庫默認編碼是否和輸入環境的編碼一致:

SHOW VARIABLES LIKE ‘character%‘;

l 數據定義語言:簡稱DDL(Data Definition Language),用來定義數據庫對象:數據庫, 表, 列等. 關鍵字: create , alter , drop 等

l 數據操作語言:簡稱 DML(Data Manipulation Language), 用來對數據庫中表的記錄進行更新. 關鍵字:insert , delete, update等

l 數據控制語言:簡稱 DCL(Data Control Language), 用來定義數據庫的訪問權限和安全級別,及創建用戶

l 數據查詢語言:簡稱DQL(Data Query Language), 用來查詢數據庫中表的記錄. 關鍵字:select, from, where 等

DDL --database相關操作

create database demo; # 創建名為demo的數據庫(默認編碼)

create database if not exists demo; # 不存在則創建demo數據庫

create database demo character set ‘gbk’; # 創建名為demo gbk編碼的數據庫

? show databases; # 列出mysql服務器中所有的數據庫

? show create database demo; # 查看demo數據庫的定義信息

? crop database demo; # 刪除數據庫demo

? select database(); # 查看正在使用的數據庫

? use demo; # 使用demo 數據庫

DDL—table相關操作

? create table demo( # 創建demo表, 指定 id 字段為主鍵約束,

? id int primary key, # name 字段為非空約束

? name varchar(12) not null

? );

? create table demo1 like demo; # 創建demo1表,表結構和demo表相同

? show tables ; # 查看數據庫中所有的表

? desc demo; # 查看demo表的結構(Tips:為何是desc? describe是秒速的意思!

? drop table demo; # 刪除demo表

? drop table if exists demo; # demo表存在則刪除

? alter table demo add address varchar(20); # 為demo表增加地址字段

alter table demo modify address varchar(30); # 修改表中字段的類型長度

? alter table demo change address addr varchar(30); # 修改表中字段名

? alter table demo drop addr; # 刪除表中的字段

? rename table demo to dmeo1; # 將demo表重命名為demo1

? alter tabel demo1 character set ‘gbk‘; #將demo1表的編碼修改為gbk

DML 相關操作

插入表記錄: insert

insert into demo(id, name) values(1, "song");

insert into demo(id) values(2); # 無數據字段會使用null

更新表記錄:update

update demo set id = 1, name = ‘song‘; # 將demo表中記錄全部更新

update demo name = ‘hui‘ where id = 2; # 將id為2的記錄名字更新為hui

刪除表記錄

delete from demo; # 刪除demo表中的所有數據

delete from demo where name = ‘song‘; # 刪除demo表中name為song的記錄

truncate table demo; # 摧毀demo表並重建同結構的表

DQL 相關操作

select * from demo ; # 查詢demo表中所有的數據

select id, name from demo; # 查詢demo表中id 和 name 列的數據

select id as 編號, name as 姓名 from demo as 學生表; # 使用別名,as 可以省略

select distinct name, age from demo; # 去除重復值

select math + english 總成績 from student; # 從學生表中查詢熟悉和英語的總分並使用別名

select name , age + 10 from student; # 查詢姓名年齡,並將每個人的年齡增加10歲

select * from student where math > 100 or english > 100; # 查詢任意一科超過100的學生

select * from student where name like ‘_宋%寶‘; # 查詢所有名字第二個字是宋且以寶結尾的學生

select * from student where age > 12 order by id asc, age desc; # 查詢年齡大於12的按照id升序排序顯示,id一樣時按照年齡降序排序

select max(age) from student; # 查詢學生表中年齡最大的

select * from student where age > 18 group by sex having name is not null; # 查詢 年齡大於18的按照性別進行分組,且姓名不為空的記錄

Tips: having 和where的區別:

having 是在分組後對數據進行過濾

where 是在分組前對數據進行過濾

having 後面可以使用聚合函數

where 後面不可以使用聚合函數

select * from student limit 0, 3 ; # 查詢索引從0開始,共3條記錄

Tips: 起始索引 = (當前頁頁碼數 -1 ) * 每頁顯示條數

#查詢第一頁的數據信息

select * from sudent limit 0, 3;

#查詢第二頁的數據信息

select * from student limit 3, 3;

可關註公眾號,隨時隨地查閱相關文章

技術分享圖片

MySql(一):基本操作