10.26資料庫

胡豪發表於2024-10-26

1、rpm -qa|grep 服務名稱

案例:rpm -qa|grep mysql

2、將所有msyql的包刪除乾淨

刪除方法:

(1)yum remove mysql * 刪除linux中的資料庫

(2)yum erase 包名 ,刪除linux中的資料庫

(3)rpm -e --nodeps 包名 刪除linux中的資料庫

(3)mysql的安裝

a.安裝客戶端

yum install mysql

b.安裝服務端

yum install mysql-server

安裝好以後,檢視有三個mysql安裝包

rpm -qa|grep mysql

(4)啟動mysql

service mysqld start 開啟資料庫(我們使用資料要保持資料庫開啟)

service mysqld status 檢視資料庫的狀態

service mysqld stop 關閉資料庫

service mysqld restart 重啟資料庫

(5)mysqladmin -u root password '123456' 設定資料庫密碼

(6)進入資料庫操作介面

mysql -u root -p 敲回車 輸入密碼

(7)show databases 顯示所有的資料庫

(8)授權

grant all privileges on . to root@'%' identified by "123456";

grant 授

all privileges 所有的許可權

on

  • 第一個星表示所有庫

  • 第二型表示所有的表

to

root 使用者

@

% 表示所有使用者

identified by 設定密碼

(9)重新整理許可權

flush privileges;

(10)create database 資料庫名

案例:

create database hz017;

(11)show databases ;檢視所有的資料庫

(12)use 庫名

案例:use hz017

(13)退出:

ctrl+z,或ctrl+c或qiut

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

解決問題:

1、關閉防火牆 service iptables stop (在linux中操作)

2、 開啟資料庫 service mysqld start (在linux中操作)

3、授權(在mysql中操作)

grant all privileges on . to root@'%' identified by "123456"

4、授權以後要重新整理

flush privileges (在mysql中操作)

5、檢查連線資料庫的引數的正確性如:ip地址,密碼,使用者名稱等

6、密碼設定:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YSE)
(1)也是修改密碼
解決辦法
第一步:關閉mysql
第二步:mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
第三步: UPDATE user SET Password=PASSWORD('123456') where USER='root';
第四步: FLUSH PRIVILEGES;

(在linux中操作)
1、mysql -u root -p 敲回車 ,輸入密碼 ,進入資料庫操作介面

2、show databases 檢視所有的資料(如果沒有資料庫:建立資料庫 create database 庫名稱)

3、use 資料庫名 使用資料庫

4、show tables 顯示庫中的所有表

5、建表語句

格式: create table 表名(欄位名1 字元型別(字元長度),欄位名2 字元型別(字元長度));

案例:create table aa(id int(10),name varchar(20));

6、檢視錶結構:

desc 表名

7、在navicat 中=點選庫名點選查詢新建查詢===在新建查詢中輸入sql語句

8、插入資料:

(1)插入方式一:

格式:INSERT INTO 表名 VALUES(值1,值2);

案例:INSERT INTO aa VALUES(1,"aa");

(2)插入方式二:(插入部分欄位)

格式:INSERT into 表名(欄位名) VALUES(欄位值)

案例:INSERT into aa(id) VALUES("4")

(3)插入的中文字元變成?號

解決方案:

在建表時的語句後面新增:

DEFAULT charset=utf8;

案例:create table cc(cid int(5),cname char(20))DEFAULT charset=utf8;

9、刪除表格

drop table 表名

案例:drop table yy ;

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

二、資料型別

1、數值型別

int 儲存型別

float 浮點數

2、字元型別

char

varchar

3、時間型別

date

time

datetime

year

注意字元的長度:

int(20)

varchar(20)

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

約束:

約束用於對錶中欄位進行限制,保證表中資料的正確性和唯一性

1、primary key 主鍵約束

非空,唯一,用於唯一標識的記錄,類似身份證。

一個表中只用一個主鍵

2、not null 非空約束

3、 unique 唯一索引

保證欄位值具有唯一性,並且能為空,一個表中可以有多個唯一索引

4、default 預設值約束

定義:預設給欄位指定預設值

5、auto_increment 自增長約束(一般都是和主鍵同時使用)

作用:在整數型別,欄位預設值從1開始自增

(1)一般和主鍵約束一起使用,主要針對id

(2)每插入一條資料,就是在欄位上自動+1,

1、新建表

表結構的操作:

2、add 新增欄位

格式:ALTER TABLE 表名 add 欄位名 字元型別(字元長度);

案例:ALTER TABLE student2 add dcs int(20);

3、change 修改欄位

格式:ALTER TABLE 表名 change 舊欄位名 新欄位名 字元型別(字元長度);

案例:ALTER table student2 change dcs hzdcs int(19);

4、 drop 刪除欄位

格式:ALTER table 表名 drop 欄位名 ;

案例:ALTER table student2 drop hzdcs ;

5、rename 修改表名

6、modify after 欄位的調換

格式:ALTER table 表格 MODIFY 變動的欄位 欄位型別(欄位長度) after 指定欄位 ;

案例:ALTER table hz MODIFY math int(10) after id ;

7、first 新增欄位到第一位

格式:alter table 表名 add 表欄位 字元型別(字元長度) first ;

案例:alter table hz add no int(20) first ;

資料庫匯中:增、刪、改、查

一、查詢語句:

(1)查詢一個表中的所有資料

格式:select * from 表名 ; * 表示所有的欄位

