-- 測試查詢操作
create table user(
id int unsigned auto_increment key,
username varchar(20) not null unique comment '編號',
age tinyint unsigned not null default 18 comment '年齡',
*** enum('男','女','保密') not null default '保密' comment '性別',
addr varchar(20) not null default '北京',
married tinyint(1) not null default 0 comment '0代表未結婚,1代表已婚',
salary float(8,2) not null default 0 comment '薪水'
)engine=innodb charset=utf8;
insert user values(1,'king',23,'男','北京',1,50000);
insert user(username,age,***,addr,married,salary) values('queen',27,'女','上海',0,25000);
insert user set username='imooc',age=31,***='女',addr='北京',salary=40000;
insert user values(null,'張三',38,'男','上海',0,15000),
(null,'張三風',38,'男','上海',0,15000),
(null,'張子軒',39,'女','北京',1,85000),
(null,'汪楊',42,'男','深圳',1,95000),
(null,'劉德凱',58,'男','廣州',0,115000),
(null,'吳峰',28,'男','北京',0,75000),
(null,'浦麗',18,'女','北京',1,65000),
(null,'劉小明',36,'女','廣州',0,15000);
-- 查詢表中所有記錄
select * from user;
-- username,addr,age
select username,addr,age from user;
-- 查詢mysql資料庫下user表中的所有記錄
select * from mysql.user;
-- 查詢user表中的id 編號 username 使用者名稱 *** 性別
select id as '編號',username as '使用者名稱', *** as '性別'
from user;
-- 給表起別名
select id,username from user as u;
-- 測試表名.欄位名
select user.id,user.username,user.age from user ;
select u.id,u.username,u.addr,u.*** from user as u;
-- 測試where 條件的比較運算子
-- 查詢id,username,age id=5的使用者
select id,username,age from user
where id=5;
select id,username,age from user
where id=50;
-- 新增desc欄位 varchar(100)
alter table user
add userdesc varchar(100);
-- 更新id<=9的使用者 userdesc='this is a test'
update user set userdesc='this is a test'
where id<=9;
-- 查詢使用者userdesc 為null的使用者
select id,username,age,userdesc from user
where userdesc=null;
-- 檢測null值
select id,username,age,userdesc from user
where userdesc<=>null;
-- is [not] null檢測null值
select id,username,age,userdesc from user
where userdesc is not null;
-- 測試範圍between and
-- 查詢年齡在18~30之間的使用者
select id,username,age,*** from user
where age between 18 and 30;
-- 查詢薪水在10000~50000之間的使用者
select id,username,age,salary from user
where salary between 10000 and 50000;
select id,username,age,salary from user
where salary not between 10000 and 50000;
-- 測試指定集合 in
-- 查詢編號為1,3,5,7,9
select id,username,age from user
where id in(1,3,5,7,9,29,45,78);
select id,username,age from user
where username in('king','queen','lily','rose');
-- 測試邏輯運算子
-- 查詢性別為男並且年齡》=20的使用者
select id,username,age,*** from user
where ***='男' and age>=20;
-- id>=5 && age<=30
select id,username,age,*** from user
where id>=5 and age<=30;
select id,username,age,*** from user
where id>=5 and age<=30 and ***='男';
-- 要求***='女' 並且 addr='北京'
select id,username,age,***,addr from user
where ***='女' and addr='北京';
-- 查詢薪水範圍在60000~10000並且性別為男 addr='北京'
select id,username,age,***,salary,addr from user
where salary between 60000 and 100000 and ***='男' and addr='北京';
-- 查詢id=1 或者 使用者名為queen
select id,username,age from user
where id=1 or username='queen';
-- 測試模糊查詢
select id,username,age from user
where username='king';
select id,username,age from user
where username like 'king';
-- 要求使用者名稱中包含三
select id,username,age,*** from user
where username like '%三%';
-- 使用者名稱中包含n
select id,username,age from user
where username like '%in%';
-- 要求查詢出姓張的使用者
select id,username,age from user
where username like '張%';
-- 查詢以風結尾的使用者
select id,username,age from user
where username like '%風';
-- 使用者名稱長度為三位的使用者
select id,username,age,*** from user
where username like '___';
select id,username,age,*** from user
where username like '張_';
select id,username,age,*** from user
where username like '張_%';
MySQL查詢資料 學習筆記
資料查詢是dbms最重要的功能,本節介紹如何使用select語句查詢資料表中的一列或多列資料,使用集合函式顯示查詢結果,連線查詢,子查詢以及使用正規表示式進行查詢等。連線查詢 內連線,外連線。復合條件連線查詢,新增過濾條件,限制查詢的結果。子查詢,指乙個查詢語句巢狀在另乙個查詢語句內部的查詢,先查詢...
mysql學習筆記(3)
資料表索引設定 目的 加速搜尋 檢視現有索引 show index from user g 語句以 g 結尾可以使顯示結果行列轉置,方便檢視 1.主鍵索引 primary key eg 給字段id加主鍵索引 建立表時新增 id int unsigned auto increment primary ...
MySQL學習筆記3
標籤 空格分隔 筆記 mysql 通過inner join on關鍵字實現 具體語法 select field1,field2,fieldn from table name inner join join table on join condition 這裡注意的是on後面其實跟的就是外來鍵約束中相...