mysql 的相关操作_MySQL(记录相关操作)
一、介紹
MySQL數據操作: DML
========================================================
在MySQL管理軟件中,可以通過SQL語句中的DML語言來實現數據的操作,包括
使用INSERT實現數據的插入
UPDATE實現數據的更新
使用DELETE實現數據的刪除
使用SELECT查詢數據以及。
========================================================
本節內容包括:
插入數據
更新數據
刪除數據
查詢數據
二、插入數據INSERT
1. 插入完整數據(順序插入)
語法一:INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
語法二:INSERT INTO 表名 VALUES(值1,值2,值3…值n);2. 指定字段插入數據
語法:INSERT INTO 表名(字段1,字段2,字段3…) VALUES(值1,值2,值3…);3. 插入多條記錄
語法:INSERT INTO 表名 VALUES(值1,值2,值3…值n),
(值1,值2,值3…值n),
(值1,值2,值3…值n);4. 插入查詢結果
語法:INSERT INTO表名(字段1,字段2,字段3…字段n)SELECT (字段1,字段2,字段3…字段n) FROM表2WHERE …;
三、更新數據UPDATE
語法:UPDATE 表名 SET字段1=值1,
字段2=值2,WHERECONDITION;
示例:UPDATE mysql.user SET password=password(‘123’)where user=’root’ and host=’localhost’;
四、刪除數據DELETE
語法:DELETE FROM表名WHERECONITION;
示例:DELETE FROM mysql.user
WHERE password=’’;
練習:
更新MySQL root用戶密碼為mysql123
刪除除從本地登錄的root用戶以外的所有用戶
五、單表查詢
1、單表查詢語法
SELECT 字段1,字段2... FROM表名WHERE條件GROUP BYfieldHAVING篩選ORDER BYfield
LIMIT 限制條數
2、關鍵字的執行優先級(重點)
重點中的重點:關鍵字的執行優先級from
where
group by
having
select
distinct
order bylimit
執行過程:
1.找到表:from
2.拿著where指定的約束條件,去文件/表中取出一條條記錄3.將取出的一條條記錄進行分組group by,如果沒有group by,則整體作為一組4.將分組的結果進行having過濾5.執行select6.去重7.將結果按條件排序:order by
8.限制結果的顯示條數
3、簡單查詢
company.employee
員工id idint姓名 emp_namevarchar性別 sex enum
年齡 ageint入職日期 hire_date date
崗位 postvarchar職位描述 post_commentvarchar薪水 salarydouble辦公室 officeint部門編號 depart_idint#創建表create tableemployee(
idint not null uniqueauto_increment,
namevarchar(20) not null,
sex enum(‘male‘,‘female‘) not null default ‘male‘, #大部分是男的
ageint(3) unsigned not null default 28,
hire_date datenot null,
postvarchar(50),
post_commentvarchar(100),
salarydouble(15,2),
officeint, #一個部門一個屋子
depart_idint);
#查看表結構
mysql> descemployee;+--------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| sex | enum(‘male‘,‘female‘) | NO | | male | |
| age | int(3) unsigned | NO | | 28 | |
| hire_date | date | NO | | NULL | |
| post | varchar(50) | YES | | NULL | |
| post_comment | varchar(100) | YES | | NULL | |
| salary | double(15,2) | YES | | NULL | |
| office | int(11) | YES | | NULL | |
| depart_id | int(11) | YES | | NULL | |
+--------------+-----------------------+------+-----+---------+----------------+
#插入記錄
#三個部門:教學,銷售,運營insert into employee(name,sex,age,hire_date,post,salary,office,depart_id) values(‘egon‘,‘male‘,18,‘20170301‘,‘老男孩駐沙河辦事處外交大使‘,7300.33,401,1), #以下是教學部
(‘alex‘,‘male‘,78,‘20150302‘,‘teacher‘,1000000.31,401,1),
(‘wupeiqi‘,‘male‘,81,‘20130305‘,‘teacher‘,8300,401,1),
(‘yuanhao‘,‘male‘,73,‘20140701‘,‘teacher‘,3500,401,1),
(‘liwenzhou‘,‘male‘,28,‘20121101‘,‘teacher‘,2100,401,1),
(‘jingliyang‘,‘female‘,18,‘20110211‘,‘teacher‘,9000,401,1),
(‘jinxin‘,‘male‘,18,‘19000301‘,‘teacher‘,30000,401,1),
(‘成龍‘,‘male‘,48,‘20101111‘,‘teacher‘,10000,401,1),
(‘歪歪‘,‘female‘,48,‘20150311‘,‘sale‘,3000.13,402,2),#以下是銷售部門
(‘丫丫‘,‘female‘,38,‘20101101‘,‘sale‘,2000.35,402,2),
(‘丁丁‘,‘female‘,18,‘20110312‘,‘sale‘,1000.37,402,2),
(‘星星‘,‘female‘,18,‘20160513‘,‘sale‘,3000.29,402,2),
(‘格格‘,‘female‘,28,‘20170127‘,‘sale‘,4000.33,402,2),
(‘張野‘,‘male‘,28,‘20160311‘,‘operation‘,10000.13,403,3), #以下是運營部門
(‘程咬金‘,‘male‘,18,‘19970312‘,‘operation‘,20000,403,3),
(‘程咬銀‘,‘female‘,18,‘20130311‘,‘operation‘,19000,403,3),
(‘程咬銅‘,‘male‘,18,‘20150411‘,‘operation‘,18000,403,3),
(‘程咬鐵‘,‘female‘,18,‘20140512‘,‘operation‘,17000,403,3)
;
#ps:如果在windows系統中,插入中文字符,select的結果為空白,可以將所有字符編碼統一設置成gbk
準備表和記錄
#簡單查詢SELECTid,name,sex,age,hire_date,post,post_comment,salary,office,depart_idFROMemployee;SELECT * FROMemployee;SELECT name,salary FROMemployee;
#避免重復DISTINCTSELECT DISTINCT post FROMemployee;
#通過四則運算查詢SELECT name, salary*12 FROMemployee;SELECT name, salary*12 AS Annual_salary FROMemployee;SELECT name, salary*12 Annual_salary FROMemployee;
#定義顯示格式
CONCAT() 函數用于連接字符串SELECT CONCAT(‘姓名:‘,name,‘年薪:‘, salary*12) ASAnnual_salaryFROMemployee;
CONCAT_WS() 第一個參數為分隔符SELECT CONCAT_WS(‘:‘,name,salary*12) ASAnnual_salaryFROMemployee;
結合CASE語句:SELECT(CASE
WHEN NAME = ‘egon‘ THENNAMEWHEN NAME = ‘alex‘ THENCONCAT(name,‘_BIGSB‘)ELSEconcat(NAME,‘SB‘)END)asnew_nameFROMemp;
簡單查詢
#1查出所有員工的名字,薪資,格式為
# #2查出所有的崗位(去掉重復)
#3查出所有員工名字,以及他們的年薪,年薪的字段名為annual_yearselect concat(‘‘,‘‘) fromemployee;select distinct depart_id fromemployee;select name,salary*12 annual_salary from employee;
練習
4、WHERE約束
where字句中可以使用:
1. 比較運算符:> < >= <= <> !=
2. between 80 and 100 值在10到20之間
3. in(80,90,100) 值是80或90或100
4. like ‘egon%‘
pattern可以是%或_,
%表示任意多字符
_表示一個字符
5. 邏輯運算符:在多個條件直接可以使用邏輯運算符 and or not
#1:單條件查詢SELECT name FROMemployeeWHERE post=‘sale‘;
#2:多條件查詢SELECT name,salary FROMemployeeWHERE post=‘teacher‘ AND salary>10000;
#3:關鍵字BETWEEN AND
SELECT name,salary FROMemployeeWHERE salary BETWEEN 10000 AND 20000;SELECT name,salary FROMemployeeWHERE salary NOT BETWEEN 10000 AND 20000;
#4:關鍵字IS NULL(判斷某個字段是否為NULL不能用等號,需要用IS)SELECT name,post_comment FROMemployeeWHERE post_comment IS NULL;SELECT name,post_comment FROMemployeeWHERE post_comment IS NOT NULL;SELECT name,post_comment FROMemployeeWHERE post_comment=‘‘; 注意‘‘是空字符串,不是null
ps:
執行update employee set post_comment=‘‘ where id=2;
再用上條查看,就會有結果了
#5:關鍵字IN集合查詢SELECT name,salary FROMemployeeWHERE salary=3000 OR salary=3500 OR salary=4000 OR salary=9000;SELECT name,salary FROMemployeeWHERE salary IN (3000,3500,4000,9000) ;SELECT name,salary FROMemployeeWHERE salary NOT IN (3000,3500,4000,9000) ;
#6:關鍵字LIKE模糊查詢
通配符’%’SELECT * FROMemployeeWHERE name LIKE ‘eg%‘;
通配符’_’SELECT * FROMemployeeWHERE name LIKE ‘al__‘;
where查詢
原文:https://www.cnblogs.com/xingye-mdd/p/10021851.html
總結
以上是生活随笔為你收集整理的mysql 的相关操作_MySQL(记录相关操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一部分 Word练习题
- 下一篇: mysql记录的增删改查、单表查询