MySQL數(shù)據(jù)庫基本操作(進(jìn)入mysql/bin目錄下)注意在mysql控制臺(tái)操作每句后要加分號(hào) ;
1、 進(jìn)入數(shù)據(jù)庫 mysql -u 用戶名 -p 密碼
2、 導(dǎo)出數(shù)據(jù)庫 mysqldump -u 用戶名 -p 密碼 數(shù)據(jù)庫名(表名)> 路徑 備份.sql
3、 導(dǎo)入數(shù)據(jù)庫 mysql -u 用戶名 -p 密碼 數(shù)據(jù)庫名< 路徑 備份.sql
或者進(jìn)入mysql,使用source 路徑 備份 此方法可以單獨(dú)導(dǎo)入表
4、 顯示所有數(shù)據(jù)庫 show databases;
5、 使用數(shù)據(jù)庫 use 數(shù)據(jù)庫名;
6、 顯示所有表 show tables;
7、 創(chuàng)建數(shù)據(jù)庫 create database 數(shù)據(jù)庫名;
8、 創(chuàng)建表 create table 表名(變量名 變量類型(大小)約束條件,變量名 變量類型(變量大小)約束條件,PRimary key(主鍵) );
9、 描述表 describe 表名;
10、向表中輸入數(shù)據(jù) insert into 表名 values( );
11、select 列 from 表 order by 列 desc/asc
select count(*) from 表名 統(tǒng)計(jì)表中記錄總數(shù)
descending 降序排列的意思
ascending 升序排列
12、刪除表內(nèi)容
delete from 表名
truncate table 表名
13、更新表內(nèi)容
update table 表名 set=' ' where 條件
14、改變表結(jié)構(gòu)
alter table 表名 add id int(10) 【列名 數(shù)據(jù)類型】 增加列
alter table 表名 drop id 【列名】 刪除列
alter table 表名 modify id int(6); 修改列
15、改變表名
rename table 表名1 to 表名2
16、查看數(shù)據(jù)庫、表創(chuàng)建信息
show create database 數(shù)據(jù)庫名
show create table 表名
17、過濾表中重復(fù)的信息
select distinct 列名 from 表名
1、將選出內(nèi)容新建表
create table 表名2(可定義列名以及類型) as select 列名,列名 from 表名2;
將選出結(jié)果插入某表
insert 表1 select 列名1,列名2,… From 表 2
2、select語句
select [all/distinct] 列名 from 表名 [where 搜索條件] [group by 組表達(dá)式] [having 條件][order by 列名][ASC|DESC]
選擇指定前幾條
select * from table(表名) limit m , n m為第幾行開始,n為取幾條
選擇在指定范圍內(nèi)記錄
select * from table(表名) where 列名 between value1 and value2
選擇在指定內(nèi)容的記錄
select * from table(表名) where in / not in 列(value1,value2 …)
選擇指定類似內(nèi)容
select * from table(表名) where 列名 like / not like 'string '
通配符 | 含義 |
% | 任意多個(gè)字符 |
_ | 單個(gè)字符 |
[ ] | 指定范圍內(nèi)的單個(gè)字符 |
[ ^ ] | 不在指定范圍內(nèi)的單個(gè)字符 |
選擇為空的記錄
select * from table(表名) where 列名 NULL/ not NULL
選擇結(jié)果統(tǒng)計(jì)
select 列名1 , count(列名2) from table(表名) group by 列名2 having 條件
函數(shù)名 | 功能 |
count | 求組中項(xiàng)數(shù),返回整數(shù) |
sum | 求和,返回表達(dá)式中所有值的和 |
avg | 求平均值,返回表達(dá)式中所有值的平均值 |
max | 求最大值,返回表達(dá)式中所有值的最大值 |
min | 求最小值,返回表達(dá)式中所有值的最小值 |
abs | 求絕對(duì)值,返回?cái)?shù)值表達(dá)式的絕對(duì)值 |
ascii | 求ASCII碼,返回字符型數(shù)據(jù)的ASCII碼 |
rand | 產(chǎn)生隨機(jī)數(shù),返回一個(gè)位于0-1之間的隨機(jī)數(shù) |
| student | CREATE TABLE `student` (
`studno` int(5) NOT NULL auto_increment,
`studname` char(10) NOT NULL,
`studcourse` char(50) NOT NULL,
`studscore` float default '0',
PRIMARY KEY (`studno`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=gbk |
mysql> select * from student;
+--------+----------+------------+-----------+-----+
| studno | studname | studcourse | studscore | sex |
+--------+----------+------------+-----------+-----+
| 1 | 祖如輝 | 數(shù)據(jù)庫原理 | 90 | 男 |
| 2 | 馬斯洛 | 數(shù)據(jù)庫原理 | 80 | 男 |
| 3 | 莉莉 | 數(shù)據(jù)庫原理 | 94 | 女 |
| 4 | 加紅基 | 數(shù)據(jù)庫原理 | 99 | 男 |
| 5 | 馬三立 | 數(shù)據(jù)庫原理 | 69 | 男 |
| 6 | 郭冬臨 | 數(shù)據(jù)庫原理 | 65 | 男 |
| 7 | 想加你 | 數(shù)據(jù)庫原理 | 55 | 女 |
| 8 | 華正白 | 數(shù)據(jù)庫原理 | 95 | 男 |
| 9 | 黎明 | 數(shù)據(jù)庫原理 | 49 | 男 |
| 10 | 徐曉娟 | 數(shù)據(jù)庫原理 | 79 | 女 |
+--------+----------+------------+-----------+-----+
10 rows in set (0.00 sec)
mysql> select * from class;
+--------+------------------+-----------+
| studno | class | gradecode |
+--------+------------------+-----------+
| 1 | 計(jì)算機(jī)網(wǎng)絡(luò)工程 | 3 |
| 2 | 計(jì)算機(jī)網(wǎng)絡(luò)工程 | 1 |
| 3 | 計(jì)算機(jī)網(wǎng)絡(luò)工程 | 1 |
| 4 | 計(jì)算機(jī)科學(xué)與技術(shù) | 3 |
| 5 | 計(jì)算機(jī)科學(xué)與技術(shù) | 3 |
| 6 | 計(jì)算機(jī)科學(xué)與技術(shù) | 1 |
| 7 | 計(jì)算機(jī)科學(xué)與技術(shù) | 4 |
| 8 | 計(jì)算機(jī)科學(xué)與技術(shù) | 2 |
| 9 | 計(jì)算機(jī)科學(xué)與技術(shù) | 2 |
| 10 | 計(jì)算機(jī)軟件工程 | 2 |
+--------+------------------+-----------+
10 rows in set (0.00 sec)
選出 數(shù)據(jù)庫原理及格的女學(xué)生信息(包含學(xué)號(hào),姓名,課程,成績)。
mysql> Select * from student where having (select from studscore student where sex='女' )>60;
創(chuàng)建表視圖
create view 視圖名 as select 列名 from 表名
創(chuàng)建索引
create unique index 索引列 on 表名(列名)
內(nèi)聯(lián)接也叫自然聯(lián)接,它是組合兩個(gè)表的常用方法。內(nèi)聯(lián)接將兩個(gè)表中的列進(jìn)行比較,將兩個(gè)表中滿足聯(lián)接條件的行組合起來,作為結(jié)果。內(nèi)聯(lián)接有兩種形式的語法: (注:多個(gè)表也可)
語法一:
SELECT 列名SELECT 列名 FROM 表1 [INNER] JOIN 表2 ON 表1.列 = 表2.列
語法二:
SELECT 列名FROM 表1,表2 WHERE 表1.列 = 表2.列
在內(nèi)聯(lián)接中,只有在兩個(gè)表中匹配的行才能在結(jié)果集中出現(xiàn)。而在外聯(lián)接中可以只限制一個(gè)表,而對(duì)另外一個(gè)表不加限制(即不加限制的表的所有行都出現(xiàn)在結(jié)果集中)。
外聯(lián)接只能連接兩個(gè)表
外聯(lián)接分為左外聯(lián)接、右外聯(lián)接。
語法如下:SELECT 列名
FROM 表1 <LEFT|RIGHT > [OUTER] JOIN 表2 ON 表1.列 = 表2.列
聯(lián)接操作不僅可以在不同的表上進(jìn)行,而且可以在同一張表內(nèi)進(jìn)行自身聯(lián)接,即將同一個(gè)表的不同行聯(lián)接起來。自聯(lián)接可以看作一張表的兩個(gè)副本之間的聯(lián)接。在自聯(lián)接中,必須為表指定兩個(gè)別名,使之在邏輯上成為兩張表。
是一種特殊類型的內(nèi)聯(lián)接
l 為表名指定別名的方式:
在表名后面直接給出別名:表名 別名在表名和別名之間添加AS關(guān)鍵字:表名 AS 別名l MySQL的表別名中不能有特殊字符(如空格)
l 除了在內(nèi)聯(lián)接時(shí)必須使用表別名之外,表別名也可用在其他的SQL語句中,以簡化SQL語句,提高語句的可讀性。
l 交叉聯(lián)接也叫非限制聯(lián)接,它將兩個(gè)表不加任何約束的組合起來。在數(shù)學(xué)上,就是兩個(gè)表的笛卡爾積。交叉聯(lián)接后得到的行數(shù)是兩個(gè)被聯(lián)接表的行數(shù)的乘積。
l 語法如下:SELECT 列名 FROM 表1 CROSS JOIN表2
或SELECT 列名 FROM 表1 ,表2
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注