案例:select * from hz ;

(2)查詢部分欄位(多個欄位用,分割)

格式:select 欄位1,欄位2 from hz ;

案例:select id,name from hz ;

(3)查詢欄位可以透過as 取別名

格式:

案例1( as寫,):

select id as " 編號",name as "姓名" from hz ;

案例2(可以省略 as不寫):

select id " 編號",name "姓名" from hz ;

(4)指定條件查詢內容:

where +條件

條件1:

比較運算:>,<,=,!=,<>,>=,<=

條件2:

and ,or ,between ....and ,in , is not null
案例1:= 等於

select id ,name from hz where id=1;

案例2:> 大於

select id ,name from hz where id>1;

案例3:<小於

select id ,name from hz where id<2;

案例4:<=小於等於

select id ,name from hz where id<=2;

(5)

案例5:>=大於等於

select id ,name from hz where id>=2;

(6)!=不等於

案例6:select id ,name from hz where id != 2;

(7)<>不等於

select id ,name from hz where id <> 2;

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

(8)and 同時滿足條件

案例8; and 是同時滿足多個條件

select id ,name,math from hz where id > 2 and math>90;

(9)or 只要滿足其中一個條件 就顯示

select id ,name,math from hz where id > 6 or math>90;

(10)between 。。。and 在什麼範圍之間

案例:select * from hz where id BETWEEN 3 and 6 ;

備註:包含了本身,

(11)in 在一組資料中選擇(在資料彙總匹配)

案例:select * from hz where id in (1,3,8)

(12)not in 不在一組資料中選

案例:select * from hz where id NOT in (1,3,8)

(13)is null 為空的資料

select * from hz where class is null;

(14)is not nu 不為空的資料

select * from hz where class is not null;

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

order by 排序

(1)降序 (大到小)

order by desc

案例:select * from hz order by id desc ;
(2)升序(小到大)

asc 或不寫

案例:

select * from hz order by id asc ;
select * from hz order by id ;

(3)二次排序

案例:select * from hz order by math desc ,id desc;

like 模糊匹配查詢

%:表示匹配1個字元或多個字元

_ : 下滑線表示一個字元

案例1:匹配xx開頭的資料

select * from hz where math like "7%"; # 匹配7開頭的資料

案例2:匹配xx結尾資料
select * from hz where math like "%7"; #匹配7結尾的資料

案例3:匹配含有xx結尾資料
select * from hz where math like "%7%"; #匹配含有7的資料

案例4:匹配指定位數的資料
select * from hz where math like "7_"; #匹配具體位數的資料

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

limit (索引位,步長) 顯示指定的資料,限制;

根據索引位置來取值,從0開始,一個表第一行的索引就是0,第二行就是1

select * from hz limit 2; #表示取兩行資料, 2 表示步長

select * from hz limit 1,2#表示從索引1開始第二行,2表示步長2行
select * from hz limit 4,3 ;# 表示從索引4開始取值,第五行開始,取三行,

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

sql 聚合函式

max 最大數

案例1:select max(math) from hz ;

min最小數

案例2:select min(math) from hz ;

avg 平均值

案例3:

select avg(math) from hz ;

sum 求和

案例4:

select sum(math) from hz ;

count 統計

案例5:select count(math) from hz ;

distinct 去重

案例6:

select DISTINCT(math) from hz ;

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

group by ....... having

group by 是分組,一般不會單獨使用,通常和聚合函式組合使用

案例1:分組

select sum(math),class from hz GROUP BY class ;

案例2:分組 在條件 having

(1)select sum(math) s,class from hz GROUP BY class having s>200 ;

(2)select sum(math) s,class from hz GROUP BY class having sum(math)>200 ;

注意:having 一般接在group by 後面

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

改:

update ......set......

格式:update 表名 set 欄位名=新值 where條件;

案例:update hz set id=1 where id=9;

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

刪除:

(1)delete

格式:DELETE from 表名 where 條件;

DELETE from hz where id=1;

(2) truncate 快速刪除資料
格式:

truncate 表名 ;

案例:

truncate ff ;

(3)drop 刪除

格式:drop table 表名

案例:drop table emp ;

drop >truncate> delete

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

單行註釋:ctrl +/

取消註釋:shift+ctrl+/

多行註釋:選中多行 ,ctrl +/

取消註釋:選中多行 shift+ctrl+/

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

備份:

(1)備份表結構:

格式:create table 新表名 like 舊錶名;

create table emp_new like emp;

(2)備份表資料

格式:

INSERT into 新表結構 select * from 舊錶有資料 ;

案例:

INSERT into emp_new select * from emp ;

(3)備份部分資料

格式:INSERT into 表名(欄位1,欄位2) select 欄位1,欄位2 from 舊錶 ;

案例:INSERT into emp2(sid,name) select sid ,name from emp ;

(4)備份表結構和資料

格式:

create table 新表 as (select * from 原表);

案例:create table hh as (select * from emp);

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

在linux 中:

備份:

格式:mysqldump -u root -p 原庫>新sql指令碼名

案例:mysqldump -u root -p hz017>/home/hz17.sql

還原:

格式:mysql -u root -p 新庫<備份好的指令碼

案例:mysql -u root -p new</home/hz17.sql

資料庫之單表運用 https://www.cnblogs.com/xiaolehong/p/15951164.html
資料庫之搭建 https://www.cnblogs.com/xiaolehong/p/15948907.html

相關文章