九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
MySQL 常用SQL語句

mysql教程

■  在DOS命令行啟動MYSQL服務(wù):

net start mysql

在DOS命令行停止MYSQL服務(wù):

net stop mysql

查看被監(jiān)聽的端口:

netstat –na | findstr 3306

findstr用于查找后面的端口是否存在。


創(chuàng)建數(shù)據(jù)庫用戶:只有根用戶(root)才有創(chuàng)建新用戶的權(quán)限

CREATE USER user_name1 IDENTIFIED BY ‘password’,

 user_name2 IDENTIFIED  BY ‘password’;

一次可以創(chuàng)建多個數(shù)據(jù)庫用戶

刪除數(shù)據(jù)庫用戶:

DROP USER user_name;

選擇用戶:

select user();

用戶的權(quán)限控制:

GRANT庫,表級的權(quán)限控制:將某個庫中的某個表的控制權(quán)限賦予某個用戶

GRANT ALL    ON db_name.table_name TO  uer_name [indentified by ‘password’];

查看所有的字符編碼:

SHOW CHARACTER SET;  

=======================================================================

登錄MySQL數(shù)據(jù)庫: 在DOS命令行登錄MYSQL控制臺

mysql -u user_name -p(Enter,回車鍵入密碼,若直接輸入則為可顯)

Enter password:*********

Mysql –h hostname –u user_name –p

Enter password:*********

例:mysql –h 192.168.5.105 –uroot –p

Enter password:*******

查看運行環(huán)境信息:

進入MYSQL命令行工具后 , 使用status;或\s 查看運行環(huán)境信息

創(chuàng)建數(shù)據(jù)庫:

create database db_name;

[default]CHARACTER SET charset_name        //設(shè)置數(shù)據(jù)庫的編碼發(fā)方式

[default]COLLATE collation_name ;          //設(shè)置按collation_name字段排序

//不能寫成utf-8,utf8的默認校對為utf8_general_ci(通過show character set查看)

CREATE DATABASE db_name CHARACTER    SET utf8 COLLATE  utf8_general_ci; 

CHARACTER SET:指定數(shù)據(jù)庫采用的字符集

COLLATE:指定數(shù)據(jù)庫字符集的比較方式

使用數(shù)據(jù)庫:

use db_name;           

顯示數(shù)據(jù)庫

SHOW DATABASES;

顯示數(shù)據(jù)庫創(chuàng)建語句

SHOW CREATE DATABASE db_name;

刪除數(shù)據(jù)庫

DROP DATABASE  db_name;

刪除時可先判斷是否存在,寫成:DROP DATABASE IF EXISTS db_name;

查看創(chuàng)建數(shù)據(jù)庫的指令并查看數(shù)據(jù)庫使用的編碼

show create databasedb_name;

查看數(shù)據(jù)庫編碼:

showvariables like ‘char%’;

查看數(shù)據(jù)庫當前引擎:

SHOW CREATE TABLE table_name;

修改數(shù)據(jù)庫當前引擎:

ALTER TABLE table_name ENGINE=MYISAM| INNODB;( ‘|’表示‘或者’,選其一)

你能用的數(shù)據(jù)庫引擎取決于mysql在安裝的時候是如何被編譯的。要添加一個新的引擎,就必須重新編譯MYSQL。在缺省情況下,MYSQL支持三個引擎:ISAM、MYISAM和HEAP。另外兩種類型INNODB和BERKLEY(BDB),也常??梢允褂?。

設(shè)置數(shù)據(jù)庫編碼:

setcharacter_set_client=gbk;//可以存中文

setcharacter_set_results=gbk;//可以看中文

備份數(shù)據(jù)庫:

MYSQLDUMP –u用戶名(根用戶) –p密碼 db_name >  存放路徑級/文件名(文件格式:.sql)

(不是在mysql控制臺執(zhí)行,而要退出控制臺在DOS下執(zhí)行

例子:

MYSQLDUMP –u root –p******* mydb > D:/mydb.sql;

恢復(fù)數(shù)據(jù)庫

前提:要創(chuàng)建一個空數(shù)據(jù)庫

SOURCE 存放路徑/文件名.sql (在Mysql控制臺執(zhí)行)

如何將大量數(shù)據(jù)存入數(shù)據(jù)庫中的表中:

首先,將數(shù)據(jù)按表的結(jié)構(gòu)(字段的順序要對應(yīng))存入文本文檔中;

然后,某字段若沒有值則填入NULL,注意,每個字段值之間用Tab鍵隔開(/r/n)。

最后,使用命令:LOAD DATA LOCAL INFILE ‘E:/Test/pet.txt’ INTO TABLE pet  LINES

               TERMINATED BY ‘\r\n’;


Terminate 結(jié)束,終止;

創(chuàng)建表:

1.CREATE TABLE pet (

id int PRIMARY KEY AUTO_INCREMENT ,

name VARCHAR(20) NOT NULL UNIQUE,

owner VARCHAR(20) NOT NULL,

species VARCHAR(20),

sex CHAR(1),

birth DATE ,

);

2.CREATE TABLE table_name(

   field1  datatype,

   field2  datatype,

   ……

)CHARACTER SET 字符集 COLLATE 校對規(guī)則;

 field:指定列名    datatype:指定列類型

顯示表:

show tables

顯示某個表創(chuàng)建時的全部信息:

SHOW CREATE TABLE table_name;

顯示表的結(jié)構(gòu)信息

DESCRIBE table_name;    縮寫形式 : desc table_name;

查找數(shù)據(jù):

SELECT * FROM table_name;

顯示表的各字段:

DESCRIBE table_name;

清空表中的數(shù)據(jù):

1.TRUNCATE table_name;

此方法會使表中的取號器(ID)從1開始

2.DELETE FROM table_name;
不帶where參數(shù)的delete語句可以刪除mysql表中所有內(nèi)容,使用truncate table也可以清空mysql表中所有內(nèi)容。效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。
delete的效果有點像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個表,所有的狀態(tài)都相當于新表。 

注意:在MySQL中事務(wù)的特殊說明:

1.  mysql控制臺是默認自動提交事務(wù)(dml).

2.  若在控制臺使用事務(wù),應(yīng)該做以下設(shè)置:

*SETAUTOCOMMIT=FALSE;    //解除自動提交功能

*SAVEPOINT point;         //設(shè)置保存點point

//一系列操作…

*ROLLBACK TOpoint;      //回滾到保存點

使用TRUNCATE table_name刪除的表不能夠回滾,但刪除速度較快,

使用DELETE FROM table_name刪除的表可以回滾,刪除速度相對較慢。

創(chuàng)建表:

CREATE    TABLE table_name;

刪除表:

DROP TABLE    table_name;     

插入數(shù)據(jù):

1.INSERT INTO table_name [(字段1,字段2,字段3,…)] VALUES (值1,值2,…);

如果向表中的每個字段都插入一個值,那么前面[]括號內(nèi)字段名可寫也可不寫。

2.INSERT INTO pet  VALUES('Puffball','Diane','hamster','f','1999-03-30',NULL);

3.從 源表 中篩選符合條件的記錄,批量插入到 (指定的)目標表 中:

insert into 目標表(字段1, 字段2,...字段n) select 字段1, 字段2,...字段n from 源表 where 條件

4.向表中插入條數(shù)據(jù):

insert into articles (id, content,userid)

values (2,’hahaha’,11),(null,’xixixi’,10),(13,’aiaiai’,1),…;

刪除數(shù)據(jù):

DELETE    FROM table_name WHERE id=’10’;

delete語句不能刪除某一列的值,可使用update更新列值。

使用delete語句僅刪除記錄,不刪除表本身,刪除表使用drop table語句。

更新數(shù)據(jù):

UPDATE pet SET birth = '1989-08-31'WHERE name = 'Bowser' ORDER    BY birth DESC;

ASC(升序,默認方式);DESC(降序)

WHERE和 ORDER 語句也可用于查詢select 與 刪除delete

查詢數(shù)據(jù):

1.SELECT * FROM pet WHERE name = 'Bowser';

SELECT * FROM pet WHERE birth > '1998-1-1';

SELECT * FROM pet WHERE species = 'dog' AND sex ='f';

SELECT * FROM pet WHERE species = 'snake' OR species= 'bird';

SELECT * FROM pet WHERE (species = 'cat' AND sex ='m')

          OR(species = 'dog' AND sex = 'f');

SELECT name, birth FROM pet;

SELECT chinese+english+math  FROM Students;    //列之間可以進行運算

2.增加關(guān)鍵字DISTINCT檢索出每個唯一的輸出記錄,把相同的記錄值取其中一個即可。

SELECT DISTINCT owner FROM pet; //distinct[d?'st??kt] 截然不同的

3.使用一個WHERE子句結(jié)合行選擇與列選擇:

SELECT name, species, birth FROM pet

        WHEREspecies = 'dog' OR species = 'cat';

4.為了排序結(jié)果,使用ORDER BY子句:

SELECT name, birth FROM pet WHERE species = 'dog' ORDERBY birth;

默認排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降

序)關(guān)鍵字:

SELECT name, birth FROM pet ORDER BY birth DESC;

5.可以對多個列進行排序,并且可以按不同的方向?qū)Σ煌牧羞M行排序:

SELECT name, species, birth FROM pet

ORDER BY species, birth DESC;

注意DESC關(guān)鍵字僅適用于在它前面的列名(birth);不影響species列的排列順序。

6.MySQL提供了幾個函數(shù),可以用來計算日期,例如,計算年齡或提取日期部分:

SELECT name, birth, CURDATE(),((YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5)<>< u="">)<> AS age FROM pet;

YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD (日歷年)部分的最右面5個字符。比較MM-DD值的表達式部分的值一般為1或0,若birth月份比當前月份大,則年份應(yīng)減去1。

SELECT name, birth, death FROM pet WHERE deathISNOT NULL ORDER BY birth;

使用deathIS NOT NULL而非death != NULL,因為NULL是特殊的值,不能使用普通比較符來比較。

7.MySQL提供幾個日期部分的提取函數(shù),例如YEAR( )、MONTH( )和DAYOFMONTH()。

SELECT name, birth, MONTH(birth) FROM pet;

SELECT name, birth FROM pet WHEREMONTH(birth) = 5;

概念上,NULL意味著“沒有值”或“未知值”,且它被看作與眾不同的值。不能使用算術(shù)比較操作符例如=、<或!=。

請注意在MySQL中,0或NULL意味著而其它意味著。布爾運算的默認值是1.

8.同表查詢:

SELECTa.id,a.nikename,a.address FROM users a,users b WHERE b.nikename=’haha’

anda.id>b.id;

也可寫成

SELECT id,nikename,addressFROM users WHERE id>(SELECT id FROM users WHERE nikename=’haha’);

補充:在WHERE子句中經(jīng)常使用的運算符

 

 

比較運算符

>、< 、<= 、>= 、= 、<>

大于、小于、大于(小于)等于、不等于

BETWEEN   …AND…

顯示在某一區(qū)間的值

IN(set)

顯示在IN列表中的值,例:IN(100,200)

LIKE ‘張pattern’

模糊查詢

IS NULL 

判斷是否為空

 

邏輯運算符

AND

多個條件同時成立

OR

多個條件任一成立

NOT

不成立,例:where not(salary>100);

注:LIKE語句中,%代表零個或多個任意字符,_代表一個字符,例firstname like ‘_a%’;

 

9.使用GROUP BY子句對列進行分組:

SELECTcolumn1,column2,column3… FROM table_name GROUP BY column;

SELECTproduct,sum(price) FROM orders GROUP BY product;

10.使用HAVING 子句過濾:

SELECT column1,column2,column3…FROMtable_name GROUP BY column HAVING…

SELECTproduct,sum(price) FROM orders GROUP BY product HAVING sum(price)>100;

HAVING和WHERE均可實現(xiàn)過濾,但在HAVING可以使用合計函數(shù),HAVING通常跟在GROUP BY后,它作用于組。

…GROUP BY …HAVING…ORDERBY…

對表進行重命名:

1.RENAME TABLE table_name TO new_name;
2.ALTER TABLE table_name RENAME TO new_table_name;

■  修改表結(jié)構(gòu):增加字段

1.增加一個字段

ALTER TABLE table_name ADD COLUMN(字段名 字段類型);---此方法帶括號

2.增加一個字段在指定的位置

ALTER TABLE table_name ADDCOLUMN 字段名 字段類型 AFTER 某字段;

■  修改表結(jié)構(gòu):刪除字段

ALTER TABLE table_name drop 字段名;

修改表結(jié)構(gòu):改變字段名稱/類型:

ALTER TABLE table_name CHANGE COLUMN field_namenewfield_name varchar(10) not null;

其中char(20) notnull是newcolumn_name字段的create_definition.

增加約束:約束(主鍵Primary Key、唯一性Unique、非空Not NULL)

1.ALTER TABLE table_name CHANGE old_id new_id INT(16) NOT NULL PRIMARY KEY;

2.自動增長:

ALTER TABLE table_name CHANGE old_id  new_id INT(16) NOT NULL AUTO_INCREMENT;

修改表的字符集:

ALTER    TABLE table_name CHARACTER SET UTF8;

■  查看某字段使用的編碼:

SELECTCHARSET(column_name) FROM table_name;

=======================================================================

 

插入數(shù)據(jù)庫是出現(xiàn)亂碼的參考解決方案:

1。 數(shù)據(jù)庫字符集設(shè)置為GB2312。(但就是插不成功顯示Datato lang 吧!)

2。關(guān)鍵在創(chuàng)建表的時候:

create table (字段) Default character set gb2312;

3。表創(chuàng)建好的情況下:

修改表編碼: alter table 表名 Default character set gb2312;

修改字段編碼: ALTERTABLE 表名 CHANGE COLUMN 字段名CHARACTER SET gb2312;

 

=======================================================================

 

#查看數(shù)據(jù)庫的版本,當前日期(不區(qū)分大小寫)

Mysql> selectVERSION(),CURRENT_DATE,NOW();

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
mysql查詢某個數(shù)據(jù)庫下面的所有表的某個字段的匹配值?
Ubuntu中MySQL操作
一個小時學(xué)會MySQL數(shù)據(jù)庫
一千行MySQL學(xué)習(xí)筆記
Mysql數(shù)據(jù)庫操作常用命令
Mysql基礎(chǔ)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服