MySQL 快速入門 之常使用到的語句
在工作室不太忙時,整理了份實訓文檔,幫老師交給他所帶的班上的師弟師妹(我可真是好人~)。留下精髓,記錄一下經常使用的Mysql語句。
一、 Mysql程序操作
啟動(管理員權限打開)
net start mysql
關閉(管理員權限打開)
net stop mysql
遠程訪問
mysql -hip -uroot -p 或 mysql --host=ip --user=root --password=密碼
登錄數據庫
mysql -u root -p
查看數據庫版本
mysql -V (或登錄后輸入status)
查看連接端口
show global variables like 'port';
退出
exit(或quit)
1.以分號結尾
2.SQL語句不區分大小寫(關鍵字建議用大寫)
3.注釋方式:
單行注釋:–注釋內容 或 #注釋內容
多行注釋:/注釋內容/
二、 數據庫命令行操作
創建數據庫
create database 庫名;
刪除數據庫
drop database 庫名;
選擇/使用數據庫
use 庫名;
查詢數據庫
show databases;
查詢當前數據庫
select database();
查詢數據庫結構
show create database 庫名;
修改數據庫的字符集
alter database 庫名 character set 字符集名; /*utf8*/
創建表
create table 表名;
刪除表
drop table 表名;
查看數據表
show table;
顯示數據表結構
desc/describe 表名;
查詢表結構
show create table 表名;
復制完整表結構
create table 表名 like 被復制表的名
修改表名
alter table 表名 rename to 新表名;
修改表的字符集
alter table 表 character set 字符集;
添加一列
alter table 表名 add 列名 數據類型;
修改列名稱
alter table 表 change 列 新列 新數據類型;
修改列類型
alter table 表名 modify 列名 新數據類型;
刪除列
alter table 表名 drop 列名;
1.如果你不想字段為 NULL 可以設置字段的屬性為 NOT NULL, 在操作數據庫時如果輸入該字段的數據為NULL ,就會報錯。
2.auto_increment定義列為自增的屬性,一般用于主鍵,數值會自動加1。
3.primary key關鍵字用于定義列為主鍵。 您可以使用多列來定義主鍵,列間以逗號分隔。
4.engine設置存儲引擎,charset設置編碼。
三、 crud命令行操作
crud是指在做計算處理時的增加(Create)、讀取(Read)、更新(Update)和刪除(Delete)幾個單詞的首字母簡寫。
插入數據
insert into 表名 (字段1, …) values (值1, …);
查詢數據(查詢條件是區分大小寫的)
select 字段1, 字段2 from 表名 where 限定條件;
更新數據(如果不加條件,就會修改表中所有記錄)
update 表 set 字段1=值… where 限定條件;
指定條件更新(replace用法)
update 表set 字段1=replace(值)… where 限定條件;
刪除表(指定條件刪除)
delete from 表名 where 限定條件;
四、 DQL(數據庫查詢語句)
多字段查詢 (可以用 * 這個符號代替查詢所有字段)
select 字段名1, 字段名2... from 表名;
去除重復 (兩個字段名要都相同才能去重)
select distinct 字段名 from 表名;
計算列 (可以使用四則運算來簡單計算數據)
select 字段名1+字段名2 from 表名;
若數據中有null, null參與運算,計算結果為null, 則將有null的字段用 IFNULL(字段名, 0)
例如:
select NAME, math, english, math + IFNULL(english, 0) from stu;
起別名 (可以用AS, 也可以用一個或多個空格)
select 字段名 AS 別名 from 表名;
1.where子句后跟條件
2.運算符
例如: 查詢名字中包含陳的學生的所有信息。
select * from stu where name LIKE '%陳%';
order by 排序字段1 排序方式, 排序字段2 排序方式2;
例如:
select * from stu ORDER BY math; /*默認升序排列*/
例如:
select * from stu ORDER BY math ASC; select * from stu ORDER BY math DESC;
1.count 計算個數
2.max 最大值
3.min 最小值
4.sum 計算和
5.avg 平均值
例如: 查詢stu表中math的平均成績,如果列中有null, 則為0。
select AVG(IFNULL(math, 0) from stu;
group by分組字段;
(1)where 在分組之前進行限定, 如果不滿足條件, 則不參與分組。 having 在分組之后進行限定, 如果不滿足結果, 則不會被查詢出來。
(2)where 后不可以跟聚合函數, having 可以進行聚合函數的判斷。
例如: 按照性別分組, 查詢stu表, 分數大于70分, 分為男 女兩組, 分別顯示數學平均成績和男女所占人數。
select sex , AVG(math), COUNT(id) peo_sum from stu where math > 70 GROUP BY sex HAVING peo_sum > 2;
分析:首先, 分組前用where進行篩選, 查詢數學大于70, 接著用GROUP BY對性別進行分組. 分組完成后, 上面將COUNT(id)起名為peo_num, 最后用HAVING對分組后的數據進行篩選, 查詢人數大于2的數據。
作用:限制查詢結果的條數。
select * from 列表 limit m,n
解釋:m是記錄開始的index,從0開始,表示第一條記錄;n是從m+1開始,取n條記錄。
開始的索引 = 查詢的頁碼 - 1
1.不指定位置偏移量,只取4條
SELECT * FROM stu LIMIT 4;
2.指定位置偏移量,從第4條起取3條
select * from stu LIMIT 3, 3; /*因為索引是從0開始計數的,所以第4條對應的索引是3*/
另外,推薦下載Navicat,使用Navicat操作數據庫比較友好。
MySQL 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。