MYSQL用戶授權以及SQL語句


用戶授權
用戶管理特殊命令:
創建用戶
create user '用戶名'@'IP地址' identified by '密碼';
刪除用戶
drop user '用戶名'@'IP地址';
修改用戶
rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';;
修改密碼
set password for '用戶名'@'IP地址' = Password('新密碼')

c:\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysql -u

權限:
默認,什么都沒有

grant 權限 on 數據庫.表 to '用戶'@'IP地址' -- 授權

select,查

數據庫.表
test.tb1
test.*
*.*

'用戶'@'IP地址'
xiaohua@localhost

 

 

SQL語句

數據庫級別
SHOW DATABASES;

CREATE DATABASE 數據庫名稱;
CREATE DATABASE 數據庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

USE 數據庫名稱;

drop database 數據庫名稱;

表級表
show tables;
desc tb1;

*** create table tb1(nid int, name varchar(10));
# 事務,原子操作,回滾

a. 默認值
b. 是否可以為空
c. 自增列(一張表只能有一個,數字,必須是索引-主鍵)
d. 主鍵索引:

一張表只能有一個主鍵,唯一不能重復,不能為null,- 一般情況下,自增列設置主鍵
1,2,3,4,5,6
唯一索引:
可以為null,一張表可以有多個唯一列
1,2,3,4,5,6,null

-- 約束
-- 索引,加速查找

create table xxx(
nid.... primary key,
....
)

create table student(
name varchar(10) not null,
num int not null,
age int,
gender int,
primary key (name,num)
)
約束:
name num age
a 88 9
a 99 9
a 88 0

# 主鍵:
不能為null,
不能重復,
一張表只有一個主鍵(可以多列組成主鍵)
# 一般用法:
nid int auto_increment primary key,

# 請在本地創建表:
CREATE DATABASE 數據庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use 數據庫名稱;

create table tb5(
nid int not null auto_increment primary key,
name varchar(16),
age int default 19
)engine=innodb default charset=utf8;

e. 外鍵foreign key,一對多

兩張表建立約束

-- 約束
-- foreign key,一對多



f. 數據類型:數值、時間和字符串
數值:
二進制:
bit 二進制
整數:
tinyint
smallint
int
bigint
- 范圍不一樣

小數:
decimal --精確的

-- 985412154521321.857541245421245845
FLOAT -- 98541215458798465465749465465465421321.857541245420000000
-- 985412154000000000000000000000000000000000000000000000000
DOUBLE -- 9854121544587984654657494654654654000000000000000000000000

字符串:
# 定長
char
create table tb13(n char(7),b int, c int)
insert ssss
# 查找速度快,浪費空間


# 變長
varchar
create table tb13(n varchar(7),b int, c int)
insert ssss
insert sssss
insert sssss5
# 查獲找速度慢,節省空間
text
mediumtext
longtext
二進制數據:
TinyBlob、Blob、MediumBlob、LongBlob
# 上傳文件
# Blob,強制二進制方式
# varchar(65), "D:\av.avi" 將上傳的文件保存在硬盤, D:\av.avi ;

時間:
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
# 1996-12-12 18:45

TIME
HH:MM:SS('-838:59:59'/'838:59:59')

YEAR
YYYY(1901/2155)

DATETIME

YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

TIMESTAMP

YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某時)

enum
單選

集合
多選

create table tb13(num decimal(6,2)) #8888.18

drop table tb1; # 直接表刪除

delete from tb1; # 清空表內容
truncate table tb1; # 清空表內容,速度快,自增回到遠點

select * from tbl;

數據行級別 *****

select * from tbl;



# 增
insert into tb1(name,age) values('alex', 18);
insert into tb1(name,age) values('alex', 18),('eric', 19),('eric', 19);
create

# 刪

# 改

# 查

# 其他

連表操作:
# 連表
select * form a,b where a.x = b.o

# join, select
a. left join
select * from a LEFT OUTER JOIN b ON a.x = b.o

b. inner join ,永遠不會出現Null
select * from a inner JOIN b ON a.x = b.o


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM