您好,登錄后才能下訂單哦!
下文內(nèi)容主要給大家?guī)?a title="MySQL" target="_blank" href="http://www.kemok4.com/mysql/">MySQL數(shù)據(jù)庫分類、系統(tǒng)函數(shù)、創(chuàng)建數(shù)據(jù)庫等詳解,這里所講到的知識(shí),與書籍略有不同,都是億速云專業(yè)技術(shù)人員在與用戶接觸過程中,總結(jié)出來的,具有一定的經(jīng)驗(yàn)分享價(jià)值,希望給廣大讀者帶來幫助。
<--目錄-->
1)數(shù)據(jù)庫分類
2)系統(tǒng)函數(shù)
3)創(chuàng)建數(shù)據(jù)庫
4)選擇數(shù)據(jù)庫
5)數(shù)據(jù)類型
6)建表語句
7)插入數(shù)據(jù)
8)刪用戶刪數(shù)據(jù)刪庫表
9)修改表數(shù)據(jù)
10)查詢數(shù)據(jù)
11)用戶授權(quán)
12)show查看當(dāng)前所有庫表、建庫表語句、用戶權(quán)限
13)desc查看表結(jié)構(gòu)
14)復(fù)制表結(jié)構(gòu)
15)字段增刪改
16)查看幫助
【數(shù)據(jù)庫分類】
在MySQL軟件中,數(shù)據(jù)庫可以分為系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫兩大類
1、系統(tǒng)數(shù)據(jù)庫
系統(tǒng)數(shù)據(jù)庫是指裝完MySQL云服務(wù)器后,會(huì)附帶的一些數(shù)據(jù),如下圖所示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ryzc_data |
| test |
+--------------------+
5 rows in set (0.00 sec)
information_schema: 主要存儲(chǔ)系統(tǒng)中的一些數(shù)據(jù)庫對(duì)像信息,如用戶信息,列信息,權(quán)限信息,字符集信息和分區(qū) 信息等
performance_schema: 主要存儲(chǔ)數(shù)據(jù)庫服務(wù)器性能參數(shù)
mysql:主要存儲(chǔ)系統(tǒng)的用戶權(quán)限信息
test:該數(shù)據(jù)庫為MySQL數(shù)據(jù)庫管理系統(tǒng)自動(dòng)創(chuàng)建的測(cè)試數(shù)據(jù)庫,任何用戶都可以使用
2、用戶數(shù)據(jù)庫
用戶數(shù)據(jù)庫是用戶根據(jù)實(shí)際需求來創(chuàng)建的數(shù)據(jù)庫,如下圖,其中userdatabase數(shù)據(jù)庫屬于用戶數(shù)據(jù)庫
【系統(tǒng)函數(shù)】
version() #返回系統(tǒng)庫的版本號(hào)
databasee() #返回當(dāng)前系統(tǒng)庫名
user() #返回當(dāng)前用戶
#查詢多個(gè)
mysql> select user(),database(),version();
#查詢單個(gè)
mysql> select user();
【創(chuàng)建數(shù)據(jù)庫】
create database database_name
上述語句中database_name參數(shù)表示所要?jiǎng)?chuàng)建的數(shù)據(jù)庫的名字
mysql> create database databasetest;
Query OK, 1 row affected (0.00 sec)
Query OK:表示SQL語句執(zhí)行成功
1 row affected :表示操作只影響了數(shù)據(jù)中一行的記錄
0.00 sec:表示操作執(zhí)行的時(shí)間
create database wsyht_gbk default character set gbk collate gbk_chinese_ci; #創(chuàng)建庫wsyht_gbk并設(shè)置默認(rèn)字符集gbk
create database wsyht_utf8 default character set utf8 collate utf8_general_ci; #同理指定utf8字符集
【選擇數(shù)據(jù)庫】
mysql> use mysql
【數(shù)據(jù)類型】
常用類型:
整數(shù)類型
int
浮點(diǎn)數(shù)類型
float
字符串類型
char
varchar
【建表語句】
#創(chuàng)建表stdent
id字段最少要填四位整數(shù),不能位空
name字段為字符串,最少填20位,不能為空
use wsyht
create table student(
id int(4) not null,
name char(20) not null,
age tinyint(2) NOT NULL default '0',
dept varchar(16) default NULL
);
【插入數(shù)據(jù)】
insert into student(id,name) values(1,'wsyht');
insert into student values(4,'jack',25,'abc'); #按照順序插值
insert into student values(5,'dock',25,'abc'),(6,'tom',26,'cad'); #插入兩個(gè)值
【刪用戶刪數(shù)據(jù)刪庫表】
#刪庫
drop database wsyht; #刪除wsyht數(shù)據(jù)庫
drop user 'root'@'localhost' #刪除系統(tǒng)多余賬號(hào),刪除user表root用戶主機(jī)名為localhost
#刪用戶
delete from mysql.user where user='root' and host='localhost'; #刪除root用戶
flush privileges; #刪除用戶需要刷新權(quán)限
#刪表
drop table student;
#刪數(shù)據(jù)
delete from test where id=1; #刪除test表id號(hào)等于1的行
delete from test where id>3; #刪除test表id號(hào)等于3的行
delete from test; #刪除test表中的所有數(shù)據(jù)
truncate table test; #直接清空整個(gè)表,test是表名
truncate清空物理文件 delete邏輯清除按行刪
【修改表數(shù)據(jù)】
update t1 set name='jack' where id=1; #更新表t1的name字段為jack,條件為id=1
rename table test to t1; #把test表改名為t1;
alter table t1 rename to test; 把t1表改名為test
【查詢數(shù)據(jù)】
select *from student; #查詢表所有數(shù)據(jù)的值
select id, name from student; #查詢id name字段的值
select id,name from student limit 2; #只查詢id,name字段2行數(shù)據(jù)的值
select id,name from student where id=1; #條件查詢,查詢id=5的值
select id,name from student where name='tom'; #字符患查詢要加引號(hào)
select id,name from student where name='tom' and id='6'; #兩邊都要成立
select id,name from student where name='tom' or id='8'; #一邊成立即可
select id,name from student where id>3 and id<6; #范圍內(nèi)查詢
select id,name from student order by id; #排序id列,不加默認(rèn)正向排序
select id,name from student order by id asc; #排序id列,加asc正向排序
select id,name from student order by id desc; #排序id列,加desc反向排序,需要指定列
select user,host,password from mysql.user order by user asc; #user列升序排序
select user,host,password from mysql.user order by user desc; #user列倒序排序
【用戶授權(quán)】
#用戶授權(quán)之后需要flush privileges刷新權(quán)限
grant all on db1.* to wsyht@localhost identified by 'wsyht'; #授權(quán)用戶,主機(jī)指客戶端登陸的主機(jī),這里寫localhost允許在本機(jī)登陸
grant all privileges on *.* to peter@localhost identified by 'peter'; #或這樣授權(quán)用戶,創(chuàng)建用戶和授權(quán)一起操作
create user wsyht@localhost identified by 'wsyht'; #先創(chuàng)建用戶(語句詳情意思可看MySQL簡(jiǎn)介文檔)
grant all on *.* to wsyht@localhost; #再授權(quán)用戶
create user wsyht@'10.0.0.%' identified by 'wsyht'; #創(chuàng)建遠(yuǎn)程登陸賬戶
grant all on *.* to wsyht@'10.0.0.%' identified by 'wsyht'; #創(chuàng)建并授權(quán)遠(yuǎn)程登陸賬戶法1
grant all on *.* to test@'10.0.0.0/255.255.255.0' identified by 'test123'; #創(chuàng)建并授權(quán)遠(yuǎn)程登陸賬戶法2
revoke insert on *.* from wsyht@localhost; #去除他所有庫和所有表的insert權(quán)限,要先查看他對(duì)哪個(gè)庫和哪個(gè)表有權(quán)限,然后再對(duì)他授權(quán)的庫和表進(jìn)行去除權(quán)限操作
revoke all privileges,grant option from 'wsyht@localhost'; #回收用戶的所有權(quán)限
【show查看信息】
#查看當(dāng)前所有庫
show databases; #顯示所有數(shù)據(jù)庫
show databases like '%wsyht%'; #顯示所有含有wsyht名字的庫
#查看庫中的所有表
show tables from d1; #顯示d1庫有多少表
show tables; #顯示當(dāng)前庫中所有的表
#查看建庫建表語句
show create database wsyht_utf8; #顯示創(chuàng)建的數(shù)據(jù)庫的字符集
show create database wsyht_gbk\G; #加\G換行顯示,不用加分號(hào),查看已建庫的語句
show create table student\G; #查看已建表的語句
#查看權(quán)限
show grants for wsyht@localhost; #查看權(quán)限
GRANT SELECT ON *.* TO 'wsyht'@'%' IDENTIFIED BY PASSWORD '123456' #授權(quán)wsyht只讀權(quán)限
【desc查看表結(jié)構(gòu)】
use wsyht #進(jìn)入wsyht庫
desc student; #查看student表結(jié)構(gòu)
【復(fù)制表結(jié)構(gòu)】
create table 新表 select *from 舊表 #復(fù)制舊表的表結(jié)構(gòu)及舊表的數(shù)據(jù)到新表
create table 新表 select *from 舊表 where 1=2 #只復(fù)制舊表的表結(jié)構(gòu)到新表
insert into 新表 select * from 舊表 #復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)一樣)
insert into 新表 字段1,字段2,....... select 字段1,字段2,...... from 舊表 #復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩 個(gè)表結(jié)構(gòu)不一樣)
【字段增刪改】
#增字段
alter table test add sex char(4); #在test表添加字段sex,默認(rèn)添加在最后一行
alter table test add qq varchar(15) first; #在第一行添加字段qq
alter table test add age int(3) after name; #在test表name字段后面添加age字段
alter table t1 add age int (3),add name varchar(11); #增加表中age和name兩個(gè)字段
#改字段
alter table t1 modify deptno varchar(20); #更改deptno字段屬性為varchar(20)
alter table t1 change age ages varchar(20) not null; #只更改表中age字段名為ages;
alter table t1 change age ages varchar(40) not null; #同時(shí)修改字段名和屬性,字段名改為ages,屬性改為varchar(40)
#修改字段順序
alter table t1 modify 屬性名1 數(shù)據(jù)類型 first | after 屬性名2
上述語句中,t1參數(shù)表示所要修改表的名字,“屬性名1”參數(shù)表示所要調(diào)整順序的字段名,“first”參數(shù)表示要將參數(shù)調(diào)整到表的第一個(gè)位置,“after 屬性名2”參數(shù)表示將字段調(diào)整到屬性名2字段位置之后
alter table t1 modify ages varchar(40) first #把a(bǔ)ges字段放到第一位
alter table AS_DbSource change BackupIPs BackupIPs varchar(45) after IPs;
把BackupIPs字段設(shè)置在IPs字段后面
#刪字段
alter table t1 drop deptno; #刪除deptno字段
alter table t1 drop column age,drop column name; #連續(xù)刪除age和name兩個(gè)字段
【help查看幫助】
mysql> help show
mysql> help select
mysql> help alter
mysql> help insert
mysql> help update
對(duì)于以上關(guān)于MySQL數(shù)據(jù)庫分類、系統(tǒng)函數(shù)、創(chuàng)建數(shù)據(jù)庫等詳解,如果大家還有更多需要了解的可以持續(xù)關(guān)注我們億速云的行業(yè)推新,如需獲取專業(yè)解答,可在官網(wǎng)聯(lián)系售前售后的,希望該文章可給大家?guī)硪欢ǖ闹R(shí)更新。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。