前言
1、
SQL
語句不區(qū)分大小寫。
MySQL之常用的SQL語句
SQL語句 | 用途 | 描述 |
---|---|---|
mysql -u root -p |
連接MySQL |
在命令行窗口中輸入mysql -u root -p 命令,回車,然后輸入MySQL 密碼(不要忘記了密碼,找回麻煩),再回車就連接上MySQL 了。最初都是使用root 用戶登錄,工作中不能一直使用root 用戶登錄。因為root 權(quán)限太大,風(fēng)險很大,所以等創(chuàng)建好權(quán)限適合的用戶后,就不要經(jīng)常登錄root 用戶了。 |
create database test_db; |
創(chuàng)建數(shù)據(jù)庫 | — |
show databases; |
查看所有數(shù)據(jù)庫 | — |
create database MyDB_two character set utf8; |
創(chuàng)建數(shù)據(jù)庫時設(shè)置字符編碼 | character set 可以縮寫成charset 。 |
show create database MyDB_two; |
查看數(shù)據(jù)庫的編碼方式 | — |
alter database MyDB_one character set utf8; |
修改數(shù)據(jù)庫編碼 | — |
use MyDB_one |
進入或切換數(shù)據(jù)庫 | 使用use [數(shù)據(jù)庫名] 進入或切換數(shù)據(jù)庫。剛連接上MySQL 時,沒有處于任何一個數(shù)據(jù)庫中,如果要使用某一個數(shù)據(jù)庫,就需要進入到這個數(shù)據(jù)庫中。use [數(shù)據(jù)庫名] 這個命令后面的分號可以省略,這是SQL 語句中唯一可以省略分號的語句。 |
select database(); |
顯示當前數(shù)據(jù)庫 | 進入數(shù)據(jù)庫中,可以使用select database(); 來查看當前處于哪個數(shù)據(jù)庫中。長時間操作數(shù)據(jù)庫時,在很多數(shù)據(jù)庫中來回切換后,查看當前的數(shù)據(jù)庫,避免操作錯了數(shù)據(jù)庫。 |
show tables; |
查看當前數(shù)據(jù)庫中的表 | — |
create table phone_table(pid INT, name CHAR(20), price INT); |
創(chuàng)建表 | — |
show create table phone_table; |
顯示表信息 | 使用show create table [表名]; 可以顯示表的字段、 MySQL 的引擎和默認的字符編碼等信息。與顯示數(shù)據(jù)庫信息一樣,show 只能顯示已經(jīng)創(chuàng)建的數(shù)據(jù)表的信息,不能在創(chuàng)建的同時顯示信息。 |
desc phone_table; |
更直觀的顯示表信息 | — |
alter table phone_table add color CHAR(20); |
增加表字段 | — |
alter table phone_table drop price; |
刪除表字段 | — |
alter table phone_table modify name VARCHAR(12); |
修改表字段的數(shù)據(jù)類型 | — |
alter table phone_table change name pname CHAR(18); |
修改表字段的數(shù)據(jù)類型和字段名稱 | — |
drop table phone_table; |
刪除表 | — |
show variables like '%time_zone%'; |
查看數(shù)據(jù)庫時區(qū) | — |
set time_zone='+8:00'; |
設(shè)置數(shù)據(jù)庫會話時區(qū) | — |
set global time_zone='+8:00'; |
設(shè)置數(shù)據(jù)庫全局時區(qū) | — |
system cls |
清屏 | – |
MySQL字符串類型
序號 | 數(shù)據(jù)類型 | 數(shù)據(jù)范圍 | 用途 |
---|---|---|---|
1 | CHAR(n) | 0~255字節(jié) | 定長字符串 |
2 | VARCHAR(n) | 0~65535字節(jié) | 長字符串 |
3 | TEXT | 0~65535字節(jié) | 長文本數(shù)據(jù) |
4 | LONGTEXT | 0~2^32-1字節(jié) | 極大文本數(shù)據(jù) |
5 | BLOB | 0~65535字節(jié) | 二進制長文本數(shù)據(jù) |
6 | LONGBLOB | 0~2^32-1字節(jié) | 二進制極大文本數(shù)據(jù) |
MySQL整數(shù)類型
序號 | 數(shù)據(jù)類型 | 數(shù)據(jù)范圍 |
---|---|---|
1 | TINYINT | -128~127 |
2 | SMALLINT | -32768~32767 |
3 | MEDIUMINT | -223~223-1 |
4 | INT | -231~231-1 |
5 | BIGINT | -263~263-1 |
MySQL小數(shù)類型
序號 數(shù)據(jù)類型 數(shù)據(jù)用法 數(shù)據(jù)范圍 1 Float Float(m,n) 7位有效數(shù) 2 Double Double(m,n) 15位有效數(shù) 3 Decimal Decimal(m,n) 28位有效數(shù)
m
表示浮點數(shù)的總長度,n
表示小數(shù)點后有效位數(shù)。
MySQL時間類型
序號 | 數(shù)據(jù)類型 | 格式 | 用途 |
---|---|---|---|
1 | DATE | YYYY-MM-DD | 日期 |
2 | TIME | HH:MM:SS | 時間 |
3 | YEAR | YYYY | 年份 |
4 | DATETIME | YYYY-MM-DD HH:MM:SS | 日期和時間 |
5 | TIMESTAMP | 10位或13位整數(shù)(秒數(shù)) | 時間戮 |
常用的SQL語句詳細介紹
數(shù)據(jù)庫的概念
1、結(jié)構(gòu)化查詢語言(
Structured Query Language
)簡稱SQL
;
2、數(shù)據(jù)庫管理系統(tǒng)(Database Management System
)簡稱DBMS
;
3、數(shù)據(jù)庫管理員(Database Administration
)簡稱DBA
,功能是確保DBMS
的正常高效運行。
SQL常用的3個部分
1、數(shù)據(jù)查詢語言(
DQL
): 其語句也稱“數(shù)據(jù)庫檢索語句”,用以從表中獲得數(shù)據(jù),保留字SELECT
經(jīng)常使用,DQL
也是所有SQL
中用的最多的,其他保留字還有WHERE
,ORDER BY
,GROUP BY
和HAVING
這些保留字還與DML
一起使;
2、數(shù)據(jù)操作語言(DML
): 其余局包括動詞INSERT
,UPDATE
和DELETE
。他們分別用于添加,修改和刪除表中的行。也稱動作語言;
3、數(shù)據(jù)定義語言(DDL
):DDL
主要用于操作數(shù)據(jù)庫。
SQL與JAVA的數(shù)據(jù)類型對比
MySQL | Java |
---|---|
INT |
int |
BIGINT |
long |
DECIMAL |
BigDecimal |
DATE/DATETIME |
java.util.Date |
VARCHAR |
String |
數(shù)據(jù)庫的啟停操作
MySQL
在系統(tǒng)啟動時,會自動啟動服務(wù),無需手動啟動了。
當然也可以手動啟動或停止服務(wù),以管理員身份運行cmd
執(zhí)行如下指令即可。
停止服務(wù)
net stop mysql80
啟動服務(wù)
net start mysql80
連接遠程數(shù)據(jù)庫
mysql [-h 127.0.0.1] [-P 3306] -u root -p
-h
:MySQL
服務(wù)所在的主機IP
-P
:MySQL
服務(wù)端口號, 默認3306
-u
:MySQL
數(shù)據(jù)庫用戶名-p
:MySQL
數(shù)據(jù)庫用戶名對應(yīng)的密碼[]
內(nèi)為可選參數(shù),如果需要連接遠程的MySQL
,需要加上這兩個參數(shù)來指定遠程主機IP
、端口,如果
連接本地的MySQL
,則無需指定這兩個參數(shù)。
連接地數(shù)據(jù)庫
mysql -u root -p
root
是用戶名。語句末尾不能加分號,否則報錯,這是MySQL
唯一加分號報錯的SQL
語句。
查看數(shù)據(jù)庫時區(qū)
show variables like '%time_zone%';
設(shè)置數(shù)據(jù)庫會話時區(qū)
set time_zone='+8:00';
設(shè)置數(shù)據(jù)庫全局時區(qū)
set global time_zone='+8:00';
查看數(shù)據(jù)庫列表
show databases;
創(chuàng)建數(shù)據(jù)庫
create database 數(shù)據(jù)庫名稱;
創(chuàng)建表之前檢查是否已存在,如果存在就移除
create database if not extists 數(shù)據(jù)庫名;
刪除數(shù)據(jù)庫
drop database 數(shù)據(jù)庫名稱;
刪除數(shù)據(jù)庫前檢查是否存在
drop database if exists 數(shù)據(jù)庫名稱;
創(chuàng)建數(shù)據(jù)時設(shè)置編碼
create database 數(shù)據(jù)庫名稱 character set utf8;
character set
可以縮寫成charset
。
修改數(shù)據(jù)庫編碼
alter database 數(shù)據(jù)庫名稱 character set utf8;
進入或切換數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱
使用
use 數(shù)據(jù)庫名稱
進入或切換數(shù)據(jù)庫。
剛連接上MySQL
時,沒有處于任何一個數(shù)據(jù)庫中,如果要使用某一個數(shù)據(jù)庫,就需要進入到這個數(shù)據(jù)庫中。use 數(shù)據(jù)庫名
這個命令后面的分號可以省略,這是SQL
語句中唯一可以省略分號的語句。
顯示當前數(shù)據(jù)庫信息
select database();
進入數(shù)據(jù)庫中,可以使用
select database();
來查看當前處于哪個數(shù)據(jù)庫。長時間操作數(shù)據(jù)庫時,在很多數(shù)據(jù)庫中來回切換后,查看當前的數(shù)據(jù)庫,避免操作錯了數(shù)據(jù)庫。
查看當前數(shù)據(jù)庫的所有表
show tables;
創(chuàng)建非約束表
create table 表名稱(id INT, name CHAR(20), price INT);
創(chuàng)建一張帶有三個字段的表。
id
字段的類型為INT
;name
字段的類型為CHAR(20)
;pric
字段的類型為INT
。文章來源:http://www.zghlxwxcb.cn/news/detail-644619.html
創(chuàng)建帶約束的表
create table 表名稱(id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) UNIQUE, email VARCHAR(25) NOT NULL, age INT DEFAULT 17);
表的約束
1、非空約束:NOT NULL
,不允許某列的內(nèi)容為空;
2、設(shè)置列的默認值:DEFAULT
;
3、唯一約束:UNIQUE
,該表中,該列的內(nèi)容必須唯一;
4、主鍵約束:PRIMARY KEY
,非空且唯一;
5、主鍵自增長:AUTO_INCREMENT
,從1
開始,步長為1
;
6、外鍵約束:FOREIGN KEY
,A
表中的外鍵列。A
表中的外鍵列的值必須參照于B
表中的某一列(B
表主鍵)。文章來源地址http://www.zghlxwxcb.cn/news/detail-644619.html
創(chuàng)建帶注釋的表
create table 表名稱(id int comment '編號', name varchar(50) comment '姓名', age int comment '年齡', gender varchar(1) comment '性別') comment '用戶表';
顯示表信息
show create table 表名稱;
更直觀的顯示表信息
desc 表名稱;
更直觀更詳細的顯示表信息
show full columns from 表名稱;
增加表字段
alter table 表名稱 add color CHAR(20);
增加表字段及注釋
alter table 表名稱 add nickname varchar(20) comment '昵稱';
修改表字段的數(shù)據(jù)類型
alter table 表名稱 modify name VARCHAR(12);
修改表字段的數(shù)據(jù)類型和字段名稱
alter table 表名稱 change name pname CHAR(18);
修改表字段的數(shù)據(jù)類型、字段名稱和注釋
alter table 表名稱 change name pname CHAR(18) comment '姓名';
刪除表字段
alter table 表名稱 drop 字段名稱;
修改表名
alter table 表名稱 rename to 新表名稱;
修改表的注釋信息
alter table 表名稱 comment '數(shù)據(jù)表';
刪除表
drop table 表名稱;
刪除表前做校驗
drop table if exists 表名稱;
到了這里,關(guān)于MySQL相關(guān)的SQL語句、數(shù)據(jù)庫、數(shù)據(jù)表、字段、類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!